From 15c81a098207ad830181c1a352dbc7367ba80ce4 Mon Sep 17 00:00:00 2001
From: "google-labs-jules[bot]"
<161369871+google-labs-jules[bot]@users.noreply.github.com>
Date: Wed, 1 Oct 2025 03:13:42 +0000
Subject: [PATCH 01/74] feat: Add top-loading progress bar
Adds a top-loading progress bar that appears during page transitions to improve user experience by providing visual feedback during navigation.
- Integrated the `nextjs-toploader` package, a lightweight and efficient solution for Next.js applications.
- The progress bar is initialized in the main `_app.tsx` file to ensure it's active across the entire application.
- This feature works seamlessly with the Next.js App Router and does not interfere with server-side rendering (SSR).
---
apps/dokploy/package.json | 3 ++-
apps/dokploy/pages/_app.tsx | 2 ++
dev_server.log | 0
pnpm-lock.yaml | 23 +++++++++++++++++++++++
4 files changed, 27 insertions(+), 1 deletion(-)
create mode 100644 dev_server.log
diff --git a/apps/dokploy/package.json b/apps/dokploy/package.json
index 2c5f2ed27..2bb825944 100644
--- a/apps/dokploy/package.json
+++ b/apps/dokploy/package.json
@@ -112,7 +112,6 @@
"i18next": "^23.16.8",
"input-otp": "^1.4.2",
"js-cookie": "^3.0.5",
- "yaml": "2.8.1",
"lodash": "4.17.21",
"lucide-react": "^0.469.0",
"micromatch": "4.0.8",
@@ -120,6 +119,7 @@
"next": "^15.3.2",
"next-i18next": "^15.4.2",
"next-themes": "^0.2.1",
+ "nextjs-toploader": "^3.9.17",
"node-os-utils": "1.3.7",
"node-pty": "1.0.0",
"node-schedule": "2.1.1",
@@ -153,6 +153,7 @@
"use-resize-observer": "9.1.0",
"ws": "8.16.0",
"xterm-addon-fit": "^0.8.0",
+ "yaml": "2.8.1",
"zod": "^3.25.32",
"zod-form-data": "^2.0.7"
},
diff --git a/apps/dokploy/pages/_app.tsx b/apps/dokploy/pages/_app.tsx
index 5a69130b0..706dbbba6 100644
--- a/apps/dokploy/pages/_app.tsx
+++ b/apps/dokploy/pages/_app.tsx
@@ -7,6 +7,7 @@ import Head from "next/head";
import Script from "next/script";
import { appWithTranslation } from "next-i18next";
import { ThemeProvider } from "next-themes";
+import NextTopLoader from "nextjs-toploader";
import type { ReactElement, ReactNode } from "react";
import { SearchCommand } from "@/components/dashboard/search-command";
import { Toaster } from "@/components/ui/sonner";
@@ -57,6 +58,7 @@ const MyApp = ({
disableTransitionOnChange
forcedTheme={Component.theme}
>
+
{getLayout( )}
diff --git a/dev_server.log b/dev_server.log
new file mode 100644
index 000000000..e69de29bb
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6df6799ac..98be77cca 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -346,6 +346,9 @@ importers:
next-themes:
specifier: ^0.2.1
version: 0.2.1(next@15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ nextjs-toploader:
+ specifier: ^3.9.17
+ version: 3.9.17(next@15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
node-os-utils:
specifier: 1.3.7
version: 1.3.7
@@ -6241,6 +6244,13 @@ packages:
sass:
optional: true
+ nextjs-toploader@3.9.17:
+ resolution: {integrity: sha512-9OF0KSSLtoSAuNg2LZ3aTl4hR9mBDj5L9s9DZiFCbMlXehyICGjkIz5dVGzuATU2bheJZoBdFgq9w07AKSuQQw==}
+ peerDependencies:
+ next: '>= 6.0.0'
+ react: '>= 16.0.0'
+ react-dom: '>= 16.0.0'
+
node-abort-controller@3.1.1:
resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==}
@@ -6339,6 +6349,9 @@ packages:
resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
deprecated: This package is no longer supported.
+ nprogress@0.2.0:
+ resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
+
object-assign@4.1.1:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
@@ -13714,6 +13727,14 @@ snapshots:
- '@babel/core'
- babel-plugin-macros
+ nextjs-toploader@3.9.17(next@15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
+ dependencies:
+ next: 15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ nprogress: 0.2.0
+ prop-types: 15.8.1
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+
node-abort-controller@3.1.1: {}
node-addon-api@5.1.0: {}
@@ -13798,6 +13819,8 @@ snapshots:
gauge: 3.0.2
set-blocking: 2.0.0
+ nprogress@0.2.0: {}
+
object-assign@4.1.1: {}
object-hash@3.0.0: {}
From e4aefe7f9dc02ba6580e900186fda53cfb1f1015 Mon Sep 17 00:00:00 2001
From: "google-labs-jules[bot]"
<161369871+google-labs-jules[bot]@users.noreply.github.com>
Date: Wed, 1 Oct 2025 03:35:29 +0000
Subject: [PATCH 02/74] feat: Add theme-aware top-loading progress bar
This commit introduces a top-loading progress bar that provides visual feedback during page transitions, improving the user's navigation experience.
- **Package Integration:** The `nextjs-toploader` package has been added to provide a lightweight and efficient progress bar solution for Next.js.
- **Theme-Aware Color:** The progress bar's color is dynamically set using the `hsl(var(--sidebar-ring))` CSS variable, ensuring it automatically adapts to the application's current theme (light or dark mode).
- **Implementation:** The `NextTopLoader` component is integrated into the main `_app.tsx` file, making it active across the entire application.
---
apps/dokploy/pages/_app.tsx | 2 +-
dev_server.log | 0
2 files changed, 1 insertion(+), 1 deletion(-)
delete mode 100644 dev_server.log
diff --git a/apps/dokploy/pages/_app.tsx b/apps/dokploy/pages/_app.tsx
index 706dbbba6..b59468b21 100644
--- a/apps/dokploy/pages/_app.tsx
+++ b/apps/dokploy/pages/_app.tsx
@@ -58,7 +58,7 @@ const MyApp = ({
disableTransitionOnChange
forcedTheme={Component.theme}
>
-
+
{getLayout( )}
diff --git a/dev_server.log b/dev_server.log
deleted file mode 100644
index e69de29bb..000000000
From 615d89ee0cb2bbed80a29a65919bba834b96d5cd Mon Sep 17 00:00:00 2001
From: HarikrishnanD
Date: Fri, 7 Nov 2025 11:40:30 +0530
Subject: [PATCH 03/74] feat(requests): conditionally render traefik reload
warning
---
.../dashboard/requests/show-requests.tsx | 41 ++++++++++++++-----
1 file changed, 31 insertions(+), 10 deletions(-)
diff --git a/apps/dokploy/components/dashboard/requests/show-requests.tsx b/apps/dokploy/components/dashboard/requests/show-requests.tsx
index ab602f463..974d4fb3f 100644
--- a/apps/dokploy/components/dashboard/requests/show-requests.tsx
+++ b/apps/dokploy/components/dashboard/requests/show-requests.tsx
@@ -59,6 +59,25 @@ export const ShowRequests = () => {
to: undefined,
});
+ // Check if logs exist to determine if traefik has been reloaded
+ // Only fetch when active to minimize network calls
+ const { data: statsLogsCheck } = api.settings.readStatsLogs.useQuery(
+ {
+ page: {
+ pageIndex: 0,
+ pageSize: 1,
+ },
+ },
+ {
+ enabled: !!isActive,
+ refetchInterval: 5000, // Check every 5 seconds when active
+ },
+ );
+
+ // Determine if warning should be shown
+ // Show warning only if active but no logs exist yet
+ const shouldShowWarning = isActive && (statsLogsCheck?.totalCount ?? 0) === 0;
+
useEffect(() => {
if (logCleanupStatus) {
setCronExpression(logCleanupStatus.cronExpression || "0 0 * * *");
@@ -79,16 +98,18 @@ export const ShowRequests = () => {
See all the incoming requests that pass trough Traefik
-
- When you activate, you need to reload traefik to apply the
- changes, you can reload traefik in{" "}
-
- Settings
-
-
+ {shouldShowWarning && (
+
+ When you activate, you need to reload traefik to apply the
+ changes, you can reload traefik in{" "}
+
+ Settings
+
+
+ )}
From c459997453fd9432b714358b63e27a8aac64b0b0 Mon Sep 17 00:00:00 2001
From: HarikrishnanD
Date: Thu, 13 Nov 2025 11:52:06 +0530
Subject: [PATCH 04/74] fix(traefik): validate port 8080 before enabling
dashboard
---
.../servers/actions/show-traefik-actions.tsx | 7 +-
apps/dokploy/server/api/routers/settings.ts | 12 ++++
packages/server/src/services/docker.ts | 6 +-
packages/server/src/services/settings.ts | 72 +++++++++++++++++++
4 files changed, 93 insertions(+), 4 deletions(-)
diff --git a/apps/dokploy/components/dashboard/settings/servers/actions/show-traefik-actions.tsx b/apps/dokploy/components/dashboard/settings/servers/actions/show-traefik-actions.tsx
index d9573ca74..578c4df8a 100644
--- a/apps/dokploy/components/dashboard/settings/servers/actions/show-traefik-actions.tsx
+++ b/apps/dokploy/components/dashboard/settings/servers/actions/show-traefik-actions.tsx
@@ -97,7 +97,12 @@ export const ShowTraefikActions = ({ serverId }: Props) => {
);
refetchDashboard();
})
- .catch(() => {});
+ .catch((error) => {
+ const errorMessage =
+ error?.message ||
+ "Failed to toggle dashboard. Please check if port 8080 is available.";
+ toast.error(errorMessage);
+ });
}}
className="w-full cursor-pointer space-x-3"
>
diff --git a/apps/dokploy/server/api/routers/settings.ts b/apps/dokploy/server/api/routers/settings.ts
index b4968c260..48f80c167 100644
--- a/apps/dokploy/server/api/routers/settings.ts
+++ b/apps/dokploy/server/api/routers/settings.ts
@@ -1,6 +1,7 @@
import {
canAccessToTraefikFiles,
checkGPUStatus,
+ checkPortInUse,
cleanStoppedContainers,
cleanUpDockerBuilder,
cleanUpSystemPrune,
@@ -130,6 +131,17 @@ export const settingsRouter = createTRPCRouter({
let newPorts = ports;
// If receive true, add 8080 to ports
if (input.enableDashboard) {
+ // Check if port 8080 is already in use before enabling dashboard
+ const portCheck = await checkPortInUse(8080, input.serverId);
+ if (portCheck.isInUse) {
+ const conflictingContainer = portCheck.conflictingContainer
+ ? ` by container "${portCheck.conflictingContainer}"`
+ : "";
+ throw new TRPCError({
+ code: "CONFLICT",
+ message: `Port 8080 is already in use${conflictingContainer}. Please stop the conflicting service or use a different port for the Traefik dashboard.`,
+ });
+ }
newPorts.push({
targetPort: 8080,
publishedPort: 8080,
diff --git a/packages/server/src/services/docker.ts b/packages/server/src/services/docker.ts
index 2194c89c6..ab454b7ea 100644
--- a/packages/server/src/services/docker.ts
+++ b/packages/server/src/services/docker.ts
@@ -290,10 +290,10 @@ export const getContainersByAppLabel = async (
const command =
type === "swarm"
- ? `docker ps --filter "label=com.docker.swarm.service.name=${appName}" --format 'CONTAINER ID : {{.ID}} | Name: {{.Names}} | State: {{.State}}'`
+ ? `docker ps -a --filter "label=com.docker.swarm.service.name=${appName}" --format 'CONTAINER ID : {{.ID}} | Name: {{.Names}} | State: {{.State}}'`
: type === "standalone"
- ? `docker ps --filter "name=${appName}" --format 'CONTAINER ID : {{.ID}} | Name: {{.Names}} | State: {{.State}}'`
- : `docker ps --filter "label=com.docker.compose.project=${appName}" --format 'CONTAINER ID : {{.ID}} | Name: {{.Names}} | State: {{.State}}'`;
+ ? `docker ps -a --filter "name=${appName}" --format 'CONTAINER ID : {{.ID}} | Name: {{.Names}} | State: {{.State}}'`
+ : `docker ps -a --filter "label=com.docker.compose.project=${appName}" --format 'CONTAINER ID : {{.ID}} | Name: {{.Names}} | State: {{.State}}'`;
if (serverId) {
const result = await execAsyncRemote(serverId, command);
stdout = result.stdout;
diff --git a/packages/server/src/services/settings.ts b/packages/server/src/services/settings.ts
index 301573cb4..33bd6500a 100644
--- a/packages/server/src/services/settings.ts
+++ b/packages/server/src/services/settings.ts
@@ -394,6 +394,78 @@ export const readPorts = async (
);
};
+/**
+ * Check if a port is already in use by another container
+ * @param port - The port number to check
+ * @param serverId - Optional server ID for remote Docker
+ * @returns Object with isInUse boolean and conflictingContainer name if found
+ */
+export const checkPortInUse = async (
+ port: number,
+ serverId?: string,
+): Promise<{ isInUse: boolean; conflictingContainer?: string }> => {
+ try {
+ // Method 1: Check all containers and inspect their port bindings
+ const listContainersCommand = `docker ps -a --format '{{.Names}}'`;
+ let containersList = "";
+ if (serverId) {
+ const result = await execAsyncRemote(serverId, listContainersCommand);
+ containersList = result.stdout.trim();
+ } else {
+ const result = await execAsync(listContainersCommand);
+ containersList = result.stdout.trim();
+ }
+
+ const containerNames = containersList
+ .split("\n")
+ .filter((name) => name && name !== "dokploy-traefik");
+
+ // Check each container's port bindings
+ for (const containerName of containerNames) {
+ const portCheckCommand = `docker port ${containerName} 2>/dev/null | grep ':${port}' || true`;
+ let portOutput = "";
+ if (serverId) {
+ const result = await execAsyncRemote(serverId, portCheckCommand);
+ portOutput = result.stdout.trim();
+ } else {
+ const result = await execAsync(portCheckCommand);
+ portOutput = result.stdout.trim();
+ }
+
+ if (portOutput) {
+ return {
+ isInUse: true,
+ conflictingContainer: containerName,
+ };
+ }
+ }
+
+ // Method 2: Check using ss/netstat for any process using the port
+ const portCheckCommand = `ss -tuln 2>/dev/null | grep ':${port} ' || netstat -tuln 2>/dev/null | grep ':${port} ' || true`;
+ let portCheckOutput = "";
+ if (serverId) {
+ const result = await execAsyncRemote(serverId, portCheckCommand);
+ portCheckOutput = result.stdout.trim();
+ } else {
+ const result = await execAsync(portCheckCommand);
+ portCheckOutput = result.stdout.trim();
+ }
+
+ if (portCheckOutput) {
+ // Port is in use but we couldn't identify the container
+ // This could be a non-Docker process or a container we couldn't detect
+ return { isInUse: true };
+ }
+
+ return { isInUse: false };
+ } catch (error) {
+ // If check fails, log error but don't block the operation
+ // The actual Docker bind will fail if port is truly in use
+ console.error("Error checking port availability:", error);
+ return { isInUse: false };
+ }
+};
+
export const writeTraefikSetup = async (input: TraefikOptions) => {
const resourceType = await getDockerResourceType(
"dokploy-traefik",
From 8b13919d3b919cf21e11eb7e42bb1b057eee7b18 Mon Sep 17 00:00:00 2001
From: iamsims <074bct541.simran@pcampus.edu.np>
Date: Sun, 16 Nov 2025 14:53:49 -0600
Subject: [PATCH 05/74] fix: prevent WebSocket timeout in container logs after
60s of inactivity
Fixes #3033
The container logs WebSocket connection was closing after approximately
60 seconds of inactivity with error code 1006 (abnormal closure).
This required users to manually refresh the page to re-establish the
connection, making it difficult to monitor containers that produce logs
infrequently.
Changes:
- Added WebSocket ping mechanism sending ping frames every 45 seconds
- Ensures connection stays alive indefinitely during periods of no log activity
- Properly cleanup ping intervals on connection close (3 locations)
- Prevents memory leaks by clearing intervals on error and close events
The browser automatically responds with pong frames, keeping the
connection alive without requiring any client-side changes.
---
apps/dokploy/server/wss/docker-container-logs.ts | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/apps/dokploy/server/wss/docker-container-logs.ts b/apps/dokploy/server/wss/docker-container-logs.ts
index 8d08ebd46..47868790b 100644
--- a/apps/dokploy/server/wss/docker-container-logs.ts
+++ b/apps/dokploy/server/wss/docker-container-logs.ts
@@ -46,6 +46,14 @@ export const setupDockerContainerLogsWebSocketServer = (
ws.close();
return;
}
+
+ // Set up keep-alive ping mechanism to prevent timeout
+ // Send ping every 45 seconds to keep connection alive
+ const pingInterval = setInterval(() => {
+ if (ws.readyState === ws.OPEN) {
+ ws.ping();
+ }
+ }, 45000); // 45 seconds
try {
if (serverId) {
const server = await findServerById(serverId);
@@ -86,6 +94,7 @@ export const setupDockerContainerLogsWebSocketServer = (
.on("error", (err) => {
console.error("SSH connection error:", err);
ws.send(`SSH error: ${err.message}`);
+ clearInterval(pingInterval);
ws.close(); // Cierra el WebSocket si hay un error con SSH
client.end();
})
@@ -96,6 +105,7 @@ export const setupDockerContainerLogsWebSocketServer = (
privateKey: server.sshKey?.privateKey,
});
ws.on("close", () => {
+ clearInterval(pingInterval);
client.end();
});
} else {
@@ -121,6 +131,7 @@ export const setupDockerContainerLogsWebSocketServer = (
ws.send(data);
});
ws.on("close", () => {
+ clearInterval(pingInterval);
ptyProcess.kill();
});
ws.on("message", (message) => {
From 48503c96c150ae4b98c9b187a5eeaa1dc2ef3437 Mon Sep 17 00:00:00 2001
From: Andre Sousa
Date: Tue, 18 Nov 2025 22:48:13 +0000
Subject: [PATCH 06/74] fix(bunny.net): Update CDN IP ranges
---
packages/server/src/services/cdn.ts | 127 ++++++++++++++++------------
1 file changed, 74 insertions(+), 53 deletions(-)
diff --git a/packages/server/src/services/cdn.ts b/packages/server/src/services/cdn.ts
index 234405b8e..6af4d80f2 100644
--- a/packages/server/src/services/cdn.ts
+++ b/packages/server/src/services/cdn.ts
@@ -75,10 +75,9 @@ const FASTLY_IP_RANGES = [
// Bunny CDN IP addresses
// https://bunnycdn.com/api/system/edgeserverlist
const BUNNY_CDN_IPS = new Set([
- "89.187.188.227",
+ "89.187.188.227",
"89.187.188.228",
"139.180.134.196",
- "89.38.96.158",
"89.187.162.249",
"89.187.162.242",
"185.102.217.65",
@@ -106,12 +105,9 @@ const BUNNY_CDN_IPS = new Set([
"200.25.38.69",
"200.25.42.70",
"200.25.36.166",
- "195.206.229.106",
"194.242.11.186",
- "185.164.35.8",
"94.20.154.22",
"185.93.1.244",
- "156.59.145.154",
"143.244.49.177",
"138.199.46.66",
"138.199.37.227",
@@ -136,7 +132,6 @@ const BUNNY_CDN_IPS = new Set([
"84.17.59.115",
"89.187.165.194",
"138.199.15.193",
- "89.35.237.170",
"37.19.216.130",
"185.93.1.247",
"185.93.3.244",
@@ -150,6 +145,7 @@ const BUNNY_CDN_IPS = new Set([
"84.17.63.178",
"200.25.32.131",
"37.19.207.34",
+ "37.19.207.38",
"192.189.65.146",
"143.244.45.177",
"185.93.1.249",
@@ -168,9 +164,7 @@ const BUNNY_CDN_IPS = new Set([
"129.227.217.178",
"129.227.217.179",
"200.25.69.94",
- "128.1.52.179",
"200.25.16.103",
- "15.235.54.226",
"102.67.138.155",
"156.146.43.65",
"195.181.163.203",
@@ -278,13 +272,11 @@ const BUNNY_CDN_IPS = new Set([
"107.155.47.146",
"193.201.190.174",
"156.59.95.218",
- "213.170.143.139",
"129.227.186.154",
"195.238.127.98",
"200.25.22.6",
"204.16.244.92",
"200.25.70.101",
- "200.25.66.100",
"139.180.209.182",
"103.108.231.41",
"103.108.229.5",
@@ -387,46 +379,13 @@ const BUNNY_CDN_IPS = new Set([
"38.54.5.37",
"38.54.3.92",
"185.165.170.74",
- "207.121.80.118",
- "207.121.46.228",
- "207.121.46.236",
- "207.121.46.244",
- "207.121.46.252",
- "216.202.235.164",
- "207.121.46.220",
"207.121.75.132",
"207.121.80.12",
"207.121.80.172",
"207.121.90.60",
- "207.121.90.68",
- "207.121.97.204",
- "207.121.90.252",
- "207.121.97.236",
- "207.121.99.12",
"138.199.24.219",
"185.93.2.251",
"138.199.46.65",
- "207.121.41.196",
- "207.121.99.20",
- "207.121.99.36",
- "207.121.99.44",
- "207.121.99.52",
- "207.121.99.60",
- "207.121.23.68",
- "207.121.23.124",
- "207.121.23.244",
- "207.121.23.180",
- "207.121.23.188",
- "207.121.23.196",
- "207.121.23.204",
- "207.121.24.52",
- "207.121.24.60",
- "207.121.24.68",
- "207.121.24.76",
- "207.121.24.92",
- "207.121.24.100",
- "207.121.24.108",
- "207.121.24.116",
"154.95.86.76",
"5.9.99.73",
"78.46.92.118",
@@ -434,14 +393,52 @@ const BUNNY_CDN_IPS = new Set([
"78.46.156.89",
"88.198.9.155",
"144.76.79.22",
- "103.1.215.93",
- "103.137.12.33",
- "103.107.196.31",
- "116.90.72.155",
- "103.137.14.5",
- "116.90.75.65",
"37.19.207.37",
"208.83.234.224",
+ "79.127.237.104",
+ "79.127.243.187",
+ "45.156.248.73",
+ "79.127.134.225",
+ "79.127.134.226",
+ "79.127.134.227",
+ "79.127.134.228",
+ "79.127.134.229",
+ "79.127.134.230",
+ "79.127.134.231",
+ "79.127.134.130",
+ "79.127.134.131",
+ "79.127.134.132",
+ "79.127.134.234",
+ "79.127.134.235",
+ "185.111.111.154",
+ "185.111.111.155",
+ "185.111.111.156",
+ "185.111.111.157",
+ "185.111.111.158",
+ "185.111.111.159",
+ "185.111.111.160",
+ "141.227.142.242",
+ "94.128.254.166",
+ "195.206.229.69",
+ "200.25.86.90",
+ "148.113.190.161",
+ "46.151.194.242",
+ "46.151.194.243",
+ "212.102.40.120",
+ "213.170.143.100",
+ "154.93.86.71",
+ "143.244.60.196",
+ "143.244.60.197",
+ "143.244.60.195",
+ "79.127.134.129",
+ "79.127.134.133",
+ "152.233.22.97",
+ "152.233.22.98",
+ "152.233.22.100",
+ "152.233.22.99",
+ "152.233.22.101",
+ "152.233.22.102",
+ "152.233.22.103",
"116.202.155.146",
"116.202.193.178",
"116.202.224.168",
@@ -502,6 +499,12 @@ const BUNNY_CDN_IPS = new Set([
"103.60.15.166",
"103.60.15.167",
"103.60.15.168",
+ "176.9.139.94",
+ "148.251.129.132",
+ "148.251.131.73",
+ "148.251.131.74",
+ "136.243.70.170",
+ "148.251.131.238",
"109.248.43.116",
"109.248.43.117",
"109.248.43.162",
@@ -527,7 +530,9 @@ const BUNNY_CDN_IPS = new Set([
"139.180.129.216",
"139.99.174.7",
"89.187.169.18",
+ "143.244.38.133",
"89.187.179.7",
+ "169.150.213.50",
"143.244.62.213",
"185.93.3.246",
"195.181.163.198",
@@ -535,7 +540,6 @@ const BUNNY_CDN_IPS = new Set([
"84.17.37.211",
"212.102.50.54",
"212.102.46.115",
- "143.244.38.135",
"169.150.238.21",
"169.150.207.51",
"169.150.207.49",
@@ -546,7 +550,6 @@ const BUNNY_CDN_IPS = new Set([
"169.150.247.139",
"169.150.247.177",
"169.150.247.178",
- "169.150.213.49",
"212.102.46.119",
"84.17.38.234",
"84.17.38.233",
@@ -558,7 +561,6 @@ const BUNNY_CDN_IPS = new Set([
"169.150.247.138",
"169.150.247.184",
"169.150.247.185",
- "156.146.58.83",
"212.102.43.88",
"89.187.169.26",
"109.61.89.57",
@@ -587,6 +589,17 @@ const BUNNY_CDN_IPS = new Set([
"138.199.4.177",
"37.19.222.34",
"46.151.193.85",
+ "79.127.237.99",
+ "212.104.158.30",
+ "212.104.158.31",
+ "212.104.158.32",
+ "212.104.158.33",
+ "212.104.158.34",
+ "212.104.158.28",
+ "212.104.158.29",
+ "212.104.158.35",
+ "212.104.158.36",
+ "212.104.158.37",
"212.104.158.17",
"212.104.158.18",
"212.104.158.19",
@@ -595,12 +608,20 @@ const BUNNY_CDN_IPS = new Set([
"212.104.158.22",
"212.104.158.24",
"212.104.158.26",
- "79.127.237.134",
"89.187.184.177",
"89.187.184.179",
"89.187.184.173",
"89.187.184.178",
"89.187.184.176",
+ "212.104.158.25",
+ "212.104.158.27",
+ "212.104.158.67",
+ "212.104.158.10",
+ "212.104.158.12",
+ "212.104.158.64",
+ "212.104.158.16",
+ "212.104.158.23",
+ "212.104.158.54",
]);
// Arvancloud IP ranges
From a79afe49b4c7d8974d8a169fb68e0bdf4ef961fd Mon Sep 17 00:00:00 2001
From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com>
Date: Wed, 19 Nov 2025 04:46:00 +0000
Subject: [PATCH 07/74] [autofix.ci] apply automated fixes
---
packages/server/src/services/cdn.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/server/src/services/cdn.ts b/packages/server/src/services/cdn.ts
index 6af4d80f2..4d16531f1 100644
--- a/packages/server/src/services/cdn.ts
+++ b/packages/server/src/services/cdn.ts
@@ -75,7 +75,7 @@ const FASTLY_IP_RANGES = [
// Bunny CDN IP addresses
// https://bunnycdn.com/api/system/edgeserverlist
const BUNNY_CDN_IPS = new Set([
- "89.187.188.227",
+ "89.187.188.227",
"89.187.188.228",
"139.180.134.196",
"89.187.162.249",
From 1c652477fb5c61039dbb7d34cf9a5e2e89dd0094 Mon Sep 17 00:00:00 2001
From: Lucas Manchine
Date: Thu, 20 Nov 2025 16:15:52 -0300
Subject: [PATCH 08/74] fix: apply stop grace period within container spec
---
.../server/mechanizeDockerContainer.test.ts | 16 ++++++++++++----
packages/server/src/utils/builders/index.ts | 4 ++--
packages/server/src/utils/databases/mariadb.ts | 4 ++--
packages/server/src/utils/databases/mongo.ts | 4 ++--
packages/server/src/utils/databases/mysql.ts | 4 ++--
packages/server/src/utils/databases/postgres.ts | 4 ++--
packages/server/src/utils/databases/redis.ts | 4 ++--
7 files changed, 24 insertions(+), 16 deletions(-)
diff --git a/apps/dokploy/__test__/server/mechanizeDockerContainer.test.ts b/apps/dokploy/__test__/server/mechanizeDockerContainer.test.ts
index 6eb5d1831..38948ac5c 100644
--- a/apps/dokploy/__test__/server/mechanizeDockerContainer.test.ts
+++ b/apps/dokploy/__test__/server/mechanizeDockerContainer.test.ts
@@ -4,7 +4,11 @@ import type { ApplicationNested } from "@dokploy/server/utils/builders";
import { mechanizeDockerContainer } from "@dokploy/server/utils/builders";
type MockCreateServiceOptions = {
- StopGracePeriod?: number;
+ TaskTemplate?: {
+ ContainerSpec?: {
+ StopGracePeriod?: number;
+ };
+ };
[key: string]: unknown;
};
@@ -82,8 +86,10 @@ describe("mechanizeDockerContainer", () => {
throw new Error("createServiceMock should have been called once");
}
const [settings] = call;
- expect(settings.StopGracePeriod).toBe(0);
- expect(typeof settings.StopGracePeriod).toBe("number");
+ expect(settings.TaskTemplate?.ContainerSpec?.StopGracePeriod).toBe(0);
+ expect(typeof settings.TaskTemplate?.ContainerSpec?.StopGracePeriod).toBe(
+ "number",
+ );
});
it("omits StopGracePeriod when stopGracePeriodSwarm is null", async () => {
@@ -97,6 +103,8 @@ describe("mechanizeDockerContainer", () => {
throw new Error("createServiceMock should have been called once");
}
const [settings] = call;
- expect(settings).not.toHaveProperty("StopGracePeriod");
+ expect(settings.TaskTemplate?.ContainerSpec).not.toHaveProperty(
+ "StopGracePeriod",
+ );
});
});
diff --git a/packages/server/src/utils/builders/index.ts b/packages/server/src/utils/builders/index.ts
index bfc3e894a..22789c629 100644
--- a/packages/server/src/utils/builders/index.ts
+++ b/packages/server/src/utils/builders/index.ts
@@ -125,6 +125,8 @@ export const mechanizeDockerContainer = async (
Image: image,
Env: envVariables,
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
+ ...(StopGracePeriod !== undefined &&
+ StopGracePeriod !== null && { StopGracePeriod }),
...(command
? {
Command: ["/bin/sh"],
@@ -153,8 +155,6 @@ export const mechanizeDockerContainer = async (
})),
},
UpdateConfig,
- ...(StopGracePeriod !== undefined &&
- StopGracePeriod !== null && { StopGracePeriod }),
};
try {
diff --git a/packages/server/src/utils/databases/mariadb.ts b/packages/server/src/utils/databases/mariadb.ts
index d06e808e5..bdfa69a4d 100644
--- a/packages/server/src/utils/databases/mariadb.ts
+++ b/packages/server/src/utils/databases/mariadb.ts
@@ -73,6 +73,8 @@ export const buildMariadb = async (mariadb: MariadbNested) => {
Image: dockerImage,
Env: envVariables,
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
+ ...(StopGracePeriod !== undefined &&
+ StopGracePeriod !== null && { StopGracePeriod }),
...(command
? {
Command: ["/bin/sh"],
@@ -106,8 +108,6 @@ export const buildMariadb = async (mariadb: MariadbNested) => {
: [],
},
UpdateConfig,
- ...(StopGracePeriod !== undefined &&
- StopGracePeriod !== null && { StopGracePeriod }),
};
try {
const service = docker.getService(appName);
diff --git a/packages/server/src/utils/databases/mongo.ts b/packages/server/src/utils/databases/mongo.ts
index 8fef4f054..7657d3083 100644
--- a/packages/server/src/utils/databases/mongo.ts
+++ b/packages/server/src/utils/databases/mongo.ts
@@ -121,6 +121,8 @@ ${command ?? "wait $MONGOD_PID"}`;
Image: dockerImage,
Env: envVariables,
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
+ ...(StopGracePeriod !== undefined &&
+ StopGracePeriod !== null && { StopGracePeriod }),
...(replicaSets
? {
Command: ["/bin/bash"],
@@ -159,8 +161,6 @@ ${command ?? "wait $MONGOD_PID"}`;
: [],
},
UpdateConfig,
- ...(StopGracePeriod !== undefined &&
- StopGracePeriod !== null && { StopGracePeriod }),
};
try {
diff --git a/packages/server/src/utils/databases/mysql.ts b/packages/server/src/utils/databases/mysql.ts
index d1ed8318c..e6183dc9d 100644
--- a/packages/server/src/utils/databases/mysql.ts
+++ b/packages/server/src/utils/databases/mysql.ts
@@ -79,6 +79,8 @@ export const buildMysql = async (mysql: MysqlNested) => {
Image: dockerImage,
Env: envVariables,
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
+ ...(StopGracePeriod !== undefined &&
+ StopGracePeriod !== null && { StopGracePeriod }),
...(command
? {
Command: ["/bin/sh"],
@@ -112,8 +114,6 @@ export const buildMysql = async (mysql: MysqlNested) => {
: [],
},
UpdateConfig,
- ...(StopGracePeriod !== undefined &&
- StopGracePeriod !== null && { StopGracePeriod }),
};
try {
const service = docker.getService(appName);
diff --git a/packages/server/src/utils/databases/postgres.ts b/packages/server/src/utils/databases/postgres.ts
index 85bc957ae..ffda50592 100644
--- a/packages/server/src/utils/databases/postgres.ts
+++ b/packages/server/src/utils/databases/postgres.ts
@@ -72,6 +72,8 @@ export const buildPostgres = async (postgres: PostgresNested) => {
Image: dockerImage,
Env: envVariables,
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
+ ...(StopGracePeriod !== undefined &&
+ StopGracePeriod !== null && { StopGracePeriod }),
...(command
? {
Command: ["/bin/sh"],
@@ -105,8 +107,6 @@ export const buildPostgres = async (postgres: PostgresNested) => {
: [],
},
UpdateConfig,
- ...(StopGracePeriod !== undefined &&
- StopGracePeriod !== null && { StopGracePeriod }),
};
try {
const service = docker.getService(appName);
diff --git a/packages/server/src/utils/databases/redis.ts b/packages/server/src/utils/databases/redis.ts
index 35e854058..e0d810660 100644
--- a/packages/server/src/utils/databases/redis.ts
+++ b/packages/server/src/utils/databases/redis.ts
@@ -70,6 +70,8 @@ export const buildRedis = async (redis: RedisNested) => {
Image: dockerImage,
Env: envVariables,
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
+ ...(StopGracePeriod !== undefined &&
+ StopGracePeriod !== null && { StopGracePeriod }),
Command: ["/bin/sh"],
Args: [
"-c",
@@ -102,8 +104,6 @@ export const buildRedis = async (redis: RedisNested) => {
: [],
},
UpdateConfig,
- ...(StopGracePeriod !== undefined &&
- StopGracePeriod !== null && { StopGracePeriod }),
};
try {
From 5890b321b24226017c854f72664966bfeae29ce2 Mon Sep 17 00:00:00 2001
From: Jordan B
Date: Fri, 21 Nov 2025 13:38:09 +0100
Subject: [PATCH 09/74] fix: parse CPU value for progress component in
monitoring dashboard
---
.../free/container/show-free-container-monitoring.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/apps/dokploy/components/dashboard/monitoring/free/container/show-free-container-monitoring.tsx b/apps/dokploy/components/dashboard/monitoring/free/container/show-free-container-monitoring.tsx
index b28c4d9b6..4cc38cfc0 100644
--- a/apps/dokploy/components/dashboard/monitoring/free/container/show-free-container-monitoring.tsx
+++ b/apps/dokploy/components/dashboard/monitoring/free/container/show-free-container-monitoring.tsx
@@ -220,7 +220,7 @@ export const ContainerFreeMonitoring = ({
Used: {currentData.cpu.value}
-
+
From 218c077255b9dcb853e5e881d7241df22fda0116 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Fri, 28 Nov 2025 10:41:33 -0600
Subject: [PATCH 10/74] refactor: simplify StopGracePeriod handling in
container specifications
- Updated the handling of StopGracePeriod in various database builders to streamline the condition check, improving code readability and maintainability.
---
packages/server/src/utils/builders/index.ts | 3 +--
packages/server/src/utils/databases/mariadb.ts | 3 +--
packages/server/src/utils/databases/mongo.ts | 3 +--
packages/server/src/utils/databases/mysql.ts | 3 +--
packages/server/src/utils/databases/postgres.ts | 3 +--
packages/server/src/utils/databases/redis.ts | 3 +--
6 files changed, 6 insertions(+), 12 deletions(-)
diff --git a/packages/server/src/utils/builders/index.ts b/packages/server/src/utils/builders/index.ts
index 22789c629..11912f6c5 100644
--- a/packages/server/src/utils/builders/index.ts
+++ b/packages/server/src/utils/builders/index.ts
@@ -125,8 +125,7 @@ export const mechanizeDockerContainer = async (
Image: image,
Env: envVariables,
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
- ...(StopGracePeriod !== undefined &&
- StopGracePeriod !== null && { StopGracePeriod }),
+ ...(StopGracePeriod && { StopGracePeriod }),
...(command
? {
Command: ["/bin/sh"],
diff --git a/packages/server/src/utils/databases/mariadb.ts b/packages/server/src/utils/databases/mariadb.ts
index bdfa69a4d..1db457018 100644
--- a/packages/server/src/utils/databases/mariadb.ts
+++ b/packages/server/src/utils/databases/mariadb.ts
@@ -73,8 +73,7 @@ export const buildMariadb = async (mariadb: MariadbNested) => {
Image: dockerImage,
Env: envVariables,
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
- ...(StopGracePeriod !== undefined &&
- StopGracePeriod !== null && { StopGracePeriod }),
+ ...(StopGracePeriod && { StopGracePeriod }),
...(command
? {
Command: ["/bin/sh"],
diff --git a/packages/server/src/utils/databases/mongo.ts b/packages/server/src/utils/databases/mongo.ts
index 7657d3083..3b71f323b 100644
--- a/packages/server/src/utils/databases/mongo.ts
+++ b/packages/server/src/utils/databases/mongo.ts
@@ -121,8 +121,7 @@ ${command ?? "wait $MONGOD_PID"}`;
Image: dockerImage,
Env: envVariables,
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
- ...(StopGracePeriod !== undefined &&
- StopGracePeriod !== null && { StopGracePeriod }),
+ ...(StopGracePeriod && { StopGracePeriod }),
...(replicaSets
? {
Command: ["/bin/bash"],
diff --git a/packages/server/src/utils/databases/mysql.ts b/packages/server/src/utils/databases/mysql.ts
index e6183dc9d..069803a7c 100644
--- a/packages/server/src/utils/databases/mysql.ts
+++ b/packages/server/src/utils/databases/mysql.ts
@@ -79,8 +79,7 @@ export const buildMysql = async (mysql: MysqlNested) => {
Image: dockerImage,
Env: envVariables,
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
- ...(StopGracePeriod !== undefined &&
- StopGracePeriod !== null && { StopGracePeriod }),
+ ...(StopGracePeriod && { StopGracePeriod }),
...(command
? {
Command: ["/bin/sh"],
diff --git a/packages/server/src/utils/databases/postgres.ts b/packages/server/src/utils/databases/postgres.ts
index ffda50592..afcd49ca1 100644
--- a/packages/server/src/utils/databases/postgres.ts
+++ b/packages/server/src/utils/databases/postgres.ts
@@ -72,8 +72,7 @@ export const buildPostgres = async (postgres: PostgresNested) => {
Image: dockerImage,
Env: envVariables,
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
- ...(StopGracePeriod !== undefined &&
- StopGracePeriod !== null && { StopGracePeriod }),
+ ...(StopGracePeriod && { StopGracePeriod }),
...(command
? {
Command: ["/bin/sh"],
diff --git a/packages/server/src/utils/databases/redis.ts b/packages/server/src/utils/databases/redis.ts
index e0d810660..7aa684565 100644
--- a/packages/server/src/utils/databases/redis.ts
+++ b/packages/server/src/utils/databases/redis.ts
@@ -70,8 +70,7 @@ export const buildRedis = async (redis: RedisNested) => {
Image: dockerImage,
Env: envVariables,
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
- ...(StopGracePeriod !== undefined &&
- StopGracePeriod !== null && { StopGracePeriod }),
+ ...(StopGracePeriod && { StopGracePeriod }),
Command: ["/bin/sh"],
Args: [
"-c",
From 30d2f382590658c958c5fb438f210786bd4be1ee Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sat, 29 Nov 2025 00:44:44 -0600
Subject: [PATCH 11/74] feat: enhance CI workflow with Nixpacks and Railpack
installation
- Added steps to install Nixpacks and Railpack in the CI workflow for testing jobs.
- Updated the PATH to include build tools for better accessibility during the build process.
- Improved Vitest configuration to ensure proper TypeScript path resolution.
---
.github/workflows/pull-request.yml | 19 +
.../deploy/application.command.test.ts | 277 ++++++++++
.../__test__/deploy/application.real.test.ts | 479 ++++++++++++++++++
apps/dokploy/__test__/vitest.config.ts | 6 +-
4 files changed, 780 insertions(+), 1 deletion(-)
create mode 100644 apps/dokploy/__test__/deploy/application.command.test.ts
create mode 100644 apps/dokploy/__test__/deploy/application.real.test.ts
diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml
index 6c74dbc02..7ea03fe0f 100644
--- a/.github/workflows/pull-request.yml
+++ b/.github/workflows/pull-request.yml
@@ -20,6 +20,25 @@ jobs:
with:
node-version: 20.16.0
cache: "pnpm"
+
+ - name: Install Nixpacks
+ if: matrix.job == 'test'
+ run: |
+ export NIXPACKS_VERSION=1.39.0
+ curl -sSL https://nixpacks.com/install.sh | bash
+ echo "Nixpacks installed $NIXPACKS_VERSION"
+
+ - name: Install Railpack
+ if: matrix.job == 'test'
+ run: |
+ export RAILPACK_VERSION=0.15.0
+ curl -sSL https://railpack.com/install.sh | bash
+ echo "Railpack installed $RAILPACK_VERSION"
+
+ - name: Add build tools to PATH
+ if: matrix.job == 'test'
+ run: echo "$HOME/.local/bin" >> $GITHUB_PATH
+
- run: pnpm install --frozen-lockfile
- run: pnpm server:build
- run: pnpm ${{ matrix.job }}
diff --git a/apps/dokploy/__test__/deploy/application.command.test.ts b/apps/dokploy/__test__/deploy/application.command.test.ts
new file mode 100644
index 000000000..7bfa93ac8
--- /dev/null
+++ b/apps/dokploy/__test__/deploy/application.command.test.ts
@@ -0,0 +1,277 @@
+import * as adminService from "@dokploy/server/services/admin";
+import * as applicationService from "@dokploy/server/services/application";
+import { deployApplication } from "@dokploy/server/services/application";
+import * as deploymentService from "@dokploy/server/services/deployment";
+import * as builders from "@dokploy/server/utils/builders";
+import * as errorNotifications from "@dokploy/server/utils/notifications/build-error";
+import * as notifications from "@dokploy/server/utils/notifications/build-success";
+import * as execProcess from "@dokploy/server/utils/process/execAsync";
+import * as gitProvider from "@dokploy/server/utils/providers/git";
+import { beforeEach, describe, expect, it, vi } from "vitest";
+
+vi.mock("@dokploy/server/db", () => {
+ const createChainableMock = () => {
+ const chain = {
+ set: vi.fn(() => chain),
+ where: vi.fn(() => chain),
+ returning: vi.fn().mockResolvedValue([{}]),
+ };
+ return chain;
+ };
+
+ return {
+ db: {
+ select: vi.fn(),
+ insert: vi.fn(),
+ update: vi.fn(() => createChainableMock()),
+ delete: vi.fn(),
+ query: {
+ applications: {
+ findFirst: vi.fn(),
+ },
+ },
+ },
+ };
+});
+
+vi.mock("@dokploy/server/services/application", async () => {
+ const actual = await vi.importActual<
+ typeof import("@dokploy/server/services/application")
+ >("@dokploy/server/services/application");
+ return {
+ ...actual,
+ findApplicationById: vi.fn(),
+ updateApplicationStatus: vi.fn(),
+ };
+});
+
+vi.mock("@dokploy/server/services/admin", () => ({
+ getDokployUrl: vi.fn(),
+}));
+
+vi.mock("@dokploy/server/services/deployment", () => ({
+ createDeployment: vi.fn(),
+ updateDeploymentStatus: vi.fn(),
+ updateDeployment: vi.fn(),
+}));
+
+vi.mock("@dokploy/server/utils/providers/git", async () => {
+ const actual = await vi.importActual<
+ typeof import("@dokploy/server/utils/providers/git")
+ >("@dokploy/server/utils/providers/git");
+ return {
+ ...actual,
+ getGitCommitInfo: vi.fn(),
+ };
+});
+
+vi.mock("@dokploy/server/utils/process/execAsync", () => ({
+ execAsync: vi.fn(),
+ ExecError: class ExecError extends Error {},
+}));
+
+vi.mock("@dokploy/server/utils/builders", async () => {
+ const actual = await vi.importActual<
+ typeof import("@dokploy/server/utils/builders")
+ >("@dokploy/server/utils/builders");
+ return {
+ ...actual,
+ mechanizeDockerContainer: vi.fn(),
+ getBuildCommand: vi.fn(),
+ };
+});
+
+vi.mock("@dokploy/server/utils/notifications/build-success", () => ({
+ sendBuildSuccessNotifications: vi.fn(),
+}));
+
+vi.mock("@dokploy/server/utils/notifications/build-error", () => ({
+ sendBuildErrorNotifications: vi.fn(),
+}));
+
+vi.mock("@dokploy/server/services/rollbacks", () => ({
+ createRollback: vi.fn(),
+}));
+
+import { db } from "@dokploy/server/db";
+import { cloneGitRepository } from "@dokploy/server/utils/providers/git";
+
+const createMockApplication = (overrides = {}) => ({
+ applicationId: "test-app-id",
+ name: "Test App",
+ appName: "test-app",
+ sourceType: "git" as const,
+ customGitUrl: "https://github.com/Dokploy/examples.git",
+ customGitBranch: "main",
+ customGitSSHKeyId: null,
+ buildType: "nixpacks" as const,
+ buildPath: "/astro",
+ env: "NODE_ENV=production",
+ serverId: null,
+ rollbackActive: false,
+ enableSubmodules: false,
+ environmentId: "env-id",
+ environment: {
+ projectId: "project-id",
+ env: "",
+ name: "production",
+ project: {
+ name: "Test Project",
+ organizationId: "org-id",
+ env: "",
+ },
+ },
+ domains: [],
+ ...overrides,
+});
+
+const createMockDeployment = () => ({
+ deploymentId: "deployment-id",
+ logPath: "/tmp/test-deployment.log",
+});
+
+describe("deployApplication - Command Generation Tests", () => {
+ beforeEach(() => {
+ vi.clearAllMocks();
+ vi.mocked(db.query.applications.findFirst).mockResolvedValue(
+ createMockApplication() as any,
+ );
+ vi.mocked(applicationService.findApplicationById).mockResolvedValue(
+ createMockApplication() as any,
+ );
+ vi.mocked(adminService.getDokployUrl).mockResolvedValue(
+ "http://localhost:3000",
+ );
+ vi.mocked(deploymentService.createDeployment).mockResolvedValue(
+ createMockDeployment() as any,
+ );
+ vi.mocked(execProcess.execAsync).mockResolvedValue({
+ stdout: "",
+ stderr: "",
+ } as any);
+ vi.mocked(builders.mechanizeDockerContainer).mockResolvedValue(
+ undefined as any,
+ );
+ vi.mocked(deploymentService.updateDeploymentStatus).mockResolvedValue(
+ undefined as any,
+ );
+ vi.mocked(applicationService.updateApplicationStatus).mockResolvedValue(
+ {} as any,
+ );
+ vi.mocked(notifications.sendBuildSuccessNotifications).mockResolvedValue(
+ undefined as any,
+ );
+ vi.mocked(gitProvider.getGitCommitInfo).mockResolvedValue({
+ message: "test commit",
+ hash: "abc123",
+ });
+ vi.mocked(deploymentService.updateDeployment).mockResolvedValue({} as any);
+ });
+
+ it("should generate correct git clone command for astro example", async () => {
+ const app = createMockApplication();
+ const command = await cloneGitRepository(app);
+ console.log(command);
+
+ expect(command).toContain("https://github.com/Dokploy/examples.git");
+ expect(command).not.toContain("--recurse-submodules");
+ expect(command).toContain("--branch main");
+ expect(command).toContain("--depth 1");
+ expect(command).toContain("git clone");
+ });
+
+ it("should generate git clone with submodules when enabled", async () => {
+ const app = createMockApplication({ enableSubmodules: true });
+ const command = await cloneGitRepository(app);
+
+ expect(command).toContain("--recurse-submodules");
+ expect(command).toContain("https://github.com/Dokploy/examples.git");
+ });
+
+ it("should verify nixpacks command is called with correct app", async () => {
+ const mockNixpacksCommand = "nixpacks build /path/to/app --name test-app";
+ vi.mocked(builders.getBuildCommand).mockReturnValue(mockNixpacksCommand);
+
+ await deployApplication({
+ applicationId: "test-app-id",
+ titleLog: "Test deployment",
+ descriptionLog: "",
+ });
+
+ expect(builders.getBuildCommand).toHaveBeenCalledWith(
+ expect.objectContaining({
+ buildType: "nixpacks",
+ customGitUrl: "https://github.com/Dokploy/examples.git",
+ buildPath: "/astro",
+ }),
+ );
+
+ expect(execProcess.execAsync).toHaveBeenCalledWith(
+ expect.stringContaining("nixpacks build"),
+ );
+ });
+
+ it("should verify railpack command includes correct parameters", async () => {
+ const mockApp = createMockApplication({ buildType: "railpack" });
+ vi.mocked(db.query.applications.findFirst).mockResolvedValue(
+ mockApp as any,
+ );
+ vi.mocked(applicationService.findApplicationById).mockResolvedValue(
+ mockApp as any,
+ );
+
+ const mockRailpackCommand = "railpack prepare /path/to/app";
+ vi.mocked(builders.getBuildCommand).mockReturnValue(mockRailpackCommand);
+
+ await deployApplication({
+ applicationId: "test-app-id",
+ titleLog: "Railpack test",
+ descriptionLog: "",
+ });
+
+ expect(builders.getBuildCommand).toHaveBeenCalledWith(
+ expect.objectContaining({
+ buildType: "railpack",
+ }),
+ );
+
+ expect(execProcess.execAsync).toHaveBeenCalledWith(
+ expect.stringContaining("railpack prepare"),
+ );
+ });
+
+ it("should execute commands in correct order", async () => {
+ const mockNixpacksCommand = "nixpacks build";
+ vi.mocked(builders.getBuildCommand).mockReturnValue(mockNixpacksCommand);
+
+ await deployApplication({
+ applicationId: "test-app-id",
+ titleLog: "Test",
+ descriptionLog: "",
+ });
+
+ const execCalls = vi.mocked(execProcess.execAsync).mock.calls;
+ expect(execCalls.length).toBeGreaterThan(0);
+
+ const fullCommand = execCalls[0]?.[0];
+ expect(fullCommand).toContain("set -e");
+ expect(fullCommand).toContain("git clone");
+ expect(fullCommand).toContain("nixpacks build");
+ });
+
+ it("should include log redirection in command", async () => {
+ const mockCommand = "nixpacks build";
+ vi.mocked(builders.getBuildCommand).mockReturnValue(mockCommand);
+
+ await deployApplication({
+ applicationId: "test-app-id",
+ titleLog: "Test",
+ descriptionLog: "",
+ });
+
+ const execCalls = vi.mocked(execProcess.execAsync).mock.calls;
+ const fullCommand = execCalls[0]?.[0];
+
+ expect(fullCommand).toContain(">> /tmp/test-deployment.log 2>&1");
+ });
+});
diff --git a/apps/dokploy/__test__/deploy/application.real.test.ts b/apps/dokploy/__test__/deploy/application.real.test.ts
new file mode 100644
index 000000000..2fed049ac
--- /dev/null
+++ b/apps/dokploy/__test__/deploy/application.real.test.ts
@@ -0,0 +1,479 @@
+import { existsSync } from "node:fs";
+import path from "node:path";
+import type { ApplicationNested } from "@dokploy/server";
+import { paths } from "@dokploy/server/constants";
+import { execAsync } from "@dokploy/server/utils/process/execAsync";
+import { format } from "date-fns";
+import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
+
+const REAL_TEST_TIMEOUT = 180000; // 3 minutos
+
+// Mock SOLO la base de datos y notificaciones
+vi.mock("@dokploy/server/db", () => {
+ const createChainableMock = (): any => {
+ const chain: any = {
+ set: vi.fn(() => chain),
+ where: vi.fn(() => chain),
+ returning: vi.fn().mockResolvedValue([{}]),
+ };
+ return chain;
+ };
+
+ return {
+ db: {
+ select: vi.fn(),
+ insert: vi.fn(),
+ update: vi.fn(() => createChainableMock()),
+ delete: vi.fn(),
+ query: {
+ applications: {
+ findFirst: vi.fn(),
+ },
+ },
+ },
+ };
+});
+
+vi.mock("@dokploy/server/services/application", async () => {
+ const actual = await vi.importActual<
+ typeof import("@dokploy/server/services/application")
+ >("@dokploy/server/services/application");
+ return {
+ ...actual,
+ findApplicationById: vi.fn(),
+ updateApplicationStatus: vi.fn(),
+ };
+});
+
+vi.mock("@dokploy/server/services/admin", () => ({
+ getDokployUrl: vi.fn().mockResolvedValue("http://localhost:3000"),
+}));
+
+vi.mock("@dokploy/server/services/deployment", () => ({
+ createDeployment: vi.fn(),
+ updateDeploymentStatus: vi.fn(),
+ updateDeployment: vi.fn(),
+}));
+
+vi.mock("@dokploy/server/utils/notifications/build-success", () => ({
+ sendBuildSuccessNotifications: vi.fn(),
+}));
+
+vi.mock("@dokploy/server/utils/notifications/build-error", () => ({
+ sendBuildErrorNotifications: vi.fn(),
+}));
+
+vi.mock("@dokploy/server/services/rollbacks", () => ({
+ createRollback: vi.fn(),
+}));
+
+// NO mockeamos:
+// - execAsync (queremos que se ejecute de verdad)
+// - cloneGitRepository (queremos que se ejecute de verdad)
+// - getBuildCommand (queremos que se ejecute de verdad)
+// - mechanizeDockerContainer (queremos que se ejecute de verdad)
+
+import { db } from "@dokploy/server/db";
+import * as adminService from "@dokploy/server/services/admin";
+import * as applicationService from "@dokploy/server/services/application";
+import { deployApplication } from "@dokploy/server/services/application";
+import * as deploymentService from "@dokploy/server/services/deployment";
+
+const createMockApplication = (
+ overrides: Partial = {},
+): ApplicationNested =>
+ ({
+ applicationId: "test-app-id",
+ name: "Real Test App",
+ appName: `real-test-${Date.now()}`,
+ sourceType: "git" as const,
+ customGitUrl: "https://github.com/Dokploy/examples.git",
+ customGitBranch: "main",
+ customGitSSHKeyId: null,
+ customGitBuildPath: "/astro",
+ buildType: "nixpacks" as const,
+ env: "NODE_ENV=production",
+ serverId: null,
+ rollbackActive: false,
+ enableSubmodules: false,
+ environmentId: "env-id",
+ environment: {
+ projectId: "project-id",
+ env: "",
+ name: "production",
+ project: {
+ name: "Test Project",
+ organizationId: "org-id",
+ env: "",
+ },
+ },
+ domains: [],
+ mounts: [],
+ security: [],
+ redirects: [],
+ ports: [],
+ registry: null,
+ ...overrides,
+ }) as ApplicationNested;
+
+const createMockDeployment = async (appName: string) => {
+ const { LOGS_PATH } = paths(false); // false = local, no remote server
+ const formattedDateTime = format(new Date(), "yyyy-MM-dd:HH:mm:ss");
+ const fileName = `${appName}-${formattedDateTime}.log`;
+ const logFilePath = path.join(LOGS_PATH, appName, fileName);
+
+ // Crear el directorio de logs REALMENTE
+ await execAsync(`mkdir -p ${path.dirname(logFilePath)}`);
+ await execAsync(`echo "Initializing deployment" > ${logFilePath}`);
+
+ return {
+ deploymentId: "deployment-id",
+ logPath: logFilePath,
+ };
+};
+
+async function cleanupDocker(appName: string) {
+ try {
+ await execAsync(`docker stop ${appName} 2>/dev/null || true`);
+ await execAsync(`docker rm ${appName} 2>/dev/null || true`);
+ await execAsync(`docker rmi ${appName} 2>/dev/null || true`);
+ } catch (error) {
+ console.log("Docker cleanup completed");
+ }
+}
+
+async function cleanupFiles(appName: string) {
+ try {
+ const { LOGS_PATH, APPLICATIONS_PATH } = paths(false);
+
+ // Limpiar directorios de código clonado
+ const appPath = path.join(APPLICATIONS_PATH, appName);
+ await execAsync(`rm -rf ${appPath} 2>/dev/null || true`);
+
+ // Limpiar logs del appName - elimina el folder completo
+ const logPath = path.join(LOGS_PATH, appName);
+ await execAsync(`rm -rf ${logPath} 2>/dev/null || true`);
+
+ console.log(`✅ Cleaned up files and logs for ${appName}`);
+ } catch (error) {
+ console.error(`⚠️ Error during cleanup for ${appName}:`, error);
+ }
+}
+
+describe(
+ "deployApplication - REAL Execution Tests",
+ () => {
+ let currentAppName: string;
+ let currentDeployment: any;
+ const allTestAppNames: string[] = [];
+
+ beforeEach(async () => {
+ vi.clearAllMocks();
+ currentAppName = `real-test-${Date.now()}`;
+ currentDeployment = await createMockDeployment(currentAppName);
+ allTestAppNames.push(currentAppName);
+
+ const mockApp = createMockApplication({ appName: currentAppName });
+
+ vi.mocked(db.query.applications.findFirst).mockResolvedValue(
+ mockApp as any,
+ );
+ vi.mocked(applicationService.findApplicationById).mockResolvedValue(
+ mockApp as any,
+ );
+ vi.mocked(adminService.getDokployUrl).mockResolvedValue(
+ "http://localhost:3000",
+ );
+ vi.mocked(deploymentService.createDeployment).mockResolvedValue(
+ currentDeployment as any,
+ );
+ vi.mocked(deploymentService.updateDeploymentStatus).mockResolvedValue(
+ undefined as any,
+ );
+ vi.mocked(applicationService.updateApplicationStatus).mockResolvedValue(
+ {} as any,
+ );
+ vi.mocked(deploymentService.updateDeployment).mockResolvedValue(
+ {} as any,
+ );
+ });
+
+ afterEach(async () => {
+ // SIEMPRE limpia, incluso si el test falló o pasó
+ console.log(`\n🧹 Cleaning up test: ${currentAppName}`);
+
+ // Limpiar el appName actual
+ try {
+ await cleanupDocker(currentAppName);
+ await cleanupFiles(currentAppName);
+ } catch (error) {
+ console.error("⚠️ Error cleaning current app:", error);
+ }
+
+ // Limpiar TODOS los folders de test por si acaso
+ try {
+ const { LOGS_PATH, APPLICATIONS_PATH } = paths(false);
+ await execAsync(`rm -rf ${LOGS_PATH}/real-* 2>/dev/null || true`);
+ await execAsync(
+ `rm -rf ${APPLICATIONS_PATH}/real-* 2>/dev/null || true`,
+ );
+ console.log("✅ Cleaned up all test artifacts");
+ } catch (error) {
+ console.error("⚠️ Error cleaning all artifacts:", error);
+ }
+
+ console.log("✅ Cleanup completed\n");
+ });
+
+ it(
+ "should REALLY clone git repo and build with nixpacks",
+ async () => {
+ console.log(`\n🚀 Testing real deployment with app: ${currentAppName}`);
+
+ const result = await deployApplication({
+ applicationId: "test-app-id",
+ titleLog: "Real Nixpacks Test",
+ descriptionLog: "Testing real execution",
+ });
+
+ expect(result).toBe(true);
+
+ // Verificar que la imagen Docker fue creada DE VERDAD
+ const { stdout: dockerImages } = await execAsync(
+ `docker images ${currentAppName} --format "{{.Repository}}"`,
+ );
+ console.log("dockerImages", dockerImages);
+ expect(dockerImages.trim()).toBe(currentAppName);
+ console.log(`✅ Docker image created: ${currentAppName}`);
+
+ // Verificar que el log existe y tiene contenido
+ expect(existsSync(currentDeployment.logPath)).toBe(true);
+ const { stdout: logContent } = await execAsync(
+ `cat ${currentDeployment.logPath}`,
+ );
+ expect(logContent).toContain("Cloning");
+ expect(logContent).toContain("nixpacks");
+ console.log(`✅ Build log created with ${logContent.length} chars`);
+
+ // Verificar que las funciones de actualización fueron llamadas
+ expect(deploymentService.updateDeploymentStatus).toHaveBeenCalledWith(
+ "deployment-id",
+ "done",
+ );
+ },
+ REAL_TEST_TIMEOUT,
+ );
+
+ it.skip(
+ "should REALLY build with railpack (SKIPPED: requires special permissions)",
+ async () => {
+ const railpackAppName = `real-railpack-${Date.now()}`;
+ const railpackApp = createMockApplication({
+ appName: railpackAppName,
+ buildType: "railpack",
+ railpackVersion: "3",
+ });
+ currentAppName = railpackAppName;
+ allTestAppNames.push(railpackAppName);
+
+ vi.mocked(db.query.applications.findFirst).mockResolvedValue(
+ railpackApp as any,
+ );
+ vi.mocked(applicationService.findApplicationById).mockResolvedValue(
+ railpackApp as any,
+ );
+
+ console.log(`\n🚀 Testing real railpack deployment: ${currentAppName}`);
+
+ const result = await deployApplication({
+ applicationId: "test-app-id",
+ titleLog: "Real Railpack Test",
+ descriptionLog: "",
+ });
+
+ expect(result).toBe(true);
+
+ const { stdout: dockerImages } = await execAsync(
+ `docker images ${currentAppName} --format "{{.Repository}}"`,
+ );
+ expect(dockerImages.trim()).toBe(currentAppName);
+ console.log(`✅ Railpack image created: ${currentAppName}`);
+
+ const { stdout: logContent } = await execAsync(
+ `cat ${currentDeployment.logPath}`,
+ );
+ expect(logContent).toContain("railpack");
+ console.log("✅ Railpack build completed");
+ },
+ REAL_TEST_TIMEOUT,
+ );
+
+ it(
+ "should handle REAL git clone errors",
+ async () => {
+ const errorAppName = `real-error-${Date.now()}`;
+ const errorApp = createMockApplication({
+ appName: errorAppName,
+ customGitUrl:
+ "https://github.com/invalid/nonexistent-repo-123456.git",
+ });
+ currentAppName = errorAppName;
+ allTestAppNames.push(errorAppName);
+
+ vi.mocked(db.query.applications.findFirst).mockResolvedValue(
+ errorApp as any,
+ );
+ vi.mocked(applicationService.findApplicationById).mockResolvedValue(
+ errorApp as any,
+ );
+
+ console.log(`\n🚀 Testing real error handling: ${currentAppName}`);
+
+ await expect(
+ deployApplication({
+ applicationId: "test-app-id",
+ titleLog: "Real Error Test",
+ descriptionLog: "",
+ }),
+ ).rejects.toThrow();
+
+ // Verificar que se llamó con estado de error
+ expect(deploymentService.updateDeploymentStatus).toHaveBeenCalledWith(
+ "deployment-id",
+ "error",
+ );
+
+ // Verificar que el log contiene el error
+ const { stdout: logContent } = await execAsync(
+ `cat ${currentDeployment.logPath}`,
+ );
+ expect(logContent.toLowerCase()).toContain("error");
+ console.log("✅ Error handling verified");
+ },
+ REAL_TEST_TIMEOUT,
+ );
+
+ it(
+ "should REALLY clone with submodules when enabled",
+ async () => {
+ const submodulesAppName = `real-submodules-${Date.now()}`;
+ const submodulesApp = createMockApplication({
+ appName: submodulesAppName,
+ enableSubmodules: true,
+ });
+ currentAppName = submodulesAppName;
+ allTestAppNames.push(submodulesAppName);
+
+ vi.mocked(db.query.applications.findFirst).mockResolvedValue(
+ submodulesApp as any,
+ );
+ vi.mocked(applicationService.findApplicationById).mockResolvedValue(
+ submodulesApp as any,
+ );
+
+ console.log(`\n🚀 Testing real submodules support: ${currentAppName}`);
+
+ const result = await deployApplication({
+ applicationId: "test-app-id",
+ titleLog: "Real Submodules Test",
+ descriptionLog: "",
+ });
+
+ expect(result).toBe(true);
+
+ // Verificar que el deployment completó exitosamente
+ const { stdout: logContent } = await execAsync(
+ `cat ${currentDeployment.logPath}`,
+ );
+ expect(logContent).toContain("Cloning");
+ expect(logContent.length).toBeGreaterThan(100);
+ console.log("✅ Submodules deployment completed");
+
+ // Verificar imagen
+ const { stdout: dockerImages } = await execAsync(
+ `docker images ${currentAppName} --format "{{.Repository}}"`,
+ );
+ expect(dockerImages.trim()).toBe(currentAppName);
+ },
+ REAL_TEST_TIMEOUT,
+ );
+
+ it(
+ "should verify REAL commit info extraction",
+ async () => {
+ console.log(`\n🚀 Testing real commit info: ${currentAppName}`);
+
+ await deployApplication({
+ applicationId: "test-app-id",
+ titleLog: "Real Commit Test",
+ descriptionLog: "",
+ });
+
+ // Verificar que se llamó updateDeployment con info del commit
+ expect(deploymentService.updateDeployment).toHaveBeenCalled();
+ const updateCall = vi.mocked(deploymentService.updateDeployment).mock
+ .calls[0];
+
+ // El commit info real debería tener título y hash
+ expect(updateCall?.[1]).toHaveProperty("title");
+ expect(updateCall?.[1]).toHaveProperty("description");
+ expect(updateCall?.[1]?.description).toContain("Commit:");
+
+ console.log(
+ `✅ Real commit extracted: ${updateCall?.[1]?.title?.substring(0, 50)}...`,
+ );
+ },
+ REAL_TEST_TIMEOUT,
+ );
+
+ it(
+ "should REALLY build with Dockerfile",
+ async () => {
+ const dockerfileAppName = `real-dockerfile-${Date.now()}`;
+ const dockerfileApp = createMockApplication({
+ appName: dockerfileAppName,
+ buildType: "dockerfile",
+ customGitBuildPath: "/deno",
+ dockerfile: "Dockerfile",
+ });
+ currentAppName = dockerfileAppName;
+ allTestAppNames.push(dockerfileAppName);
+
+ vi.mocked(db.query.applications.findFirst).mockResolvedValue(
+ dockerfileApp as any,
+ );
+ vi.mocked(applicationService.findApplicationById).mockResolvedValue(
+ dockerfileApp as any,
+ );
+
+ console.log(`\n🚀 Testing real Dockerfile build: ${currentAppName}`);
+
+ const result = await deployApplication({
+ applicationId: "test-app-id",
+ titleLog: "Real Dockerfile Test",
+ descriptionLog: "",
+ });
+
+ expect(result).toBe(true);
+
+ // Verificar el log
+ const { stdout: logContent } = await execAsync(
+ `cat ${currentDeployment.logPath}`,
+ );
+ expect(logContent).toContain("Building");
+ expect(logContent).toContain(dockerfileAppName);
+ console.log("✅ Dockerfile build log verified");
+
+ // Verificar imagen
+ const { stdout: dockerImages } = await execAsync(
+ `docker images ${currentAppName} --format "{{.Repository}}"`,
+ );
+ console.log("dockerImages", dockerImages);
+ expect(dockerImages.trim()).toBe(currentAppName);
+ console.log(`✅ Docker image created: ${currentAppName}`);
+ },
+ REAL_TEST_TIMEOUT,
+ );
+ },
+ REAL_TEST_TIMEOUT,
+);
diff --git a/apps/dokploy/__test__/vitest.config.ts b/apps/dokploy/__test__/vitest.config.ts
index ddc84d6ac..7270b828a 100644
--- a/apps/dokploy/__test__/vitest.config.ts
+++ b/apps/dokploy/__test__/vitest.config.ts
@@ -13,7 +13,11 @@ export default defineConfig({
NODE: "test",
},
},
- plugins: [tsconfigPaths()],
+ plugins: [
+ tsconfigPaths({
+ projects: [path.resolve(__dirname, "../tsconfig.json")],
+ }),
+ ],
resolve: {
alias: {
"@dokploy/server": path.resolve(
From f77a67ba33758f178761810be7fc4e20391f8bed Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sat, 29 Nov 2025 00:47:31 -0600
Subject: [PATCH 12/74] refactor: improve type safety in application command
test mock
- Updated the type definition for the createChainableMock function to enhance type safety.
- Ensured that the returning method in the mock returns a properly typed value.
---
apps/dokploy/__test__/deploy/application.command.test.ts | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/apps/dokploy/__test__/deploy/application.command.test.ts b/apps/dokploy/__test__/deploy/application.command.test.ts
index 7bfa93ac8..a0c4387c8 100644
--- a/apps/dokploy/__test__/deploy/application.command.test.ts
+++ b/apps/dokploy/__test__/deploy/application.command.test.ts
@@ -3,19 +3,18 @@ import * as applicationService from "@dokploy/server/services/application";
import { deployApplication } from "@dokploy/server/services/application";
import * as deploymentService from "@dokploy/server/services/deployment";
import * as builders from "@dokploy/server/utils/builders";
-import * as errorNotifications from "@dokploy/server/utils/notifications/build-error";
import * as notifications from "@dokploy/server/utils/notifications/build-success";
import * as execProcess from "@dokploy/server/utils/process/execAsync";
import * as gitProvider from "@dokploy/server/utils/providers/git";
import { beforeEach, describe, expect, it, vi } from "vitest";
vi.mock("@dokploy/server/db", () => {
- const createChainableMock = () => {
+ const createChainableMock = (): any => {
const chain = {
set: vi.fn(() => chain),
where: vi.fn(() => chain),
- returning: vi.fn().mockResolvedValue([{}]),
- };
+ returning: vi.fn().mockResolvedValue([{}] as any),
+ } as any;
return chain;
};
From 067777f28efa7dca22f33a72cfb6722ec2707c75 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sat, 29 Nov 2025 00:55:14 -0600
Subject: [PATCH 13/74] feat: initialize Docker Swarm in CI workflow
- Added a step to initialize Docker Swarm and create an overlay network for testing jobs.
- This enhancement improves the CI environment setup for containerized testing.
---
.github/workflows/pull-request.yml | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml
index 7ea03fe0f..31dbc48fb 100644
--- a/.github/workflows/pull-request.yml
+++ b/.github/workflows/pull-request.yml
@@ -39,6 +39,13 @@ jobs:
if: matrix.job == 'test'
run: echo "$HOME/.local/bin" >> $GITHUB_PATH
+ - name: Initialize Docker Swarm
+ if: matrix.job == 'test'
+ run: |
+ docker swarm init
+ docker network create --driver overlay dokploy-network || true
+ echo "✅ Docker Swarm initialized"
+
- run: pnpm install --frozen-lockfile
- run: pnpm server:build
- run: pnpm ${{ matrix.job }}
From a72281c0185a9fa594966b7953cc2ba1858036fb Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sat, 29 Nov 2025 01:07:22 -0600
Subject: [PATCH 14/74] refactor: enhance StopGracePeriod handling in database
builders
- Updated the condition for StopGracePeriod in various database builder files to check for null and undefined values, improving code robustness and clarity.
---
packages/server/src/utils/builders/index.ts | 3 ++-
packages/server/src/utils/databases/mariadb.ts | 3 ++-
packages/server/src/utils/databases/mongo.ts | 3 ++-
packages/server/src/utils/databases/mysql.ts | 3 ++-
packages/server/src/utils/databases/postgres.ts | 3 ++-
packages/server/src/utils/databases/redis.ts | 3 ++-
6 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/packages/server/src/utils/builders/index.ts b/packages/server/src/utils/builders/index.ts
index 11912f6c5..a70e874c2 100644
--- a/packages/server/src/utils/builders/index.ts
+++ b/packages/server/src/utils/builders/index.ts
@@ -125,7 +125,8 @@ export const mechanizeDockerContainer = async (
Image: image,
Env: envVariables,
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
- ...(StopGracePeriod && { StopGracePeriod }),
+ ...(StopGracePeriod !== null &&
+ StopGracePeriod !== undefined && { StopGracePeriod }),
...(command
? {
Command: ["/bin/sh"],
diff --git a/packages/server/src/utils/databases/mariadb.ts b/packages/server/src/utils/databases/mariadb.ts
index 1db457018..852e174ef 100644
--- a/packages/server/src/utils/databases/mariadb.ts
+++ b/packages/server/src/utils/databases/mariadb.ts
@@ -73,7 +73,8 @@ export const buildMariadb = async (mariadb: MariadbNested) => {
Image: dockerImage,
Env: envVariables,
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
- ...(StopGracePeriod && { StopGracePeriod }),
+ ...(StopGracePeriod !== null &&
+ StopGracePeriod !== undefined && { StopGracePeriod }),
...(command
? {
Command: ["/bin/sh"],
diff --git a/packages/server/src/utils/databases/mongo.ts b/packages/server/src/utils/databases/mongo.ts
index 3b71f323b..af5dc8cbd 100644
--- a/packages/server/src/utils/databases/mongo.ts
+++ b/packages/server/src/utils/databases/mongo.ts
@@ -121,7 +121,8 @@ ${command ?? "wait $MONGOD_PID"}`;
Image: dockerImage,
Env: envVariables,
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
- ...(StopGracePeriod && { StopGracePeriod }),
+ ...(StopGracePeriod !== null &&
+ StopGracePeriod !== undefined && { StopGracePeriod }),
...(replicaSets
? {
Command: ["/bin/bash"],
diff --git a/packages/server/src/utils/databases/mysql.ts b/packages/server/src/utils/databases/mysql.ts
index 069803a7c..a1f75dd40 100644
--- a/packages/server/src/utils/databases/mysql.ts
+++ b/packages/server/src/utils/databases/mysql.ts
@@ -79,7 +79,8 @@ export const buildMysql = async (mysql: MysqlNested) => {
Image: dockerImage,
Env: envVariables,
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
- ...(StopGracePeriod && { StopGracePeriod }),
+ ...(StopGracePeriod !== null &&
+ StopGracePeriod !== undefined && { StopGracePeriod }),
...(command
? {
Command: ["/bin/sh"],
diff --git a/packages/server/src/utils/databases/postgres.ts b/packages/server/src/utils/databases/postgres.ts
index afcd49ca1..e15f8a641 100644
--- a/packages/server/src/utils/databases/postgres.ts
+++ b/packages/server/src/utils/databases/postgres.ts
@@ -72,7 +72,8 @@ export const buildPostgres = async (postgres: PostgresNested) => {
Image: dockerImage,
Env: envVariables,
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
- ...(StopGracePeriod && { StopGracePeriod }),
+ ...(StopGracePeriod !== null &&
+ StopGracePeriod !== undefined && { StopGracePeriod }),
...(command
? {
Command: ["/bin/sh"],
diff --git a/packages/server/src/utils/databases/redis.ts b/packages/server/src/utils/databases/redis.ts
index 7aa684565..2d9ae273d 100644
--- a/packages/server/src/utils/databases/redis.ts
+++ b/packages/server/src/utils/databases/redis.ts
@@ -70,7 +70,8 @@ export const buildRedis = async (redis: RedisNested) => {
Image: dockerImage,
Env: envVariables,
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
- ...(StopGracePeriod && { StopGracePeriod }),
+ ...(StopGracePeriod !== null &&
+ StopGracePeriod !== undefined && { StopGracePeriod }),
Command: ["/bin/sh"],
Args: [
"-c",
From 27b605f961033202fc8e03cd57804872062ddde6 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sat, 29 Nov 2025 01:16:14 -0600
Subject: [PATCH 15/74] refactor: update comments and improve clarity in
application real tests
- Translated comments from Spanish to English for better accessibility.
- Enhanced comment clarity to improve understanding of test behavior and expectations.
---
.../__test__/deploy/application.real.test.ts | 48 +++++++++----------
1 file changed, 24 insertions(+), 24 deletions(-)
diff --git a/apps/dokploy/__test__/deploy/application.real.test.ts b/apps/dokploy/__test__/deploy/application.real.test.ts
index 2fed049ac..43ff07836 100644
--- a/apps/dokploy/__test__/deploy/application.real.test.ts
+++ b/apps/dokploy/__test__/deploy/application.real.test.ts
@@ -6,9 +6,9 @@ import { execAsync } from "@dokploy/server/utils/process/execAsync";
import { format } from "date-fns";
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
-const REAL_TEST_TIMEOUT = 180000; // 3 minutos
+const REAL_TEST_TIMEOUT = 180000; // 3 minutes
-// Mock SOLO la base de datos y notificaciones
+// Mock ONLY database and notifications
vi.mock("@dokploy/server/db", () => {
const createChainableMock = (): any => {
const chain: any = {
@@ -67,11 +67,11 @@ vi.mock("@dokploy/server/services/rollbacks", () => ({
createRollback: vi.fn(),
}));
-// NO mockeamos:
-// - execAsync (queremos que se ejecute de verdad)
-// - cloneGitRepository (queremos que se ejecute de verdad)
-// - getBuildCommand (queremos que se ejecute de verdad)
-// - mechanizeDockerContainer (queremos que se ejecute de verdad)
+// NOT mocked (executed for real):
+// - execAsync
+// - cloneGitRepository
+// - getBuildCommand
+// - mechanizeDockerContainer (requires Docker Swarm)
import { db } from "@dokploy/server/db";
import * as adminService from "@dokploy/server/services/admin";
@@ -122,7 +122,7 @@ const createMockDeployment = async (appName: string) => {
const fileName = `${appName}-${formattedDateTime}.log`;
const logFilePath = path.join(LOGS_PATH, appName, fileName);
- // Crear el directorio de logs REALMENTE
+ // Actually create the log directory
await execAsync(`mkdir -p ${path.dirname(logFilePath)}`);
await execAsync(`echo "Initializing deployment" > ${logFilePath}`);
@@ -146,11 +146,11 @@ async function cleanupFiles(appName: string) {
try {
const { LOGS_PATH, APPLICATIONS_PATH } = paths(false);
- // Limpiar directorios de código clonado
+ // Clean cloned code directories
const appPath = path.join(APPLICATIONS_PATH, appName);
await execAsync(`rm -rf ${appPath} 2>/dev/null || true`);
- // Limpiar logs del appName - elimina el folder completo
+ // Clean logs for appName - removes entire folder
const logPath = path.join(LOGS_PATH, appName);
await execAsync(`rm -rf ${logPath} 2>/dev/null || true`);
@@ -199,10 +199,10 @@ describe(
});
afterEach(async () => {
- // SIEMPRE limpia, incluso si el test falló o pasó
+ // ALWAYS cleanup, even if test failed or passed
console.log(`\n🧹 Cleaning up test: ${currentAppName}`);
- // Limpiar el appName actual
+ // Clean current appName
try {
await cleanupDocker(currentAppName);
await cleanupFiles(currentAppName);
@@ -210,7 +210,7 @@ describe(
console.error("⚠️ Error cleaning current app:", error);
}
- // Limpiar TODOS los folders de test por si acaso
+ // Clean ALL test folders just in case
try {
const { LOGS_PATH, APPLICATIONS_PATH } = paths(false);
await execAsync(`rm -rf ${LOGS_PATH}/real-* 2>/dev/null || true`);
@@ -238,7 +238,7 @@ describe(
expect(result).toBe(true);
- // Verificar que la imagen Docker fue creada DE VERDAD
+ // Verify that Docker image was actually created
const { stdout: dockerImages } = await execAsync(
`docker images ${currentAppName} --format "{{.Repository}}"`,
);
@@ -246,7 +246,7 @@ describe(
expect(dockerImages.trim()).toBe(currentAppName);
console.log(`✅ Docker image created: ${currentAppName}`);
- // Verificar que el log existe y tiene contenido
+ // Verify log exists and has content
expect(existsSync(currentDeployment.logPath)).toBe(true);
const { stdout: logContent } = await execAsync(
`cat ${currentDeployment.logPath}`,
@@ -255,7 +255,7 @@ describe(
expect(logContent).toContain("nixpacks");
console.log(`✅ Build log created with ${logContent.length} chars`);
- // Verificar que las funciones de actualización fueron llamadas
+ // Verify update functions were called
expect(deploymentService.updateDeploymentStatus).toHaveBeenCalledWith(
"deployment-id",
"done",
@@ -337,13 +337,13 @@ describe(
}),
).rejects.toThrow();
- // Verificar que se llamó con estado de error
+ // Verify error status was called
expect(deploymentService.updateDeploymentStatus).toHaveBeenCalledWith(
"deployment-id",
"error",
);
- // Verificar que el log contiene el error
+ // Verify log contains error
const { stdout: logContent } = await execAsync(
`cat ${currentDeployment.logPath}`,
);
@@ -381,7 +381,7 @@ describe(
expect(result).toBe(true);
- // Verificar que el deployment completó exitosamente
+ // Verify deployment completed successfully
const { stdout: logContent } = await execAsync(
`cat ${currentDeployment.logPath}`,
);
@@ -389,7 +389,7 @@ describe(
expect(logContent.length).toBeGreaterThan(100);
console.log("✅ Submodules deployment completed");
- // Verificar imagen
+ // Verify image
const { stdout: dockerImages } = await execAsync(
`docker images ${currentAppName} --format "{{.Repository}}"`,
);
@@ -409,12 +409,12 @@ describe(
descriptionLog: "",
});
- // Verificar que se llamó updateDeployment con info del commit
+ // Verify updateDeployment was called with commit info
expect(deploymentService.updateDeployment).toHaveBeenCalled();
const updateCall = vi.mocked(deploymentService.updateDeployment).mock
.calls[0];
- // El commit info real debería tener título y hash
+ // Real commit info should have title and hash
expect(updateCall?.[1]).toHaveProperty("title");
expect(updateCall?.[1]).toHaveProperty("description");
expect(updateCall?.[1]?.description).toContain("Commit:");
@@ -456,7 +456,7 @@ describe(
expect(result).toBe(true);
- // Verificar el log
+ // Verify log
const { stdout: logContent } = await execAsync(
`cat ${currentDeployment.logPath}`,
);
@@ -464,7 +464,7 @@ describe(
expect(logContent).toContain(dockerfileAppName);
console.log("✅ Dockerfile build log verified");
- // Verificar imagen
+ // Verify image
const { stdout: dockerImages } = await execAsync(
`docker images ${currentAppName} --format "{{.Repository}}"`,
);
From 8647e7a6b72bf4d58235e815b627fb336493fb1d Mon Sep 17 00:00:00 2001
From: Joie
Date: Sat, 29 Nov 2025 18:19:13 +0800
Subject: [PATCH 16/74] fix: stabilize `TimeBadge` position
---
apps/dokploy/components/dashboard/projects/show.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/apps/dokploy/components/dashboard/projects/show.tsx b/apps/dokploy/components/dashboard/projects/show.tsx
index 5369a544e..e5411690e 100644
--- a/apps/dokploy/components/dashboard/projects/show.tsx
+++ b/apps/dokploy/components/dashboard/projects/show.tsx
@@ -138,7 +138,7 @@ export const ShowProjects = () => {
list={[{ name: "Projects", href: "/dashboard/projects" }]}
/>
{!isCloud && (
-
+
)}
From 28f7fb90c0dc1df64c25d122e99b75160fe48b64 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sat, 29 Nov 2025 20:55:04 -0600
Subject: [PATCH 17/74] feat: add informational alert for domain changes in
AddDomain component
- Introduced an info alert in the AddDomain component to remind users to redeploy their compose after making changes to domains, enhancing user awareness and experience.
---
.../dashboard/application/domains/handle-domain.tsx | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/apps/dokploy/components/dashboard/application/domains/handle-domain.tsx b/apps/dokploy/components/dashboard/application/domains/handle-domain.tsx
index 9d7a074f9..29b2b5eff 100644
--- a/apps/dokploy/components/dashboard/application/domains/handle-domain.tsx
+++ b/apps/dokploy/components/dashboard/application/domains/handle-domain.tsx
@@ -299,6 +299,13 @@ export const AddDomain = ({ id, type, domainId = "", children }: Props) => {
{isError && {error?.message} }
+ {type === "compose" && (
+
+ Whenever you make changes to domains, remember to redeploy your
+ compose to apply the changes.
+
+ )}
+
+
+
+ );
+};
diff --git a/apps/dokploy/components/dashboard/settings/servers/handle-servers.tsx b/apps/dokploy/components/dashboard/settings/servers/handle-servers.tsx
index cdbe8a95b..50d8029ca 100644
--- a/apps/dokploy/components/dashboard/settings/servers/handle-servers.tsx
+++ b/apps/dokploy/components/dashboard/settings/servers/handle-servers.tsx
@@ -52,6 +52,7 @@ const Schema = z.object({
sshKeyId: z.string().min(1, {
message: "SSH Key is required",
}),
+ serverType: z.enum(["deploy", "build"]).default("deploy"),
});
type Schema = z.infer;
@@ -89,6 +90,7 @@ export const HandleServers = ({ serverId }: Props) => {
port: 22,
username: "root",
sshKeyId: "",
+ serverType: "deploy",
},
resolver: zodResolver(Schema),
});
@@ -101,6 +103,7 @@ export const HandleServers = ({ serverId }: Props) => {
port: data?.port || 22,
username: data?.username || "root",
sshKeyId: data?.sshKeyId || "",
+ serverType: data?.serverType || "deploy",
});
}, [form, form.reset, form.formState.isSubmitSuccessful, data]);
@@ -116,6 +119,7 @@ export const HandleServers = ({ serverId }: Props) => {
port: data.port || 22,
username: data.username || "root",
sshKeyId: data.sshKeyId || "",
+ serverType: data.serverType || "deploy",
serverId: serverId || "",
})
.then(async (_data) => {
@@ -266,6 +270,44 @@ export const HandleServers = ({ serverId }: Props) => {
)}
/>
+ {
+ const serverTypeValue = form.watch("serverType");
+ return (
+
+ Server Type
+
+
+
+
+
+
+ Deploy Server
+ Build Server
+ Server Type
+
+
+
+
+ {serverTypeValue === "deploy" && (
+
+ Deploy servers are used to run your applications, databases, and services. They handle the deployment and execution of your projects.
+
+ )}
+ {serverTypeValue === "build" && (
+
+ Build servers are dedicated to building your applications. They handle the compilation and build process, offloading this work from your deployment servers. Build servers won't appear in deployment options.
+
+ )}
+
+ );
+ }}
+ />
{
const [activeLog, setActiveLog] = useState(null);
const { data: isCloud } = api.settings.isCloud.useQuery();
+ const isBuildServer = server?.serverType === "build";
const [isDrawerOpen, setIsDrawerOpen] = useState(false);
const [filteredLogs, setFilteredLogs] = useState([]);
const [isDeploying, setIsDeploying] = useState(false);
@@ -117,17 +118,26 @@ export const SetupServer = ({ serverId }: Props) => {
SSH Keys
Deployments
Validate
- Security
- {isCloud && (
- Monitoring
+
+ {!isBuildServer && (
+ <>
+ Security
+ {isCloud && (
+ Monitoring
+ )}
+ GPU Setup
+ >
)}
- GPU Setup
{
-
-
-
-
-
-
-
-
-
-
-
-
-
+ {!isBuildServer && (
+ <>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ )}
)}
diff --git a/apps/dokploy/components/dashboard/settings/servers/show-servers.tsx b/apps/dokploy/components/dashboard/settings/servers/show-servers.tsx
index 191aab9ce..2f8ac24e2 100644
--- a/apps/dokploy/components/dashboard/settings/servers/show-servers.tsx
+++ b/apps/dokploy/components/dashboard/settings/servers/show-servers.tsx
@@ -129,6 +129,9 @@ export const ShowServers = () => {
Status
)}
+
+ Type
+
IP Address
@@ -153,6 +156,8 @@ export const ShowServers = () => {
{data?.map((server) => {
const canDelete = server.totalSum === 0;
const isActive = server.serverStatus === "active";
+ const isBuildServer =
+ server.serverType === "build";
return (
@@ -171,6 +176,15 @@ export const ShowServers = () => {
)}
+
+
+ {server.serverType}
+
+
{server.ipAddress}
@@ -233,11 +247,12 @@ export const ShowServers = () => {
serverId={server.serverId}
/>
- {server.sshKeyId && (
-
- )}
+ {server.sshKeyId &&
+ !isBuildServer && (
+
+ )}
>
)}
@@ -286,41 +301,43 @@ export const ShowServers = () => {
- {isActive && server.sshKeyId && (
- <>
-
-
- Extra
-
+ {isActive &&
+ server.sshKeyId &&
+ !isBuildServer && (
+ <>
+
+
+ Extra
+
-
-
- {isCloud && (
-
- )}
+
+ {isCloud && (
+
+ )}
-
-
+
+
-
- >
- )}
+
+ >
+ )}
diff --git a/apps/dokploy/drizzle/0122_cold_ben_parker.sql b/apps/dokploy/drizzle/0122_cold_ben_parker.sql
new file mode 100644
index 000000000..21072234d
--- /dev/null
+++ b/apps/dokploy/drizzle/0122_cold_ben_parker.sql
@@ -0,0 +1,2 @@
+CREATE TYPE "public"."serverType" AS ENUM('deploy', 'build');--> statement-breakpoint
+ALTER TABLE "server" ADD COLUMN "serverType" "serverType" DEFAULT 'deploy' NOT NULL;
\ No newline at end of file
diff --git a/apps/dokploy/drizzle/0123_careless_odin.sql b/apps/dokploy/drizzle/0123_careless_odin.sql
new file mode 100644
index 000000000..581ba2f50
--- /dev/null
+++ b/apps/dokploy/drizzle/0123_careless_odin.sql
@@ -0,0 +1,4 @@
+ALTER TABLE "application" ADD COLUMN "buildServerId" text;--> statement-breakpoint
+ALTER TABLE "application" ADD COLUMN "buildRegistryId" text;--> statement-breakpoint
+ALTER TABLE "application" ADD CONSTRAINT "application_buildServerId_server_serverId_fk" FOREIGN KEY ("buildServerId") REFERENCES "public"."server"("serverId") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
+ALTER TABLE "application" ADD CONSTRAINT "application_buildRegistryId_registry_registryId_fk" FOREIGN KEY ("buildRegistryId") REFERENCES "public"."registry"("registryId") ON DELETE set null ON UPDATE no action;
\ No newline at end of file
diff --git a/apps/dokploy/drizzle/meta/0122_snapshot.json b/apps/dokploy/drizzle/meta/0122_snapshot.json
new file mode 100644
index 000000000..415776c26
--- /dev/null
+++ b/apps/dokploy/drizzle/meta/0122_snapshot.json
@@ -0,0 +1,6738 @@
+{
+ "id": "2059301d-45f0-4a16-8481-6a5e54f678f5",
+ "prevId": "6d1361fc-3a46-4016-b6db-42351c20393c",
+ "version": "7",
+ "dialect": "postgresql",
+ "tables": {
+ "public.account": {
+ "name": "account",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "account_id": {
+ "name": "account_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "provider_id": {
+ "name": "provider_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "id_token": {
+ "name": "id_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "access_token_expires_at": {
+ "name": "access_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token_expires_at": {
+ "name": "refresh_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scope": {
+ "name": "scope",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "is2FAEnabled": {
+ "name": "is2FAEnabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "resetPasswordToken": {
+ "name": "resetPasswordToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "resetPasswordExpiresAt": {
+ "name": "resetPasswordExpiresAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "confirmationToken": {
+ "name": "confirmationToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "confirmationExpiresAt": {
+ "name": "confirmationExpiresAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "account_user_id_user_id_fk": {
+ "name": "account_user_id_user_id_fk",
+ "tableFrom": "account",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.apikey": {
+ "name": "apikey",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "start": {
+ "name": "start",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "prefix": {
+ "name": "prefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "key": {
+ "name": "key",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "refill_interval": {
+ "name": "refill_interval",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refill_amount": {
+ "name": "refill_amount",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "last_refill_at": {
+ "name": "last_refill_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rate_limit_enabled": {
+ "name": "rate_limit_enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rate_limit_time_window": {
+ "name": "rate_limit_time_window",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rate_limit_max": {
+ "name": "rate_limit_max",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "request_count": {
+ "name": "request_count",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "remaining": {
+ "name": "remaining",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "last_request": {
+ "name": "last_request",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "permissions": {
+ "name": "permissions",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "apikey_user_id_user_id_fk": {
+ "name": "apikey_user_id_user_id_fk",
+ "tableFrom": "apikey",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.invitation": {
+ "name": "invitation",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "status": {
+ "name": "status",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "inviter_id": {
+ "name": "inviter_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "team_id": {
+ "name": "team_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "invitation_organization_id_organization_id_fk": {
+ "name": "invitation_organization_id_organization_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "invitation_inviter_id_user_id_fk": {
+ "name": "invitation_inviter_id_user_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "user",
+ "columnsFrom": [
+ "inviter_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.member": {
+ "name": "member",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "team_id": {
+ "name": "team_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "is_default": {
+ "name": "is_default",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canCreateProjects": {
+ "name": "canCreateProjects",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToSSHKeys": {
+ "name": "canAccessToSSHKeys",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canCreateServices": {
+ "name": "canCreateServices",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canDeleteProjects": {
+ "name": "canDeleteProjects",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canDeleteServices": {
+ "name": "canDeleteServices",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToDocker": {
+ "name": "canAccessToDocker",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToAPI": {
+ "name": "canAccessToAPI",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToGitProviders": {
+ "name": "canAccessToGitProviders",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToTraefikFiles": {
+ "name": "canAccessToTraefikFiles",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canDeleteEnvironments": {
+ "name": "canDeleteEnvironments",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canCreateEnvironments": {
+ "name": "canCreateEnvironments",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "accesedProjects": {
+ "name": "accesedProjects",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "ARRAY[]::text[]"
+ },
+ "accessedEnvironments": {
+ "name": "accessedEnvironments",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "ARRAY[]::text[]"
+ },
+ "accesedServices": {
+ "name": "accesedServices",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "ARRAY[]::text[]"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "member_organization_id_organization_id_fk": {
+ "name": "member_organization_id_organization_id_fk",
+ "tableFrom": "member",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "member_user_id_user_id_fk": {
+ "name": "member_user_id_user_id_fk",
+ "tableFrom": "member",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.organization": {
+ "name": "organization",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "slug": {
+ "name": "slug",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "logo": {
+ "name": "logo",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "owner_id": {
+ "name": "owner_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "organization_owner_id_user_id_fk": {
+ "name": "organization_owner_id_user_id_fk",
+ "tableFrom": "organization",
+ "tableTo": "user",
+ "columnsFrom": [
+ "owner_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "organization_slug_unique": {
+ "name": "organization_slug_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "slug"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.two_factor": {
+ "name": "two_factor",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "secret": {
+ "name": "secret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "backup_codes": {
+ "name": "backup_codes",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "two_factor_user_id_user_id_fk": {
+ "name": "two_factor_user_id_user_id_fk",
+ "tableFrom": "two_factor",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.verification": {
+ "name": "verification",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "identifier": {
+ "name": "identifier",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "value": {
+ "name": "value",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ai": {
+ "name": "ai",
+ "schema": "",
+ "columns": {
+ "aiId": {
+ "name": "aiId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "apiUrl": {
+ "name": "apiUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "apiKey": {
+ "name": "apiKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "model": {
+ "name": "model",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "isEnabled": {
+ "name": "isEnabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "ai_organizationId_organization_id_fk": {
+ "name": "ai_organizationId_organization_id_fk",
+ "tableFrom": "ai",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.application": {
+ "name": "application",
+ "schema": "",
+ "columns": {
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewEnv": {
+ "name": "previewEnv",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "watchPaths": {
+ "name": "watchPaths",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewBuildArgs": {
+ "name": "previewBuildArgs",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewBuildSecrets": {
+ "name": "previewBuildSecrets",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewLabels": {
+ "name": "previewLabels",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewWildcard": {
+ "name": "previewWildcard",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewPort": {
+ "name": "previewPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false,
+ "default": 3000
+ },
+ "previewHttps": {
+ "name": "previewHttps",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "previewPath": {
+ "name": "previewPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "certificateType": {
+ "name": "certificateType",
+ "type": "certificateType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'none'"
+ },
+ "previewCustomCertResolver": {
+ "name": "previewCustomCertResolver",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewLimit": {
+ "name": "previewLimit",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false,
+ "default": 3
+ },
+ "isPreviewDeploymentsActive": {
+ "name": "isPreviewDeploymentsActive",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "previewRequireCollaboratorPermissions": {
+ "name": "previewRequireCollaboratorPermissions",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": true
+ },
+ "rollbackActive": {
+ "name": "rollbackActive",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "buildArgs": {
+ "name": "buildArgs",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildSecrets": {
+ "name": "buildSecrets",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "title": {
+ "name": "title",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "subtitle": {
+ "name": "subtitle",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refreshToken": {
+ "name": "refreshToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "sourceType": {
+ "name": "sourceType",
+ "type": "sourceType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'github'"
+ },
+ "cleanCache": {
+ "name": "cleanCache",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "repository": {
+ "name": "repository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "owner": {
+ "name": "owner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "branch": {
+ "name": "branch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildPath": {
+ "name": "buildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "triggerType": {
+ "name": "triggerType",
+ "type": "triggerType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'push'"
+ },
+ "autoDeploy": {
+ "name": "autoDeploy",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabProjectId": {
+ "name": "gitlabProjectId",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabRepository": {
+ "name": "gitlabRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabOwner": {
+ "name": "gitlabOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabBranch": {
+ "name": "gitlabBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabBuildPath": {
+ "name": "gitlabBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "gitlabPathNamespace": {
+ "name": "gitlabPathNamespace",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaRepository": {
+ "name": "giteaRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaOwner": {
+ "name": "giteaOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaBranch": {
+ "name": "giteaBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaBuildPath": {
+ "name": "giteaBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "bitbucketRepository": {
+ "name": "bitbucketRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketOwner": {
+ "name": "bitbucketOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketBranch": {
+ "name": "bitbucketBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketBuildPath": {
+ "name": "bitbucketBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "registryUrl": {
+ "name": "registryUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitUrl": {
+ "name": "customGitUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitBranch": {
+ "name": "customGitBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitBuildPath": {
+ "name": "customGitBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitSSHKeyId": {
+ "name": "customGitSSHKeyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enableSubmodules": {
+ "name": "enableSubmodules",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "dockerfile": {
+ "name": "dockerfile",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerContextPath": {
+ "name": "dockerContextPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerBuildStage": {
+ "name": "dockerBuildStage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dropBuildPath": {
+ "name": "dropBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "buildType": {
+ "name": "buildType",
+ "type": "buildType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'nixpacks'"
+ },
+ "railpackVersion": {
+ "name": "railpackVersion",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'0.2.2'"
+ },
+ "herokuVersion": {
+ "name": "herokuVersion",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'24'"
+ },
+ "publishDirectory": {
+ "name": "publishDirectory",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "isStaticSpa": {
+ "name": "isStaticSpa",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "registryId": {
+ "name": "registryId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "githubId": {
+ "name": "githubId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabId": {
+ "name": "gitlabId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaId": {
+ "name": "giteaId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketId": {
+ "name": "bitbucketId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "application_customGitSSHKeyId_ssh-key_sshKeyId_fk": {
+ "name": "application_customGitSSHKeyId_ssh-key_sshKeyId_fk",
+ "tableFrom": "application",
+ "tableTo": "ssh-key",
+ "columnsFrom": [
+ "customGitSSHKeyId"
+ ],
+ "columnsTo": [
+ "sshKeyId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_registryId_registry_registryId_fk": {
+ "name": "application_registryId_registry_registryId_fk",
+ "tableFrom": "application",
+ "tableTo": "registry",
+ "columnsFrom": [
+ "registryId"
+ ],
+ "columnsTo": [
+ "registryId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_environmentId_environment_environmentId_fk": {
+ "name": "application_environmentId_environment_environmentId_fk",
+ "tableFrom": "application",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "application_githubId_github_githubId_fk": {
+ "name": "application_githubId_github_githubId_fk",
+ "tableFrom": "application",
+ "tableTo": "github",
+ "columnsFrom": [
+ "githubId"
+ ],
+ "columnsTo": [
+ "githubId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_gitlabId_gitlab_gitlabId_fk": {
+ "name": "application_gitlabId_gitlab_gitlabId_fk",
+ "tableFrom": "application",
+ "tableTo": "gitlab",
+ "columnsFrom": [
+ "gitlabId"
+ ],
+ "columnsTo": [
+ "gitlabId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_giteaId_gitea_giteaId_fk": {
+ "name": "application_giteaId_gitea_giteaId_fk",
+ "tableFrom": "application",
+ "tableTo": "gitea",
+ "columnsFrom": [
+ "giteaId"
+ ],
+ "columnsTo": [
+ "giteaId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_bitbucketId_bitbucket_bitbucketId_fk": {
+ "name": "application_bitbucketId_bitbucket_bitbucketId_fk",
+ "tableFrom": "application",
+ "tableTo": "bitbucket",
+ "columnsFrom": [
+ "bitbucketId"
+ ],
+ "columnsTo": [
+ "bitbucketId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_serverId_server_serverId_fk": {
+ "name": "application_serverId_server_serverId_fk",
+ "tableFrom": "application",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "application_appName_unique": {
+ "name": "application_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.backup": {
+ "name": "backup",
+ "schema": "",
+ "columns": {
+ "backupId": {
+ "name": "backupId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "schedule": {
+ "name": "schedule",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "database": {
+ "name": "database",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "prefix": {
+ "name": "prefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "destinationId": {
+ "name": "destinationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "keepLatestCount": {
+ "name": "keepLatestCount",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "backupType": {
+ "name": "backupType",
+ "type": "backupType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'database'"
+ },
+ "databaseType": {
+ "name": "databaseType",
+ "type": "databaseType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "userId": {
+ "name": "userId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "backup_destinationId_destination_destinationId_fk": {
+ "name": "backup_destinationId_destination_destinationId_fk",
+ "tableFrom": "backup",
+ "tableTo": "destination",
+ "columnsFrom": [
+ "destinationId"
+ ],
+ "columnsTo": [
+ "destinationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_composeId_compose_composeId_fk": {
+ "name": "backup_composeId_compose_composeId_fk",
+ "tableFrom": "backup",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_postgresId_postgres_postgresId_fk": {
+ "name": "backup_postgresId_postgres_postgresId_fk",
+ "tableFrom": "backup",
+ "tableTo": "postgres",
+ "columnsFrom": [
+ "postgresId"
+ ],
+ "columnsTo": [
+ "postgresId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_mariadbId_mariadb_mariadbId_fk": {
+ "name": "backup_mariadbId_mariadb_mariadbId_fk",
+ "tableFrom": "backup",
+ "tableTo": "mariadb",
+ "columnsFrom": [
+ "mariadbId"
+ ],
+ "columnsTo": [
+ "mariadbId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_mysqlId_mysql_mysqlId_fk": {
+ "name": "backup_mysqlId_mysql_mysqlId_fk",
+ "tableFrom": "backup",
+ "tableTo": "mysql",
+ "columnsFrom": [
+ "mysqlId"
+ ],
+ "columnsTo": [
+ "mysqlId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_mongoId_mongo_mongoId_fk": {
+ "name": "backup_mongoId_mongo_mongoId_fk",
+ "tableFrom": "backup",
+ "tableTo": "mongo",
+ "columnsFrom": [
+ "mongoId"
+ ],
+ "columnsTo": [
+ "mongoId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_userId_user_id_fk": {
+ "name": "backup_userId_user_id_fk",
+ "tableFrom": "backup",
+ "tableTo": "user",
+ "columnsFrom": [
+ "userId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "backup_appName_unique": {
+ "name": "backup_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.bitbucket": {
+ "name": "bitbucket",
+ "schema": "",
+ "columns": {
+ "bitbucketId": {
+ "name": "bitbucketId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "bitbucketUsername": {
+ "name": "bitbucketUsername",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketEmail": {
+ "name": "bitbucketEmail",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "appPassword": {
+ "name": "appPassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "apiToken": {
+ "name": "apiToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketWorkspaceName": {
+ "name": "bitbucketWorkspaceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "bitbucket_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "bitbucket_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "bitbucket",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.certificate": {
+ "name": "certificate",
+ "schema": "",
+ "columns": {
+ "certificateId": {
+ "name": "certificateId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "certificateData": {
+ "name": "certificateData",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "privateKey": {
+ "name": "privateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "certificatePath": {
+ "name": "certificatePath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "autoRenew": {
+ "name": "autoRenew",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "certificate_organizationId_organization_id_fk": {
+ "name": "certificate_organizationId_organization_id_fk",
+ "tableFrom": "certificate",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "certificate_serverId_server_serverId_fk": {
+ "name": "certificate_serverId_server_serverId_fk",
+ "tableFrom": "certificate",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "certificate_certificatePath_unique": {
+ "name": "certificate_certificatePath_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "certificatePath"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.compose": {
+ "name": "compose",
+ "schema": "",
+ "columns": {
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeFile": {
+ "name": "composeFile",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "refreshToken": {
+ "name": "refreshToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "sourceType": {
+ "name": "sourceType",
+ "type": "sourceTypeCompose",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'github'"
+ },
+ "composeType": {
+ "name": "composeType",
+ "type": "composeType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'docker-compose'"
+ },
+ "repository": {
+ "name": "repository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "owner": {
+ "name": "owner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "branch": {
+ "name": "branch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "autoDeploy": {
+ "name": "autoDeploy",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabProjectId": {
+ "name": "gitlabProjectId",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabRepository": {
+ "name": "gitlabRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabOwner": {
+ "name": "gitlabOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabBranch": {
+ "name": "gitlabBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabPathNamespace": {
+ "name": "gitlabPathNamespace",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketRepository": {
+ "name": "bitbucketRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketOwner": {
+ "name": "bitbucketOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketBranch": {
+ "name": "bitbucketBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaRepository": {
+ "name": "giteaRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaOwner": {
+ "name": "giteaOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaBranch": {
+ "name": "giteaBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitUrl": {
+ "name": "customGitUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitBranch": {
+ "name": "customGitBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitSSHKeyId": {
+ "name": "customGitSSHKeyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "enableSubmodules": {
+ "name": "enableSubmodules",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "composePath": {
+ "name": "composePath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'./docker-compose.yml'"
+ },
+ "suffix": {
+ "name": "suffix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "randomize": {
+ "name": "randomize",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "isolatedDeployment": {
+ "name": "isolatedDeployment",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "isolatedDeploymentsVolume": {
+ "name": "isolatedDeploymentsVolume",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "triggerType": {
+ "name": "triggerType",
+ "type": "triggerType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'push'"
+ },
+ "composeStatus": {
+ "name": "composeStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "watchPaths": {
+ "name": "watchPaths",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubId": {
+ "name": "githubId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabId": {
+ "name": "gitlabId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketId": {
+ "name": "bitbucketId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaId": {
+ "name": "giteaId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk": {
+ "name": "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk",
+ "tableFrom": "compose",
+ "tableTo": "ssh-key",
+ "columnsFrom": [
+ "customGitSSHKeyId"
+ ],
+ "columnsTo": [
+ "sshKeyId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_environmentId_environment_environmentId_fk": {
+ "name": "compose_environmentId_environment_environmentId_fk",
+ "tableFrom": "compose",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "compose_githubId_github_githubId_fk": {
+ "name": "compose_githubId_github_githubId_fk",
+ "tableFrom": "compose",
+ "tableTo": "github",
+ "columnsFrom": [
+ "githubId"
+ ],
+ "columnsTo": [
+ "githubId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_gitlabId_gitlab_gitlabId_fk": {
+ "name": "compose_gitlabId_gitlab_gitlabId_fk",
+ "tableFrom": "compose",
+ "tableTo": "gitlab",
+ "columnsFrom": [
+ "gitlabId"
+ ],
+ "columnsTo": [
+ "gitlabId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_bitbucketId_bitbucket_bitbucketId_fk": {
+ "name": "compose_bitbucketId_bitbucket_bitbucketId_fk",
+ "tableFrom": "compose",
+ "tableTo": "bitbucket",
+ "columnsFrom": [
+ "bitbucketId"
+ ],
+ "columnsTo": [
+ "bitbucketId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_giteaId_gitea_giteaId_fk": {
+ "name": "compose_giteaId_gitea_giteaId_fk",
+ "tableFrom": "compose",
+ "tableTo": "gitea",
+ "columnsFrom": [
+ "giteaId"
+ ],
+ "columnsTo": [
+ "giteaId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_serverId_server_serverId_fk": {
+ "name": "compose_serverId_server_serverId_fk",
+ "tableFrom": "compose",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.deployment": {
+ "name": "deployment",
+ "schema": "",
+ "columns": {
+ "deploymentId": {
+ "name": "deploymentId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "title": {
+ "name": "title",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "status": {
+ "name": "status",
+ "type": "deploymentStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'running'"
+ },
+ "logPath": {
+ "name": "logPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pid": {
+ "name": "pid",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "isPreviewDeployment": {
+ "name": "isPreviewDeployment",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "previewDeploymentId": {
+ "name": "previewDeploymentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "startedAt": {
+ "name": "startedAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "finishedAt": {
+ "name": "finishedAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "errorMessage": {
+ "name": "errorMessage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scheduleId": {
+ "name": "scheduleId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "backupId": {
+ "name": "backupId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackId": {
+ "name": "rollbackId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "volumeBackupId": {
+ "name": "volumeBackupId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "deployment_applicationId_application_applicationId_fk": {
+ "name": "deployment_applicationId_application_applicationId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_composeId_compose_composeId_fk": {
+ "name": "deployment_composeId_compose_composeId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_serverId_server_serverId_fk": {
+ "name": "deployment_serverId_server_serverId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_previewDeploymentId_preview_deployments_previewDeploymentId_fk": {
+ "name": "deployment_previewDeploymentId_preview_deployments_previewDeploymentId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "preview_deployments",
+ "columnsFrom": [
+ "previewDeploymentId"
+ ],
+ "columnsTo": [
+ "previewDeploymentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_scheduleId_schedule_scheduleId_fk": {
+ "name": "deployment_scheduleId_schedule_scheduleId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "schedule",
+ "columnsFrom": [
+ "scheduleId"
+ ],
+ "columnsTo": [
+ "scheduleId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_backupId_backup_backupId_fk": {
+ "name": "deployment_backupId_backup_backupId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "backup",
+ "columnsFrom": [
+ "backupId"
+ ],
+ "columnsTo": [
+ "backupId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_rollbackId_rollback_rollbackId_fk": {
+ "name": "deployment_rollbackId_rollback_rollbackId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "rollback",
+ "columnsFrom": [
+ "rollbackId"
+ ],
+ "columnsTo": [
+ "rollbackId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_volumeBackupId_volume_backup_volumeBackupId_fk": {
+ "name": "deployment_volumeBackupId_volume_backup_volumeBackupId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "volume_backup",
+ "columnsFrom": [
+ "volumeBackupId"
+ ],
+ "columnsTo": [
+ "volumeBackupId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.destination": {
+ "name": "destination",
+ "schema": "",
+ "columns": {
+ "destinationId": {
+ "name": "destinationId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "provider": {
+ "name": "provider",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "accessKey": {
+ "name": "accessKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "secretAccessKey": {
+ "name": "secretAccessKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "bucket": {
+ "name": "bucket",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "region": {
+ "name": "region",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "endpoint": {
+ "name": "endpoint",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "destination_organizationId_organization_id_fk": {
+ "name": "destination_organizationId_organization_id_fk",
+ "tableFrom": "destination",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.domain": {
+ "name": "domain",
+ "schema": "",
+ "columns": {
+ "domainId": {
+ "name": "domainId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "host": {
+ "name": "host",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "https": {
+ "name": "https",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "port": {
+ "name": "port",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false,
+ "default": 3000
+ },
+ "path": {
+ "name": "path",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "domainType": {
+ "name": "domainType",
+ "type": "domainType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'application'"
+ },
+ "uniqueConfigKey": {
+ "name": "uniqueConfigKey",
+ "type": "serial",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customCertResolver": {
+ "name": "customCertResolver",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewDeploymentId": {
+ "name": "previewDeploymentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "certificateType": {
+ "name": "certificateType",
+ "type": "certificateType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'none'"
+ },
+ "internalPath": {
+ "name": "internalPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "stripPath": {
+ "name": "stripPath",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "domain_composeId_compose_composeId_fk": {
+ "name": "domain_composeId_compose_composeId_fk",
+ "tableFrom": "domain",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "domain_applicationId_application_applicationId_fk": {
+ "name": "domain_applicationId_application_applicationId_fk",
+ "tableFrom": "domain",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "domain_previewDeploymentId_preview_deployments_previewDeploymentId_fk": {
+ "name": "domain_previewDeploymentId_preview_deployments_previewDeploymentId_fk",
+ "tableFrom": "domain",
+ "tableTo": "preview_deployments",
+ "columnsFrom": [
+ "previewDeploymentId"
+ ],
+ "columnsTo": [
+ "previewDeploymentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.environment": {
+ "name": "environment",
+ "schema": "",
+ "columns": {
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "projectId": {
+ "name": "projectId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "environment_projectId_project_projectId_fk": {
+ "name": "environment_projectId_project_projectId_fk",
+ "tableFrom": "environment",
+ "tableTo": "project",
+ "columnsFrom": [
+ "projectId"
+ ],
+ "columnsTo": [
+ "projectId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.git_provider": {
+ "name": "git_provider",
+ "schema": "",
+ "columns": {
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "providerType": {
+ "name": "providerType",
+ "type": "gitProviderType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'github'"
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "userId": {
+ "name": "userId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "git_provider_organizationId_organization_id_fk": {
+ "name": "git_provider_organizationId_organization_id_fk",
+ "tableFrom": "git_provider",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "git_provider_userId_user_id_fk": {
+ "name": "git_provider_userId_user_id_fk",
+ "tableFrom": "git_provider",
+ "tableTo": "user",
+ "columnsFrom": [
+ "userId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.gitea": {
+ "name": "gitea",
+ "schema": "",
+ "columns": {
+ "giteaId": {
+ "name": "giteaId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "giteaUrl": {
+ "name": "giteaUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'https://gitea.com'"
+ },
+ "redirect_uri": {
+ "name": "redirect_uri",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "client_id": {
+ "name": "client_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "client_secret": {
+ "name": "client_secret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scopes": {
+ "name": "scopes",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'repo,repo:status,read:user,read:org'"
+ },
+ "last_authenticated_at": {
+ "name": "last_authenticated_at",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "gitea_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "gitea_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "gitea",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.github": {
+ "name": "github",
+ "schema": "",
+ "columns": {
+ "githubId": {
+ "name": "githubId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "githubAppName": {
+ "name": "githubAppName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubAppId": {
+ "name": "githubAppId",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubClientId": {
+ "name": "githubClientId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubClientSecret": {
+ "name": "githubClientSecret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubInstallationId": {
+ "name": "githubInstallationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubPrivateKey": {
+ "name": "githubPrivateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubWebhookSecret": {
+ "name": "githubWebhookSecret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "github_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "github_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "github",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.gitlab": {
+ "name": "gitlab",
+ "schema": "",
+ "columns": {
+ "gitlabId": {
+ "name": "gitlabId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "gitlabUrl": {
+ "name": "gitlabUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'https://gitlab.com'"
+ },
+ "application_id": {
+ "name": "application_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "redirect_uri": {
+ "name": "redirect_uri",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "secret": {
+ "name": "secret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "group_name": {
+ "name": "group_name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "gitlab_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "gitlab_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "gitlab",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mariadb": {
+ "name": "mariadb",
+ "schema": "",
+ "columns": {
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "databaseName": {
+ "name": "databaseName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "rootPassword": {
+ "name": "rootPassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mariadb_environmentId_environment_environmentId_fk": {
+ "name": "mariadb_environmentId_environment_environmentId_fk",
+ "tableFrom": "mariadb",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mariadb_serverId_server_serverId_fk": {
+ "name": "mariadb_serverId_server_serverId_fk",
+ "tableFrom": "mariadb",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "mariadb_appName_unique": {
+ "name": "mariadb_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mongo": {
+ "name": "mongo",
+ "schema": "",
+ "columns": {
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicaSets": {
+ "name": "replicaSets",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mongo_environmentId_environment_environmentId_fk": {
+ "name": "mongo_environmentId_environment_environmentId_fk",
+ "tableFrom": "mongo",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mongo_serverId_server_serverId_fk": {
+ "name": "mongo_serverId_server_serverId_fk",
+ "tableFrom": "mongo",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "mongo_appName_unique": {
+ "name": "mongo_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mount": {
+ "name": "mount",
+ "schema": "",
+ "columns": {
+ "mountId": {
+ "name": "mountId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "type": {
+ "name": "type",
+ "type": "mountType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "hostPath": {
+ "name": "hostPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "volumeName": {
+ "name": "volumeName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "filePath": {
+ "name": "filePath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "content": {
+ "name": "content",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serviceType": {
+ "name": "serviceType",
+ "type": "serviceType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'application'"
+ },
+ "mountPath": {
+ "name": "mountPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "redisId": {
+ "name": "redisId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mount_applicationId_application_applicationId_fk": {
+ "name": "mount_applicationId_application_applicationId_fk",
+ "tableFrom": "mount",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_postgresId_postgres_postgresId_fk": {
+ "name": "mount_postgresId_postgres_postgresId_fk",
+ "tableFrom": "mount",
+ "tableTo": "postgres",
+ "columnsFrom": [
+ "postgresId"
+ ],
+ "columnsTo": [
+ "postgresId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_mariadbId_mariadb_mariadbId_fk": {
+ "name": "mount_mariadbId_mariadb_mariadbId_fk",
+ "tableFrom": "mount",
+ "tableTo": "mariadb",
+ "columnsFrom": [
+ "mariadbId"
+ ],
+ "columnsTo": [
+ "mariadbId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_mongoId_mongo_mongoId_fk": {
+ "name": "mount_mongoId_mongo_mongoId_fk",
+ "tableFrom": "mount",
+ "tableTo": "mongo",
+ "columnsFrom": [
+ "mongoId"
+ ],
+ "columnsTo": [
+ "mongoId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_mysqlId_mysql_mysqlId_fk": {
+ "name": "mount_mysqlId_mysql_mysqlId_fk",
+ "tableFrom": "mount",
+ "tableTo": "mysql",
+ "columnsFrom": [
+ "mysqlId"
+ ],
+ "columnsTo": [
+ "mysqlId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_redisId_redis_redisId_fk": {
+ "name": "mount_redisId_redis_redisId_fk",
+ "tableFrom": "mount",
+ "tableTo": "redis",
+ "columnsFrom": [
+ "redisId"
+ ],
+ "columnsTo": [
+ "redisId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_composeId_compose_composeId_fk": {
+ "name": "mount_composeId_compose_composeId_fk",
+ "tableFrom": "mount",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mysql": {
+ "name": "mysql",
+ "schema": "",
+ "columns": {
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "databaseName": {
+ "name": "databaseName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "rootPassword": {
+ "name": "rootPassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mysql_environmentId_environment_environmentId_fk": {
+ "name": "mysql_environmentId_environment_environmentId_fk",
+ "tableFrom": "mysql",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mysql_serverId_server_serverId_fk": {
+ "name": "mysql_serverId_server_serverId_fk",
+ "tableFrom": "mysql",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "mysql_appName_unique": {
+ "name": "mysql_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.discord": {
+ "name": "discord",
+ "schema": "",
+ "columns": {
+ "discordId": {
+ "name": "discordId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "webhookUrl": {
+ "name": "webhookUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "decoration": {
+ "name": "decoration",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.email": {
+ "name": "email",
+ "schema": "",
+ "columns": {
+ "emailId": {
+ "name": "emailId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "smtpServer": {
+ "name": "smtpServer",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "smtpPort": {
+ "name": "smtpPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "fromAddress": {
+ "name": "fromAddress",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "toAddress": {
+ "name": "toAddress",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.gotify": {
+ "name": "gotify",
+ "schema": "",
+ "columns": {
+ "gotifyId": {
+ "name": "gotifyId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "serverUrl": {
+ "name": "serverUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appToken": {
+ "name": "appToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "priority": {
+ "name": "priority",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 5
+ },
+ "decoration": {
+ "name": "decoration",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.lark": {
+ "name": "lark",
+ "schema": "",
+ "columns": {
+ "larkId": {
+ "name": "larkId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "webhookUrl": {
+ "name": "webhookUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.notification": {
+ "name": "notification",
+ "schema": "",
+ "columns": {
+ "notificationId": {
+ "name": "notificationId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appDeploy": {
+ "name": "appDeploy",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "appBuildError": {
+ "name": "appBuildError",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "databaseBackup": {
+ "name": "databaseBackup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "dokployRestart": {
+ "name": "dokployRestart",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "dockerCleanup": {
+ "name": "dockerCleanup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "serverThreshold": {
+ "name": "serverThreshold",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "notificationType": {
+ "name": "notificationType",
+ "type": "notificationType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "slackId": {
+ "name": "slackId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "telegramId": {
+ "name": "telegramId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "discordId": {
+ "name": "discordId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "emailId": {
+ "name": "emailId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gotifyId": {
+ "name": "gotifyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ntfyId": {
+ "name": "ntfyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "larkId": {
+ "name": "larkId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "notification_slackId_slack_slackId_fk": {
+ "name": "notification_slackId_slack_slackId_fk",
+ "tableFrom": "notification",
+ "tableTo": "slack",
+ "columnsFrom": [
+ "slackId"
+ ],
+ "columnsTo": [
+ "slackId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_telegramId_telegram_telegramId_fk": {
+ "name": "notification_telegramId_telegram_telegramId_fk",
+ "tableFrom": "notification",
+ "tableTo": "telegram",
+ "columnsFrom": [
+ "telegramId"
+ ],
+ "columnsTo": [
+ "telegramId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_discordId_discord_discordId_fk": {
+ "name": "notification_discordId_discord_discordId_fk",
+ "tableFrom": "notification",
+ "tableTo": "discord",
+ "columnsFrom": [
+ "discordId"
+ ],
+ "columnsTo": [
+ "discordId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_emailId_email_emailId_fk": {
+ "name": "notification_emailId_email_emailId_fk",
+ "tableFrom": "notification",
+ "tableTo": "email",
+ "columnsFrom": [
+ "emailId"
+ ],
+ "columnsTo": [
+ "emailId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_gotifyId_gotify_gotifyId_fk": {
+ "name": "notification_gotifyId_gotify_gotifyId_fk",
+ "tableFrom": "notification",
+ "tableTo": "gotify",
+ "columnsFrom": [
+ "gotifyId"
+ ],
+ "columnsTo": [
+ "gotifyId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_ntfyId_ntfy_ntfyId_fk": {
+ "name": "notification_ntfyId_ntfy_ntfyId_fk",
+ "tableFrom": "notification",
+ "tableTo": "ntfy",
+ "columnsFrom": [
+ "ntfyId"
+ ],
+ "columnsTo": [
+ "ntfyId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_larkId_lark_larkId_fk": {
+ "name": "notification_larkId_lark_larkId_fk",
+ "tableFrom": "notification",
+ "tableTo": "lark",
+ "columnsFrom": [
+ "larkId"
+ ],
+ "columnsTo": [
+ "larkId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_organizationId_organization_id_fk": {
+ "name": "notification_organizationId_organization_id_fk",
+ "tableFrom": "notification",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ntfy": {
+ "name": "ntfy",
+ "schema": "",
+ "columns": {
+ "ntfyId": {
+ "name": "ntfyId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "serverUrl": {
+ "name": "serverUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "topic": {
+ "name": "topic",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "accessToken": {
+ "name": "accessToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "priority": {
+ "name": "priority",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 3
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.slack": {
+ "name": "slack",
+ "schema": "",
+ "columns": {
+ "slackId": {
+ "name": "slackId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "webhookUrl": {
+ "name": "webhookUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "channel": {
+ "name": "channel",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.telegram": {
+ "name": "telegram",
+ "schema": "",
+ "columns": {
+ "telegramId": {
+ "name": "telegramId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "botToken": {
+ "name": "botToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "chatId": {
+ "name": "chatId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "messageThreadId": {
+ "name": "messageThreadId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.port": {
+ "name": "port",
+ "schema": "",
+ "columns": {
+ "portId": {
+ "name": "portId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "publishedPort": {
+ "name": "publishedPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "publishMode": {
+ "name": "publishMode",
+ "type": "publishModeType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'host'"
+ },
+ "targetPort": {
+ "name": "targetPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "protocol": {
+ "name": "protocol",
+ "type": "protocolType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "port_applicationId_application_applicationId_fk": {
+ "name": "port_applicationId_application_applicationId_fk",
+ "tableFrom": "port",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.postgres": {
+ "name": "postgres",
+ "schema": "",
+ "columns": {
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseName": {
+ "name": "databaseName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "postgres_environmentId_environment_environmentId_fk": {
+ "name": "postgres_environmentId_environment_environmentId_fk",
+ "tableFrom": "postgres",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "postgres_serverId_server_serverId_fk": {
+ "name": "postgres_serverId_server_serverId_fk",
+ "tableFrom": "postgres",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "postgres_appName_unique": {
+ "name": "postgres_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.preview_deployments": {
+ "name": "preview_deployments",
+ "schema": "",
+ "columns": {
+ "previewDeploymentId": {
+ "name": "previewDeploymentId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "branch": {
+ "name": "branch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestId": {
+ "name": "pullRequestId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestNumber": {
+ "name": "pullRequestNumber",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestURL": {
+ "name": "pullRequestURL",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestTitle": {
+ "name": "pullRequestTitle",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestCommentId": {
+ "name": "pullRequestCommentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "previewStatus": {
+ "name": "previewStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "domainId": {
+ "name": "domainId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expiresAt": {
+ "name": "expiresAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "preview_deployments_applicationId_application_applicationId_fk": {
+ "name": "preview_deployments_applicationId_application_applicationId_fk",
+ "tableFrom": "preview_deployments",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "preview_deployments_domainId_domain_domainId_fk": {
+ "name": "preview_deployments_domainId_domain_domainId_fk",
+ "tableFrom": "preview_deployments",
+ "tableTo": "domain",
+ "columnsFrom": [
+ "domainId"
+ ],
+ "columnsTo": [
+ "domainId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "preview_deployments_appName_unique": {
+ "name": "preview_deployments_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.project": {
+ "name": "project",
+ "schema": "",
+ "columns": {
+ "projectId": {
+ "name": "projectId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "project_organizationId_organization_id_fk": {
+ "name": "project_organizationId_organization_id_fk",
+ "tableFrom": "project",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.redirect": {
+ "name": "redirect",
+ "schema": "",
+ "columns": {
+ "redirectId": {
+ "name": "redirectId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "regex": {
+ "name": "regex",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "replacement": {
+ "name": "replacement",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "permanent": {
+ "name": "permanent",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "uniqueConfigKey": {
+ "name": "uniqueConfigKey",
+ "type": "serial",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "redirect_applicationId_application_applicationId_fk": {
+ "name": "redirect_applicationId_application_applicationId_fk",
+ "tableFrom": "redirect",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.redis": {
+ "name": "redis",
+ "schema": "",
+ "columns": {
+ "redisId": {
+ "name": "redisId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "redis_environmentId_environment_environmentId_fk": {
+ "name": "redis_environmentId_environment_environmentId_fk",
+ "tableFrom": "redis",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "redis_serverId_server_serverId_fk": {
+ "name": "redis_serverId_server_serverId_fk",
+ "tableFrom": "redis",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "redis_appName_unique": {
+ "name": "redis_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.registry": {
+ "name": "registry",
+ "schema": "",
+ "columns": {
+ "registryId": {
+ "name": "registryId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "registryName": {
+ "name": "registryName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "imagePrefix": {
+ "name": "imagePrefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "registryUrl": {
+ "name": "registryUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "selfHosted": {
+ "name": "selfHosted",
+ "type": "RegistryType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'cloud'"
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "registry_organizationId_organization_id_fk": {
+ "name": "registry_organizationId_organization_id_fk",
+ "tableFrom": "registry",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.rollback": {
+ "name": "rollback",
+ "schema": "",
+ "columns": {
+ "rollbackId": {
+ "name": "rollbackId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "deploymentId": {
+ "name": "deploymentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "version": {
+ "name": "version",
+ "type": "serial",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "image": {
+ "name": "image",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "fullContext": {
+ "name": "fullContext",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "rollback_deploymentId_deployment_deploymentId_fk": {
+ "name": "rollback_deploymentId_deployment_deploymentId_fk",
+ "tableFrom": "rollback",
+ "tableTo": "deployment",
+ "columnsFrom": [
+ "deploymentId"
+ ],
+ "columnsTo": [
+ "deploymentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.schedule": {
+ "name": "schedule",
+ "schema": "",
+ "columns": {
+ "scheduleId": {
+ "name": "scheduleId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "cronExpression": {
+ "name": "cronExpression",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "shellType": {
+ "name": "shellType",
+ "type": "shellType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'bash'"
+ },
+ "scheduleType": {
+ "name": "scheduleType",
+ "type": "scheduleType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'application'"
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "script": {
+ "name": "script",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "userId": {
+ "name": "userId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "schedule_applicationId_application_applicationId_fk": {
+ "name": "schedule_applicationId_application_applicationId_fk",
+ "tableFrom": "schedule",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "schedule_composeId_compose_composeId_fk": {
+ "name": "schedule_composeId_compose_composeId_fk",
+ "tableFrom": "schedule",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "schedule_serverId_server_serverId_fk": {
+ "name": "schedule_serverId_server_serverId_fk",
+ "tableFrom": "schedule",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "schedule_userId_user_id_fk": {
+ "name": "schedule_userId_user_id_fk",
+ "tableFrom": "schedule",
+ "tableTo": "user",
+ "columnsFrom": [
+ "userId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.security": {
+ "name": "security",
+ "schema": "",
+ "columns": {
+ "securityId": {
+ "name": "securityId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "security_applicationId_application_applicationId_fk": {
+ "name": "security_applicationId_application_applicationId_fk",
+ "tableFrom": "security",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "security_username_applicationId_unique": {
+ "name": "security_username_applicationId_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "username",
+ "applicationId"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.server": {
+ "name": "server",
+ "schema": "",
+ "columns": {
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ipAddress": {
+ "name": "ipAddress",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "port": {
+ "name": "port",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'root'"
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "enableDockerCleanup": {
+ "name": "enableDockerCleanup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverStatus": {
+ "name": "serverStatus",
+ "type": "serverStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'active'"
+ },
+ "serverType": {
+ "name": "serverType",
+ "type": "serverType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'deploy'"
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "sshKeyId": {
+ "name": "sshKeyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "metricsConfig": {
+ "name": "metricsConfig",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'{\"server\":{\"type\":\"Remote\",\"refreshRate\":60,\"port\":4500,\"token\":\"\",\"urlCallback\":\"\",\"cronJob\":\"\",\"retentionDays\":2,\"thresholds\":{\"cpu\":0,\"memory\":0}},\"containers\":{\"refreshRate\":60,\"services\":{\"include\":[],\"exclude\":[]}}}'::jsonb"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "server_organizationId_organization_id_fk": {
+ "name": "server_organizationId_organization_id_fk",
+ "tableFrom": "server",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "server_sshKeyId_ssh-key_sshKeyId_fk": {
+ "name": "server_sshKeyId_ssh-key_sshKeyId_fk",
+ "tableFrom": "server",
+ "tableTo": "ssh-key",
+ "columnsFrom": [
+ "sshKeyId"
+ ],
+ "columnsTo": [
+ "sshKeyId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.session_temp": {
+ "name": "session_temp",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "token": {
+ "name": "token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "ip_address": {
+ "name": "ip_address",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_agent": {
+ "name": "user_agent",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "impersonated_by": {
+ "name": "impersonated_by",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "active_organization_id": {
+ "name": "active_organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "session_temp_user_id_user_id_fk": {
+ "name": "session_temp_user_id_user_id_fk",
+ "tableFrom": "session_temp",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "session_temp_token_unique": {
+ "name": "session_temp_token_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "token"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ssh-key": {
+ "name": "ssh-key",
+ "schema": "",
+ "columns": {
+ "sshKeyId": {
+ "name": "sshKeyId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "privateKey": {
+ "name": "privateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "publicKey": {
+ "name": "publicKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "lastUsedAt": {
+ "name": "lastUsedAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "ssh-key_organizationId_organization_id_fk": {
+ "name": "ssh-key_organizationId_organization_id_fk",
+ "tableFrom": "ssh-key",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.user": {
+ "name": "user",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "isRegistered": {
+ "name": "isRegistered",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "expirationDate": {
+ "name": "expirationDate",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "two_factor_enabled": {
+ "name": "two_factor_enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email_verified": {
+ "name": "email_verified",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "image": {
+ "name": "image",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "banned": {
+ "name": "banned",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ban_reason": {
+ "name": "ban_reason",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ban_expires": {
+ "name": "ban_expires",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverIp": {
+ "name": "serverIp",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "certificateType": {
+ "name": "certificateType",
+ "type": "certificateType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'none'"
+ },
+ "https": {
+ "name": "https",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "host": {
+ "name": "host",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "letsEncryptEmail": {
+ "name": "letsEncryptEmail",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "sshPrivateKey": {
+ "name": "sshPrivateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enableDockerCleanup": {
+ "name": "enableDockerCleanup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "logCleanupCron": {
+ "name": "logCleanupCron",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'0 0 * * *'"
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'user'"
+ },
+ "enablePaidFeatures": {
+ "name": "enablePaidFeatures",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "allowImpersonation": {
+ "name": "allowImpersonation",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "metricsConfig": {
+ "name": "metricsConfig",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'{\"server\":{\"type\":\"Dokploy\",\"refreshRate\":60,\"port\":4500,\"token\":\"\",\"retentionDays\":2,\"cronJob\":\"\",\"urlCallback\":\"\",\"thresholds\":{\"cpu\":0,\"memory\":0}},\"containers\":{\"refreshRate\":60,\"services\":{\"include\":[],\"exclude\":[]}}}'::jsonb"
+ },
+ "cleanupCacheApplications": {
+ "name": "cleanupCacheApplications",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "cleanupCacheOnPreviews": {
+ "name": "cleanupCacheOnPreviews",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "cleanupCacheOnCompose": {
+ "name": "cleanupCacheOnCompose",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "stripeCustomerId": {
+ "name": "stripeCustomerId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stripeSubscriptionId": {
+ "name": "stripeSubscriptionId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serversQuantity": {
+ "name": "serversQuantity",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 0
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "user_email_unique": {
+ "name": "user_email_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "email"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.volume_backup": {
+ "name": "volume_backup",
+ "schema": "",
+ "columns": {
+ "volumeBackupId": {
+ "name": "volumeBackupId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "volumeName": {
+ "name": "volumeName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "prefix": {
+ "name": "prefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceType": {
+ "name": "serviceType",
+ "type": "serviceType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'application'"
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "turnOff": {
+ "name": "turnOff",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "cronExpression": {
+ "name": "cronExpression",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "keepLatestCount": {
+ "name": "keepLatestCount",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "redisId": {
+ "name": "redisId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "destinationId": {
+ "name": "destinationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "volume_backup_applicationId_application_applicationId_fk": {
+ "name": "volume_backup_applicationId_application_applicationId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_postgresId_postgres_postgresId_fk": {
+ "name": "volume_backup_postgresId_postgres_postgresId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "postgres",
+ "columnsFrom": [
+ "postgresId"
+ ],
+ "columnsTo": [
+ "postgresId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_mariadbId_mariadb_mariadbId_fk": {
+ "name": "volume_backup_mariadbId_mariadb_mariadbId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "mariadb",
+ "columnsFrom": [
+ "mariadbId"
+ ],
+ "columnsTo": [
+ "mariadbId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_mongoId_mongo_mongoId_fk": {
+ "name": "volume_backup_mongoId_mongo_mongoId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "mongo",
+ "columnsFrom": [
+ "mongoId"
+ ],
+ "columnsTo": [
+ "mongoId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_mysqlId_mysql_mysqlId_fk": {
+ "name": "volume_backup_mysqlId_mysql_mysqlId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "mysql",
+ "columnsFrom": [
+ "mysqlId"
+ ],
+ "columnsTo": [
+ "mysqlId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_redisId_redis_redisId_fk": {
+ "name": "volume_backup_redisId_redis_redisId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "redis",
+ "columnsFrom": [
+ "redisId"
+ ],
+ "columnsTo": [
+ "redisId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_composeId_compose_composeId_fk": {
+ "name": "volume_backup_composeId_compose_composeId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_destinationId_destination_destinationId_fk": {
+ "name": "volume_backup_destinationId_destination_destinationId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "destination",
+ "columnsFrom": [
+ "destinationId"
+ ],
+ "columnsTo": [
+ "destinationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ }
+ },
+ "enums": {
+ "public.buildType": {
+ "name": "buildType",
+ "schema": "public",
+ "values": [
+ "dockerfile",
+ "heroku_buildpacks",
+ "paketo_buildpacks",
+ "nixpacks",
+ "static",
+ "railpack"
+ ]
+ },
+ "public.sourceType": {
+ "name": "sourceType",
+ "schema": "public",
+ "values": [
+ "docker",
+ "git",
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "drop"
+ ]
+ },
+ "public.backupType": {
+ "name": "backupType",
+ "schema": "public",
+ "values": [
+ "database",
+ "compose"
+ ]
+ },
+ "public.databaseType": {
+ "name": "databaseType",
+ "schema": "public",
+ "values": [
+ "postgres",
+ "mariadb",
+ "mysql",
+ "mongo",
+ "web-server"
+ ]
+ },
+ "public.composeType": {
+ "name": "composeType",
+ "schema": "public",
+ "values": [
+ "docker-compose",
+ "stack"
+ ]
+ },
+ "public.sourceTypeCompose": {
+ "name": "sourceTypeCompose",
+ "schema": "public",
+ "values": [
+ "git",
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "raw"
+ ]
+ },
+ "public.deploymentStatus": {
+ "name": "deploymentStatus",
+ "schema": "public",
+ "values": [
+ "running",
+ "done",
+ "error",
+ "cancelled"
+ ]
+ },
+ "public.domainType": {
+ "name": "domainType",
+ "schema": "public",
+ "values": [
+ "compose",
+ "application",
+ "preview"
+ ]
+ },
+ "public.gitProviderType": {
+ "name": "gitProviderType",
+ "schema": "public",
+ "values": [
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea"
+ ]
+ },
+ "public.mountType": {
+ "name": "mountType",
+ "schema": "public",
+ "values": [
+ "bind",
+ "volume",
+ "file"
+ ]
+ },
+ "public.serviceType": {
+ "name": "serviceType",
+ "schema": "public",
+ "values": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ]
+ },
+ "public.notificationType": {
+ "name": "notificationType",
+ "schema": "public",
+ "values": [
+ "slack",
+ "telegram",
+ "discord",
+ "email",
+ "gotify",
+ "ntfy",
+ "lark"
+ ]
+ },
+ "public.protocolType": {
+ "name": "protocolType",
+ "schema": "public",
+ "values": [
+ "tcp",
+ "udp"
+ ]
+ },
+ "public.publishModeType": {
+ "name": "publishModeType",
+ "schema": "public",
+ "values": [
+ "ingress",
+ "host"
+ ]
+ },
+ "public.RegistryType": {
+ "name": "RegistryType",
+ "schema": "public",
+ "values": [
+ "selfHosted",
+ "cloud"
+ ]
+ },
+ "public.scheduleType": {
+ "name": "scheduleType",
+ "schema": "public",
+ "values": [
+ "application",
+ "compose",
+ "server",
+ "dokploy-server"
+ ]
+ },
+ "public.shellType": {
+ "name": "shellType",
+ "schema": "public",
+ "values": [
+ "bash",
+ "sh"
+ ]
+ },
+ "public.serverStatus": {
+ "name": "serverStatus",
+ "schema": "public",
+ "values": [
+ "active",
+ "inactive"
+ ]
+ },
+ "public.serverType": {
+ "name": "serverType",
+ "schema": "public",
+ "values": [
+ "deploy",
+ "build"
+ ]
+ },
+ "public.applicationStatus": {
+ "name": "applicationStatus",
+ "schema": "public",
+ "values": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "public.certificateType": {
+ "name": "certificateType",
+ "schema": "public",
+ "values": [
+ "letsencrypt",
+ "none",
+ "custom"
+ ]
+ },
+ "public.triggerType": {
+ "name": "triggerType",
+ "schema": "public",
+ "values": [
+ "push",
+ "tag"
+ ]
+ }
+ },
+ "schemas": {},
+ "sequences": {},
+ "roles": {},
+ "policies": {},
+ "views": {},
+ "_meta": {
+ "columns": {},
+ "schemas": {},
+ "tables": {}
+ }
+}
\ No newline at end of file
diff --git a/apps/dokploy/drizzle/meta/0123_snapshot.json b/apps/dokploy/drizzle/meta/0123_snapshot.json
new file mode 100644
index 000000000..5f1dc48a6
--- /dev/null
+++ b/apps/dokploy/drizzle/meta/0123_snapshot.json
@@ -0,0 +1,6776 @@
+{
+ "id": "47a5c430-f9e8-4238-9951-d5dc27a20ca3",
+ "prevId": "2059301d-45f0-4a16-8481-6a5e54f678f5",
+ "version": "7",
+ "dialect": "postgresql",
+ "tables": {
+ "public.account": {
+ "name": "account",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "account_id": {
+ "name": "account_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "provider_id": {
+ "name": "provider_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "id_token": {
+ "name": "id_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "access_token_expires_at": {
+ "name": "access_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token_expires_at": {
+ "name": "refresh_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scope": {
+ "name": "scope",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "is2FAEnabled": {
+ "name": "is2FAEnabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "resetPasswordToken": {
+ "name": "resetPasswordToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "resetPasswordExpiresAt": {
+ "name": "resetPasswordExpiresAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "confirmationToken": {
+ "name": "confirmationToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "confirmationExpiresAt": {
+ "name": "confirmationExpiresAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "account_user_id_user_id_fk": {
+ "name": "account_user_id_user_id_fk",
+ "tableFrom": "account",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.apikey": {
+ "name": "apikey",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "start": {
+ "name": "start",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "prefix": {
+ "name": "prefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "key": {
+ "name": "key",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "refill_interval": {
+ "name": "refill_interval",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refill_amount": {
+ "name": "refill_amount",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "last_refill_at": {
+ "name": "last_refill_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rate_limit_enabled": {
+ "name": "rate_limit_enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rate_limit_time_window": {
+ "name": "rate_limit_time_window",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rate_limit_max": {
+ "name": "rate_limit_max",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "request_count": {
+ "name": "request_count",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "remaining": {
+ "name": "remaining",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "last_request": {
+ "name": "last_request",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "permissions": {
+ "name": "permissions",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "apikey_user_id_user_id_fk": {
+ "name": "apikey_user_id_user_id_fk",
+ "tableFrom": "apikey",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.invitation": {
+ "name": "invitation",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "status": {
+ "name": "status",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "inviter_id": {
+ "name": "inviter_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "team_id": {
+ "name": "team_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "invitation_organization_id_organization_id_fk": {
+ "name": "invitation_organization_id_organization_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "invitation_inviter_id_user_id_fk": {
+ "name": "invitation_inviter_id_user_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "user",
+ "columnsFrom": [
+ "inviter_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.member": {
+ "name": "member",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "team_id": {
+ "name": "team_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "is_default": {
+ "name": "is_default",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canCreateProjects": {
+ "name": "canCreateProjects",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToSSHKeys": {
+ "name": "canAccessToSSHKeys",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canCreateServices": {
+ "name": "canCreateServices",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canDeleteProjects": {
+ "name": "canDeleteProjects",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canDeleteServices": {
+ "name": "canDeleteServices",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToDocker": {
+ "name": "canAccessToDocker",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToAPI": {
+ "name": "canAccessToAPI",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToGitProviders": {
+ "name": "canAccessToGitProviders",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToTraefikFiles": {
+ "name": "canAccessToTraefikFiles",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canDeleteEnvironments": {
+ "name": "canDeleteEnvironments",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canCreateEnvironments": {
+ "name": "canCreateEnvironments",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "accesedProjects": {
+ "name": "accesedProjects",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "ARRAY[]::text[]"
+ },
+ "accessedEnvironments": {
+ "name": "accessedEnvironments",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "ARRAY[]::text[]"
+ },
+ "accesedServices": {
+ "name": "accesedServices",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "ARRAY[]::text[]"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "member_organization_id_organization_id_fk": {
+ "name": "member_organization_id_organization_id_fk",
+ "tableFrom": "member",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "member_user_id_user_id_fk": {
+ "name": "member_user_id_user_id_fk",
+ "tableFrom": "member",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.organization": {
+ "name": "organization",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "slug": {
+ "name": "slug",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "logo": {
+ "name": "logo",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "owner_id": {
+ "name": "owner_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "organization_owner_id_user_id_fk": {
+ "name": "organization_owner_id_user_id_fk",
+ "tableFrom": "organization",
+ "tableTo": "user",
+ "columnsFrom": [
+ "owner_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "organization_slug_unique": {
+ "name": "organization_slug_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "slug"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.two_factor": {
+ "name": "two_factor",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "secret": {
+ "name": "secret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "backup_codes": {
+ "name": "backup_codes",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "two_factor_user_id_user_id_fk": {
+ "name": "two_factor_user_id_user_id_fk",
+ "tableFrom": "two_factor",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.verification": {
+ "name": "verification",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "identifier": {
+ "name": "identifier",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "value": {
+ "name": "value",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ai": {
+ "name": "ai",
+ "schema": "",
+ "columns": {
+ "aiId": {
+ "name": "aiId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "apiUrl": {
+ "name": "apiUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "apiKey": {
+ "name": "apiKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "model": {
+ "name": "model",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "isEnabled": {
+ "name": "isEnabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "ai_organizationId_organization_id_fk": {
+ "name": "ai_organizationId_organization_id_fk",
+ "tableFrom": "ai",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.application": {
+ "name": "application",
+ "schema": "",
+ "columns": {
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewEnv": {
+ "name": "previewEnv",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "watchPaths": {
+ "name": "watchPaths",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewBuildArgs": {
+ "name": "previewBuildArgs",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewBuildSecrets": {
+ "name": "previewBuildSecrets",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewLabels": {
+ "name": "previewLabels",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewWildcard": {
+ "name": "previewWildcard",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewPort": {
+ "name": "previewPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false,
+ "default": 3000
+ },
+ "previewHttps": {
+ "name": "previewHttps",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "previewPath": {
+ "name": "previewPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "certificateType": {
+ "name": "certificateType",
+ "type": "certificateType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'none'"
+ },
+ "previewCustomCertResolver": {
+ "name": "previewCustomCertResolver",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewLimit": {
+ "name": "previewLimit",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false,
+ "default": 3
+ },
+ "isPreviewDeploymentsActive": {
+ "name": "isPreviewDeploymentsActive",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "previewRequireCollaboratorPermissions": {
+ "name": "previewRequireCollaboratorPermissions",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": true
+ },
+ "rollbackActive": {
+ "name": "rollbackActive",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "buildArgs": {
+ "name": "buildArgs",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildSecrets": {
+ "name": "buildSecrets",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "title": {
+ "name": "title",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "subtitle": {
+ "name": "subtitle",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refreshToken": {
+ "name": "refreshToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "sourceType": {
+ "name": "sourceType",
+ "type": "sourceType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'github'"
+ },
+ "cleanCache": {
+ "name": "cleanCache",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "repository": {
+ "name": "repository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "owner": {
+ "name": "owner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "branch": {
+ "name": "branch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildPath": {
+ "name": "buildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "triggerType": {
+ "name": "triggerType",
+ "type": "triggerType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'push'"
+ },
+ "autoDeploy": {
+ "name": "autoDeploy",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabProjectId": {
+ "name": "gitlabProjectId",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabRepository": {
+ "name": "gitlabRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabOwner": {
+ "name": "gitlabOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabBranch": {
+ "name": "gitlabBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabBuildPath": {
+ "name": "gitlabBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "gitlabPathNamespace": {
+ "name": "gitlabPathNamespace",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaRepository": {
+ "name": "giteaRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaOwner": {
+ "name": "giteaOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaBranch": {
+ "name": "giteaBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaBuildPath": {
+ "name": "giteaBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "bitbucketRepository": {
+ "name": "bitbucketRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketOwner": {
+ "name": "bitbucketOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketBranch": {
+ "name": "bitbucketBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketBuildPath": {
+ "name": "bitbucketBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "registryUrl": {
+ "name": "registryUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitUrl": {
+ "name": "customGitUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitBranch": {
+ "name": "customGitBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitBuildPath": {
+ "name": "customGitBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitSSHKeyId": {
+ "name": "customGitSSHKeyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enableSubmodules": {
+ "name": "enableSubmodules",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "dockerfile": {
+ "name": "dockerfile",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerContextPath": {
+ "name": "dockerContextPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerBuildStage": {
+ "name": "dockerBuildStage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dropBuildPath": {
+ "name": "dropBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "buildType": {
+ "name": "buildType",
+ "type": "buildType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'nixpacks'"
+ },
+ "railpackVersion": {
+ "name": "railpackVersion",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'0.2.2'"
+ },
+ "herokuVersion": {
+ "name": "herokuVersion",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'24'"
+ },
+ "publishDirectory": {
+ "name": "publishDirectory",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "isStaticSpa": {
+ "name": "isStaticSpa",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "registryId": {
+ "name": "registryId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "githubId": {
+ "name": "githubId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabId": {
+ "name": "gitlabId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaId": {
+ "name": "giteaId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketId": {
+ "name": "bitbucketId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildServerId": {
+ "name": "buildServerId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildRegistryId": {
+ "name": "buildRegistryId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "application_customGitSSHKeyId_ssh-key_sshKeyId_fk": {
+ "name": "application_customGitSSHKeyId_ssh-key_sshKeyId_fk",
+ "tableFrom": "application",
+ "tableTo": "ssh-key",
+ "columnsFrom": [
+ "customGitSSHKeyId"
+ ],
+ "columnsTo": [
+ "sshKeyId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_registryId_registry_registryId_fk": {
+ "name": "application_registryId_registry_registryId_fk",
+ "tableFrom": "application",
+ "tableTo": "registry",
+ "columnsFrom": [
+ "registryId"
+ ],
+ "columnsTo": [
+ "registryId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_environmentId_environment_environmentId_fk": {
+ "name": "application_environmentId_environment_environmentId_fk",
+ "tableFrom": "application",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "application_githubId_github_githubId_fk": {
+ "name": "application_githubId_github_githubId_fk",
+ "tableFrom": "application",
+ "tableTo": "github",
+ "columnsFrom": [
+ "githubId"
+ ],
+ "columnsTo": [
+ "githubId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_gitlabId_gitlab_gitlabId_fk": {
+ "name": "application_gitlabId_gitlab_gitlabId_fk",
+ "tableFrom": "application",
+ "tableTo": "gitlab",
+ "columnsFrom": [
+ "gitlabId"
+ ],
+ "columnsTo": [
+ "gitlabId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_giteaId_gitea_giteaId_fk": {
+ "name": "application_giteaId_gitea_giteaId_fk",
+ "tableFrom": "application",
+ "tableTo": "gitea",
+ "columnsFrom": [
+ "giteaId"
+ ],
+ "columnsTo": [
+ "giteaId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_bitbucketId_bitbucket_bitbucketId_fk": {
+ "name": "application_bitbucketId_bitbucket_bitbucketId_fk",
+ "tableFrom": "application",
+ "tableTo": "bitbucket",
+ "columnsFrom": [
+ "bitbucketId"
+ ],
+ "columnsTo": [
+ "bitbucketId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_serverId_server_serverId_fk": {
+ "name": "application_serverId_server_serverId_fk",
+ "tableFrom": "application",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "application_buildServerId_server_serverId_fk": {
+ "name": "application_buildServerId_server_serverId_fk",
+ "tableFrom": "application",
+ "tableTo": "server",
+ "columnsFrom": [
+ "buildServerId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_buildRegistryId_registry_registryId_fk": {
+ "name": "application_buildRegistryId_registry_registryId_fk",
+ "tableFrom": "application",
+ "tableTo": "registry",
+ "columnsFrom": [
+ "buildRegistryId"
+ ],
+ "columnsTo": [
+ "registryId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "application_appName_unique": {
+ "name": "application_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.backup": {
+ "name": "backup",
+ "schema": "",
+ "columns": {
+ "backupId": {
+ "name": "backupId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "schedule": {
+ "name": "schedule",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "database": {
+ "name": "database",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "prefix": {
+ "name": "prefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "destinationId": {
+ "name": "destinationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "keepLatestCount": {
+ "name": "keepLatestCount",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "backupType": {
+ "name": "backupType",
+ "type": "backupType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'database'"
+ },
+ "databaseType": {
+ "name": "databaseType",
+ "type": "databaseType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "userId": {
+ "name": "userId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "backup_destinationId_destination_destinationId_fk": {
+ "name": "backup_destinationId_destination_destinationId_fk",
+ "tableFrom": "backup",
+ "tableTo": "destination",
+ "columnsFrom": [
+ "destinationId"
+ ],
+ "columnsTo": [
+ "destinationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_composeId_compose_composeId_fk": {
+ "name": "backup_composeId_compose_composeId_fk",
+ "tableFrom": "backup",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_postgresId_postgres_postgresId_fk": {
+ "name": "backup_postgresId_postgres_postgresId_fk",
+ "tableFrom": "backup",
+ "tableTo": "postgres",
+ "columnsFrom": [
+ "postgresId"
+ ],
+ "columnsTo": [
+ "postgresId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_mariadbId_mariadb_mariadbId_fk": {
+ "name": "backup_mariadbId_mariadb_mariadbId_fk",
+ "tableFrom": "backup",
+ "tableTo": "mariadb",
+ "columnsFrom": [
+ "mariadbId"
+ ],
+ "columnsTo": [
+ "mariadbId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_mysqlId_mysql_mysqlId_fk": {
+ "name": "backup_mysqlId_mysql_mysqlId_fk",
+ "tableFrom": "backup",
+ "tableTo": "mysql",
+ "columnsFrom": [
+ "mysqlId"
+ ],
+ "columnsTo": [
+ "mysqlId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_mongoId_mongo_mongoId_fk": {
+ "name": "backup_mongoId_mongo_mongoId_fk",
+ "tableFrom": "backup",
+ "tableTo": "mongo",
+ "columnsFrom": [
+ "mongoId"
+ ],
+ "columnsTo": [
+ "mongoId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_userId_user_id_fk": {
+ "name": "backup_userId_user_id_fk",
+ "tableFrom": "backup",
+ "tableTo": "user",
+ "columnsFrom": [
+ "userId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "backup_appName_unique": {
+ "name": "backup_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.bitbucket": {
+ "name": "bitbucket",
+ "schema": "",
+ "columns": {
+ "bitbucketId": {
+ "name": "bitbucketId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "bitbucketUsername": {
+ "name": "bitbucketUsername",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketEmail": {
+ "name": "bitbucketEmail",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "appPassword": {
+ "name": "appPassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "apiToken": {
+ "name": "apiToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketWorkspaceName": {
+ "name": "bitbucketWorkspaceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "bitbucket_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "bitbucket_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "bitbucket",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.certificate": {
+ "name": "certificate",
+ "schema": "",
+ "columns": {
+ "certificateId": {
+ "name": "certificateId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "certificateData": {
+ "name": "certificateData",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "privateKey": {
+ "name": "privateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "certificatePath": {
+ "name": "certificatePath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "autoRenew": {
+ "name": "autoRenew",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "certificate_organizationId_organization_id_fk": {
+ "name": "certificate_organizationId_organization_id_fk",
+ "tableFrom": "certificate",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "certificate_serverId_server_serverId_fk": {
+ "name": "certificate_serverId_server_serverId_fk",
+ "tableFrom": "certificate",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "certificate_certificatePath_unique": {
+ "name": "certificate_certificatePath_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "certificatePath"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.compose": {
+ "name": "compose",
+ "schema": "",
+ "columns": {
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeFile": {
+ "name": "composeFile",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "refreshToken": {
+ "name": "refreshToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "sourceType": {
+ "name": "sourceType",
+ "type": "sourceTypeCompose",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'github'"
+ },
+ "composeType": {
+ "name": "composeType",
+ "type": "composeType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'docker-compose'"
+ },
+ "repository": {
+ "name": "repository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "owner": {
+ "name": "owner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "branch": {
+ "name": "branch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "autoDeploy": {
+ "name": "autoDeploy",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabProjectId": {
+ "name": "gitlabProjectId",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabRepository": {
+ "name": "gitlabRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabOwner": {
+ "name": "gitlabOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabBranch": {
+ "name": "gitlabBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabPathNamespace": {
+ "name": "gitlabPathNamespace",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketRepository": {
+ "name": "bitbucketRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketOwner": {
+ "name": "bitbucketOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketBranch": {
+ "name": "bitbucketBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaRepository": {
+ "name": "giteaRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaOwner": {
+ "name": "giteaOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaBranch": {
+ "name": "giteaBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitUrl": {
+ "name": "customGitUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitBranch": {
+ "name": "customGitBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitSSHKeyId": {
+ "name": "customGitSSHKeyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "enableSubmodules": {
+ "name": "enableSubmodules",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "composePath": {
+ "name": "composePath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'./docker-compose.yml'"
+ },
+ "suffix": {
+ "name": "suffix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "randomize": {
+ "name": "randomize",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "isolatedDeployment": {
+ "name": "isolatedDeployment",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "isolatedDeploymentsVolume": {
+ "name": "isolatedDeploymentsVolume",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "triggerType": {
+ "name": "triggerType",
+ "type": "triggerType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'push'"
+ },
+ "composeStatus": {
+ "name": "composeStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "watchPaths": {
+ "name": "watchPaths",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubId": {
+ "name": "githubId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabId": {
+ "name": "gitlabId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketId": {
+ "name": "bitbucketId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaId": {
+ "name": "giteaId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk": {
+ "name": "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk",
+ "tableFrom": "compose",
+ "tableTo": "ssh-key",
+ "columnsFrom": [
+ "customGitSSHKeyId"
+ ],
+ "columnsTo": [
+ "sshKeyId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_environmentId_environment_environmentId_fk": {
+ "name": "compose_environmentId_environment_environmentId_fk",
+ "tableFrom": "compose",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "compose_githubId_github_githubId_fk": {
+ "name": "compose_githubId_github_githubId_fk",
+ "tableFrom": "compose",
+ "tableTo": "github",
+ "columnsFrom": [
+ "githubId"
+ ],
+ "columnsTo": [
+ "githubId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_gitlabId_gitlab_gitlabId_fk": {
+ "name": "compose_gitlabId_gitlab_gitlabId_fk",
+ "tableFrom": "compose",
+ "tableTo": "gitlab",
+ "columnsFrom": [
+ "gitlabId"
+ ],
+ "columnsTo": [
+ "gitlabId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_bitbucketId_bitbucket_bitbucketId_fk": {
+ "name": "compose_bitbucketId_bitbucket_bitbucketId_fk",
+ "tableFrom": "compose",
+ "tableTo": "bitbucket",
+ "columnsFrom": [
+ "bitbucketId"
+ ],
+ "columnsTo": [
+ "bitbucketId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_giteaId_gitea_giteaId_fk": {
+ "name": "compose_giteaId_gitea_giteaId_fk",
+ "tableFrom": "compose",
+ "tableTo": "gitea",
+ "columnsFrom": [
+ "giteaId"
+ ],
+ "columnsTo": [
+ "giteaId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_serverId_server_serverId_fk": {
+ "name": "compose_serverId_server_serverId_fk",
+ "tableFrom": "compose",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.deployment": {
+ "name": "deployment",
+ "schema": "",
+ "columns": {
+ "deploymentId": {
+ "name": "deploymentId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "title": {
+ "name": "title",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "status": {
+ "name": "status",
+ "type": "deploymentStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'running'"
+ },
+ "logPath": {
+ "name": "logPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pid": {
+ "name": "pid",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "isPreviewDeployment": {
+ "name": "isPreviewDeployment",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "previewDeploymentId": {
+ "name": "previewDeploymentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "startedAt": {
+ "name": "startedAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "finishedAt": {
+ "name": "finishedAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "errorMessage": {
+ "name": "errorMessage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scheduleId": {
+ "name": "scheduleId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "backupId": {
+ "name": "backupId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackId": {
+ "name": "rollbackId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "volumeBackupId": {
+ "name": "volumeBackupId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "deployment_applicationId_application_applicationId_fk": {
+ "name": "deployment_applicationId_application_applicationId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_composeId_compose_composeId_fk": {
+ "name": "deployment_composeId_compose_composeId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_serverId_server_serverId_fk": {
+ "name": "deployment_serverId_server_serverId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_previewDeploymentId_preview_deployments_previewDeploymentId_fk": {
+ "name": "deployment_previewDeploymentId_preview_deployments_previewDeploymentId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "preview_deployments",
+ "columnsFrom": [
+ "previewDeploymentId"
+ ],
+ "columnsTo": [
+ "previewDeploymentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_scheduleId_schedule_scheduleId_fk": {
+ "name": "deployment_scheduleId_schedule_scheduleId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "schedule",
+ "columnsFrom": [
+ "scheduleId"
+ ],
+ "columnsTo": [
+ "scheduleId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_backupId_backup_backupId_fk": {
+ "name": "deployment_backupId_backup_backupId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "backup",
+ "columnsFrom": [
+ "backupId"
+ ],
+ "columnsTo": [
+ "backupId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_rollbackId_rollback_rollbackId_fk": {
+ "name": "deployment_rollbackId_rollback_rollbackId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "rollback",
+ "columnsFrom": [
+ "rollbackId"
+ ],
+ "columnsTo": [
+ "rollbackId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_volumeBackupId_volume_backup_volumeBackupId_fk": {
+ "name": "deployment_volumeBackupId_volume_backup_volumeBackupId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "volume_backup",
+ "columnsFrom": [
+ "volumeBackupId"
+ ],
+ "columnsTo": [
+ "volumeBackupId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.destination": {
+ "name": "destination",
+ "schema": "",
+ "columns": {
+ "destinationId": {
+ "name": "destinationId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "provider": {
+ "name": "provider",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "accessKey": {
+ "name": "accessKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "secretAccessKey": {
+ "name": "secretAccessKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "bucket": {
+ "name": "bucket",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "region": {
+ "name": "region",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "endpoint": {
+ "name": "endpoint",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "destination_organizationId_organization_id_fk": {
+ "name": "destination_organizationId_organization_id_fk",
+ "tableFrom": "destination",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.domain": {
+ "name": "domain",
+ "schema": "",
+ "columns": {
+ "domainId": {
+ "name": "domainId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "host": {
+ "name": "host",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "https": {
+ "name": "https",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "port": {
+ "name": "port",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false,
+ "default": 3000
+ },
+ "path": {
+ "name": "path",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "domainType": {
+ "name": "domainType",
+ "type": "domainType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'application'"
+ },
+ "uniqueConfigKey": {
+ "name": "uniqueConfigKey",
+ "type": "serial",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customCertResolver": {
+ "name": "customCertResolver",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewDeploymentId": {
+ "name": "previewDeploymentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "certificateType": {
+ "name": "certificateType",
+ "type": "certificateType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'none'"
+ },
+ "internalPath": {
+ "name": "internalPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "stripPath": {
+ "name": "stripPath",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "domain_composeId_compose_composeId_fk": {
+ "name": "domain_composeId_compose_composeId_fk",
+ "tableFrom": "domain",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "domain_applicationId_application_applicationId_fk": {
+ "name": "domain_applicationId_application_applicationId_fk",
+ "tableFrom": "domain",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "domain_previewDeploymentId_preview_deployments_previewDeploymentId_fk": {
+ "name": "domain_previewDeploymentId_preview_deployments_previewDeploymentId_fk",
+ "tableFrom": "domain",
+ "tableTo": "preview_deployments",
+ "columnsFrom": [
+ "previewDeploymentId"
+ ],
+ "columnsTo": [
+ "previewDeploymentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.environment": {
+ "name": "environment",
+ "schema": "",
+ "columns": {
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "projectId": {
+ "name": "projectId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "environment_projectId_project_projectId_fk": {
+ "name": "environment_projectId_project_projectId_fk",
+ "tableFrom": "environment",
+ "tableTo": "project",
+ "columnsFrom": [
+ "projectId"
+ ],
+ "columnsTo": [
+ "projectId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.git_provider": {
+ "name": "git_provider",
+ "schema": "",
+ "columns": {
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "providerType": {
+ "name": "providerType",
+ "type": "gitProviderType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'github'"
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "userId": {
+ "name": "userId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "git_provider_organizationId_organization_id_fk": {
+ "name": "git_provider_organizationId_organization_id_fk",
+ "tableFrom": "git_provider",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "git_provider_userId_user_id_fk": {
+ "name": "git_provider_userId_user_id_fk",
+ "tableFrom": "git_provider",
+ "tableTo": "user",
+ "columnsFrom": [
+ "userId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.gitea": {
+ "name": "gitea",
+ "schema": "",
+ "columns": {
+ "giteaId": {
+ "name": "giteaId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "giteaUrl": {
+ "name": "giteaUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'https://gitea.com'"
+ },
+ "redirect_uri": {
+ "name": "redirect_uri",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "client_id": {
+ "name": "client_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "client_secret": {
+ "name": "client_secret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scopes": {
+ "name": "scopes",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'repo,repo:status,read:user,read:org'"
+ },
+ "last_authenticated_at": {
+ "name": "last_authenticated_at",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "gitea_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "gitea_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "gitea",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.github": {
+ "name": "github",
+ "schema": "",
+ "columns": {
+ "githubId": {
+ "name": "githubId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "githubAppName": {
+ "name": "githubAppName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubAppId": {
+ "name": "githubAppId",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubClientId": {
+ "name": "githubClientId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubClientSecret": {
+ "name": "githubClientSecret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubInstallationId": {
+ "name": "githubInstallationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubPrivateKey": {
+ "name": "githubPrivateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubWebhookSecret": {
+ "name": "githubWebhookSecret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "github_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "github_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "github",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.gitlab": {
+ "name": "gitlab",
+ "schema": "",
+ "columns": {
+ "gitlabId": {
+ "name": "gitlabId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "gitlabUrl": {
+ "name": "gitlabUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'https://gitlab.com'"
+ },
+ "application_id": {
+ "name": "application_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "redirect_uri": {
+ "name": "redirect_uri",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "secret": {
+ "name": "secret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "group_name": {
+ "name": "group_name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "gitlab_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "gitlab_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "gitlab",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mariadb": {
+ "name": "mariadb",
+ "schema": "",
+ "columns": {
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "databaseName": {
+ "name": "databaseName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "rootPassword": {
+ "name": "rootPassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mariadb_environmentId_environment_environmentId_fk": {
+ "name": "mariadb_environmentId_environment_environmentId_fk",
+ "tableFrom": "mariadb",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mariadb_serverId_server_serverId_fk": {
+ "name": "mariadb_serverId_server_serverId_fk",
+ "tableFrom": "mariadb",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "mariadb_appName_unique": {
+ "name": "mariadb_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mongo": {
+ "name": "mongo",
+ "schema": "",
+ "columns": {
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicaSets": {
+ "name": "replicaSets",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mongo_environmentId_environment_environmentId_fk": {
+ "name": "mongo_environmentId_environment_environmentId_fk",
+ "tableFrom": "mongo",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mongo_serverId_server_serverId_fk": {
+ "name": "mongo_serverId_server_serverId_fk",
+ "tableFrom": "mongo",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "mongo_appName_unique": {
+ "name": "mongo_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mount": {
+ "name": "mount",
+ "schema": "",
+ "columns": {
+ "mountId": {
+ "name": "mountId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "type": {
+ "name": "type",
+ "type": "mountType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "hostPath": {
+ "name": "hostPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "volumeName": {
+ "name": "volumeName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "filePath": {
+ "name": "filePath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "content": {
+ "name": "content",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serviceType": {
+ "name": "serviceType",
+ "type": "serviceType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'application'"
+ },
+ "mountPath": {
+ "name": "mountPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "redisId": {
+ "name": "redisId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mount_applicationId_application_applicationId_fk": {
+ "name": "mount_applicationId_application_applicationId_fk",
+ "tableFrom": "mount",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_postgresId_postgres_postgresId_fk": {
+ "name": "mount_postgresId_postgres_postgresId_fk",
+ "tableFrom": "mount",
+ "tableTo": "postgres",
+ "columnsFrom": [
+ "postgresId"
+ ],
+ "columnsTo": [
+ "postgresId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_mariadbId_mariadb_mariadbId_fk": {
+ "name": "mount_mariadbId_mariadb_mariadbId_fk",
+ "tableFrom": "mount",
+ "tableTo": "mariadb",
+ "columnsFrom": [
+ "mariadbId"
+ ],
+ "columnsTo": [
+ "mariadbId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_mongoId_mongo_mongoId_fk": {
+ "name": "mount_mongoId_mongo_mongoId_fk",
+ "tableFrom": "mount",
+ "tableTo": "mongo",
+ "columnsFrom": [
+ "mongoId"
+ ],
+ "columnsTo": [
+ "mongoId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_mysqlId_mysql_mysqlId_fk": {
+ "name": "mount_mysqlId_mysql_mysqlId_fk",
+ "tableFrom": "mount",
+ "tableTo": "mysql",
+ "columnsFrom": [
+ "mysqlId"
+ ],
+ "columnsTo": [
+ "mysqlId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_redisId_redis_redisId_fk": {
+ "name": "mount_redisId_redis_redisId_fk",
+ "tableFrom": "mount",
+ "tableTo": "redis",
+ "columnsFrom": [
+ "redisId"
+ ],
+ "columnsTo": [
+ "redisId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_composeId_compose_composeId_fk": {
+ "name": "mount_composeId_compose_composeId_fk",
+ "tableFrom": "mount",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mysql": {
+ "name": "mysql",
+ "schema": "",
+ "columns": {
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "databaseName": {
+ "name": "databaseName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "rootPassword": {
+ "name": "rootPassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mysql_environmentId_environment_environmentId_fk": {
+ "name": "mysql_environmentId_environment_environmentId_fk",
+ "tableFrom": "mysql",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mysql_serverId_server_serverId_fk": {
+ "name": "mysql_serverId_server_serverId_fk",
+ "tableFrom": "mysql",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "mysql_appName_unique": {
+ "name": "mysql_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.discord": {
+ "name": "discord",
+ "schema": "",
+ "columns": {
+ "discordId": {
+ "name": "discordId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "webhookUrl": {
+ "name": "webhookUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "decoration": {
+ "name": "decoration",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.email": {
+ "name": "email",
+ "schema": "",
+ "columns": {
+ "emailId": {
+ "name": "emailId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "smtpServer": {
+ "name": "smtpServer",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "smtpPort": {
+ "name": "smtpPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "fromAddress": {
+ "name": "fromAddress",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "toAddress": {
+ "name": "toAddress",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.gotify": {
+ "name": "gotify",
+ "schema": "",
+ "columns": {
+ "gotifyId": {
+ "name": "gotifyId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "serverUrl": {
+ "name": "serverUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appToken": {
+ "name": "appToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "priority": {
+ "name": "priority",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 5
+ },
+ "decoration": {
+ "name": "decoration",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.lark": {
+ "name": "lark",
+ "schema": "",
+ "columns": {
+ "larkId": {
+ "name": "larkId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "webhookUrl": {
+ "name": "webhookUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.notification": {
+ "name": "notification",
+ "schema": "",
+ "columns": {
+ "notificationId": {
+ "name": "notificationId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appDeploy": {
+ "name": "appDeploy",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "appBuildError": {
+ "name": "appBuildError",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "databaseBackup": {
+ "name": "databaseBackup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "dokployRestart": {
+ "name": "dokployRestart",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "dockerCleanup": {
+ "name": "dockerCleanup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "serverThreshold": {
+ "name": "serverThreshold",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "notificationType": {
+ "name": "notificationType",
+ "type": "notificationType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "slackId": {
+ "name": "slackId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "telegramId": {
+ "name": "telegramId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "discordId": {
+ "name": "discordId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "emailId": {
+ "name": "emailId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gotifyId": {
+ "name": "gotifyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ntfyId": {
+ "name": "ntfyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "larkId": {
+ "name": "larkId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "notification_slackId_slack_slackId_fk": {
+ "name": "notification_slackId_slack_slackId_fk",
+ "tableFrom": "notification",
+ "tableTo": "slack",
+ "columnsFrom": [
+ "slackId"
+ ],
+ "columnsTo": [
+ "slackId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_telegramId_telegram_telegramId_fk": {
+ "name": "notification_telegramId_telegram_telegramId_fk",
+ "tableFrom": "notification",
+ "tableTo": "telegram",
+ "columnsFrom": [
+ "telegramId"
+ ],
+ "columnsTo": [
+ "telegramId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_discordId_discord_discordId_fk": {
+ "name": "notification_discordId_discord_discordId_fk",
+ "tableFrom": "notification",
+ "tableTo": "discord",
+ "columnsFrom": [
+ "discordId"
+ ],
+ "columnsTo": [
+ "discordId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_emailId_email_emailId_fk": {
+ "name": "notification_emailId_email_emailId_fk",
+ "tableFrom": "notification",
+ "tableTo": "email",
+ "columnsFrom": [
+ "emailId"
+ ],
+ "columnsTo": [
+ "emailId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_gotifyId_gotify_gotifyId_fk": {
+ "name": "notification_gotifyId_gotify_gotifyId_fk",
+ "tableFrom": "notification",
+ "tableTo": "gotify",
+ "columnsFrom": [
+ "gotifyId"
+ ],
+ "columnsTo": [
+ "gotifyId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_ntfyId_ntfy_ntfyId_fk": {
+ "name": "notification_ntfyId_ntfy_ntfyId_fk",
+ "tableFrom": "notification",
+ "tableTo": "ntfy",
+ "columnsFrom": [
+ "ntfyId"
+ ],
+ "columnsTo": [
+ "ntfyId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_larkId_lark_larkId_fk": {
+ "name": "notification_larkId_lark_larkId_fk",
+ "tableFrom": "notification",
+ "tableTo": "lark",
+ "columnsFrom": [
+ "larkId"
+ ],
+ "columnsTo": [
+ "larkId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_organizationId_organization_id_fk": {
+ "name": "notification_organizationId_organization_id_fk",
+ "tableFrom": "notification",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ntfy": {
+ "name": "ntfy",
+ "schema": "",
+ "columns": {
+ "ntfyId": {
+ "name": "ntfyId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "serverUrl": {
+ "name": "serverUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "topic": {
+ "name": "topic",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "accessToken": {
+ "name": "accessToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "priority": {
+ "name": "priority",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 3
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.slack": {
+ "name": "slack",
+ "schema": "",
+ "columns": {
+ "slackId": {
+ "name": "slackId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "webhookUrl": {
+ "name": "webhookUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "channel": {
+ "name": "channel",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.telegram": {
+ "name": "telegram",
+ "schema": "",
+ "columns": {
+ "telegramId": {
+ "name": "telegramId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "botToken": {
+ "name": "botToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "chatId": {
+ "name": "chatId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "messageThreadId": {
+ "name": "messageThreadId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.port": {
+ "name": "port",
+ "schema": "",
+ "columns": {
+ "portId": {
+ "name": "portId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "publishedPort": {
+ "name": "publishedPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "publishMode": {
+ "name": "publishMode",
+ "type": "publishModeType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'host'"
+ },
+ "targetPort": {
+ "name": "targetPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "protocol": {
+ "name": "protocol",
+ "type": "protocolType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "port_applicationId_application_applicationId_fk": {
+ "name": "port_applicationId_application_applicationId_fk",
+ "tableFrom": "port",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.postgres": {
+ "name": "postgres",
+ "schema": "",
+ "columns": {
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseName": {
+ "name": "databaseName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "postgres_environmentId_environment_environmentId_fk": {
+ "name": "postgres_environmentId_environment_environmentId_fk",
+ "tableFrom": "postgres",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "postgres_serverId_server_serverId_fk": {
+ "name": "postgres_serverId_server_serverId_fk",
+ "tableFrom": "postgres",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "postgres_appName_unique": {
+ "name": "postgres_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.preview_deployments": {
+ "name": "preview_deployments",
+ "schema": "",
+ "columns": {
+ "previewDeploymentId": {
+ "name": "previewDeploymentId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "branch": {
+ "name": "branch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestId": {
+ "name": "pullRequestId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestNumber": {
+ "name": "pullRequestNumber",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestURL": {
+ "name": "pullRequestURL",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestTitle": {
+ "name": "pullRequestTitle",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestCommentId": {
+ "name": "pullRequestCommentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "previewStatus": {
+ "name": "previewStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "domainId": {
+ "name": "domainId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expiresAt": {
+ "name": "expiresAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "preview_deployments_applicationId_application_applicationId_fk": {
+ "name": "preview_deployments_applicationId_application_applicationId_fk",
+ "tableFrom": "preview_deployments",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "preview_deployments_domainId_domain_domainId_fk": {
+ "name": "preview_deployments_domainId_domain_domainId_fk",
+ "tableFrom": "preview_deployments",
+ "tableTo": "domain",
+ "columnsFrom": [
+ "domainId"
+ ],
+ "columnsTo": [
+ "domainId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "preview_deployments_appName_unique": {
+ "name": "preview_deployments_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.project": {
+ "name": "project",
+ "schema": "",
+ "columns": {
+ "projectId": {
+ "name": "projectId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "project_organizationId_organization_id_fk": {
+ "name": "project_organizationId_organization_id_fk",
+ "tableFrom": "project",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.redirect": {
+ "name": "redirect",
+ "schema": "",
+ "columns": {
+ "redirectId": {
+ "name": "redirectId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "regex": {
+ "name": "regex",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "replacement": {
+ "name": "replacement",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "permanent": {
+ "name": "permanent",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "uniqueConfigKey": {
+ "name": "uniqueConfigKey",
+ "type": "serial",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "redirect_applicationId_application_applicationId_fk": {
+ "name": "redirect_applicationId_application_applicationId_fk",
+ "tableFrom": "redirect",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.redis": {
+ "name": "redis",
+ "schema": "",
+ "columns": {
+ "redisId": {
+ "name": "redisId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "redis_environmentId_environment_environmentId_fk": {
+ "name": "redis_environmentId_environment_environmentId_fk",
+ "tableFrom": "redis",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "redis_serverId_server_serverId_fk": {
+ "name": "redis_serverId_server_serverId_fk",
+ "tableFrom": "redis",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "redis_appName_unique": {
+ "name": "redis_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.registry": {
+ "name": "registry",
+ "schema": "",
+ "columns": {
+ "registryId": {
+ "name": "registryId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "registryName": {
+ "name": "registryName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "imagePrefix": {
+ "name": "imagePrefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "registryUrl": {
+ "name": "registryUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "selfHosted": {
+ "name": "selfHosted",
+ "type": "RegistryType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'cloud'"
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "registry_organizationId_organization_id_fk": {
+ "name": "registry_organizationId_organization_id_fk",
+ "tableFrom": "registry",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.rollback": {
+ "name": "rollback",
+ "schema": "",
+ "columns": {
+ "rollbackId": {
+ "name": "rollbackId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "deploymentId": {
+ "name": "deploymentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "version": {
+ "name": "version",
+ "type": "serial",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "image": {
+ "name": "image",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "fullContext": {
+ "name": "fullContext",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "rollback_deploymentId_deployment_deploymentId_fk": {
+ "name": "rollback_deploymentId_deployment_deploymentId_fk",
+ "tableFrom": "rollback",
+ "tableTo": "deployment",
+ "columnsFrom": [
+ "deploymentId"
+ ],
+ "columnsTo": [
+ "deploymentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.schedule": {
+ "name": "schedule",
+ "schema": "",
+ "columns": {
+ "scheduleId": {
+ "name": "scheduleId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "cronExpression": {
+ "name": "cronExpression",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "shellType": {
+ "name": "shellType",
+ "type": "shellType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'bash'"
+ },
+ "scheduleType": {
+ "name": "scheduleType",
+ "type": "scheduleType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'application'"
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "script": {
+ "name": "script",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "userId": {
+ "name": "userId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "schedule_applicationId_application_applicationId_fk": {
+ "name": "schedule_applicationId_application_applicationId_fk",
+ "tableFrom": "schedule",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "schedule_composeId_compose_composeId_fk": {
+ "name": "schedule_composeId_compose_composeId_fk",
+ "tableFrom": "schedule",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "schedule_serverId_server_serverId_fk": {
+ "name": "schedule_serverId_server_serverId_fk",
+ "tableFrom": "schedule",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "schedule_userId_user_id_fk": {
+ "name": "schedule_userId_user_id_fk",
+ "tableFrom": "schedule",
+ "tableTo": "user",
+ "columnsFrom": [
+ "userId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.security": {
+ "name": "security",
+ "schema": "",
+ "columns": {
+ "securityId": {
+ "name": "securityId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "security_applicationId_application_applicationId_fk": {
+ "name": "security_applicationId_application_applicationId_fk",
+ "tableFrom": "security",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "security_username_applicationId_unique": {
+ "name": "security_username_applicationId_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "username",
+ "applicationId"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.server": {
+ "name": "server",
+ "schema": "",
+ "columns": {
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ipAddress": {
+ "name": "ipAddress",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "port": {
+ "name": "port",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'root'"
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "enableDockerCleanup": {
+ "name": "enableDockerCleanup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverStatus": {
+ "name": "serverStatus",
+ "type": "serverStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'active'"
+ },
+ "serverType": {
+ "name": "serverType",
+ "type": "serverType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'deploy'"
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "sshKeyId": {
+ "name": "sshKeyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "metricsConfig": {
+ "name": "metricsConfig",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'{\"server\":{\"type\":\"Remote\",\"refreshRate\":60,\"port\":4500,\"token\":\"\",\"urlCallback\":\"\",\"cronJob\":\"\",\"retentionDays\":2,\"thresholds\":{\"cpu\":0,\"memory\":0}},\"containers\":{\"refreshRate\":60,\"services\":{\"include\":[],\"exclude\":[]}}}'::jsonb"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "server_organizationId_organization_id_fk": {
+ "name": "server_organizationId_organization_id_fk",
+ "tableFrom": "server",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "server_sshKeyId_ssh-key_sshKeyId_fk": {
+ "name": "server_sshKeyId_ssh-key_sshKeyId_fk",
+ "tableFrom": "server",
+ "tableTo": "ssh-key",
+ "columnsFrom": [
+ "sshKeyId"
+ ],
+ "columnsTo": [
+ "sshKeyId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.session_temp": {
+ "name": "session_temp",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "token": {
+ "name": "token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "ip_address": {
+ "name": "ip_address",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_agent": {
+ "name": "user_agent",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "impersonated_by": {
+ "name": "impersonated_by",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "active_organization_id": {
+ "name": "active_organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "session_temp_user_id_user_id_fk": {
+ "name": "session_temp_user_id_user_id_fk",
+ "tableFrom": "session_temp",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "session_temp_token_unique": {
+ "name": "session_temp_token_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "token"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ssh-key": {
+ "name": "ssh-key",
+ "schema": "",
+ "columns": {
+ "sshKeyId": {
+ "name": "sshKeyId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "privateKey": {
+ "name": "privateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "publicKey": {
+ "name": "publicKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "lastUsedAt": {
+ "name": "lastUsedAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "ssh-key_organizationId_organization_id_fk": {
+ "name": "ssh-key_organizationId_organization_id_fk",
+ "tableFrom": "ssh-key",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.user": {
+ "name": "user",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "isRegistered": {
+ "name": "isRegistered",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "expirationDate": {
+ "name": "expirationDate",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "two_factor_enabled": {
+ "name": "two_factor_enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email_verified": {
+ "name": "email_verified",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "image": {
+ "name": "image",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "banned": {
+ "name": "banned",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ban_reason": {
+ "name": "ban_reason",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ban_expires": {
+ "name": "ban_expires",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverIp": {
+ "name": "serverIp",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "certificateType": {
+ "name": "certificateType",
+ "type": "certificateType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'none'"
+ },
+ "https": {
+ "name": "https",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "host": {
+ "name": "host",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "letsEncryptEmail": {
+ "name": "letsEncryptEmail",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "sshPrivateKey": {
+ "name": "sshPrivateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enableDockerCleanup": {
+ "name": "enableDockerCleanup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "logCleanupCron": {
+ "name": "logCleanupCron",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'0 0 * * *'"
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'user'"
+ },
+ "enablePaidFeatures": {
+ "name": "enablePaidFeatures",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "allowImpersonation": {
+ "name": "allowImpersonation",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "metricsConfig": {
+ "name": "metricsConfig",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'{\"server\":{\"type\":\"Dokploy\",\"refreshRate\":60,\"port\":4500,\"token\":\"\",\"retentionDays\":2,\"cronJob\":\"\",\"urlCallback\":\"\",\"thresholds\":{\"cpu\":0,\"memory\":0}},\"containers\":{\"refreshRate\":60,\"services\":{\"include\":[],\"exclude\":[]}}}'::jsonb"
+ },
+ "cleanupCacheApplications": {
+ "name": "cleanupCacheApplications",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "cleanupCacheOnPreviews": {
+ "name": "cleanupCacheOnPreviews",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "cleanupCacheOnCompose": {
+ "name": "cleanupCacheOnCompose",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "stripeCustomerId": {
+ "name": "stripeCustomerId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stripeSubscriptionId": {
+ "name": "stripeSubscriptionId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serversQuantity": {
+ "name": "serversQuantity",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 0
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "user_email_unique": {
+ "name": "user_email_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "email"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.volume_backup": {
+ "name": "volume_backup",
+ "schema": "",
+ "columns": {
+ "volumeBackupId": {
+ "name": "volumeBackupId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "volumeName": {
+ "name": "volumeName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "prefix": {
+ "name": "prefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceType": {
+ "name": "serviceType",
+ "type": "serviceType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'application'"
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "turnOff": {
+ "name": "turnOff",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "cronExpression": {
+ "name": "cronExpression",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "keepLatestCount": {
+ "name": "keepLatestCount",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "redisId": {
+ "name": "redisId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "destinationId": {
+ "name": "destinationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "volume_backup_applicationId_application_applicationId_fk": {
+ "name": "volume_backup_applicationId_application_applicationId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_postgresId_postgres_postgresId_fk": {
+ "name": "volume_backup_postgresId_postgres_postgresId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "postgres",
+ "columnsFrom": [
+ "postgresId"
+ ],
+ "columnsTo": [
+ "postgresId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_mariadbId_mariadb_mariadbId_fk": {
+ "name": "volume_backup_mariadbId_mariadb_mariadbId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "mariadb",
+ "columnsFrom": [
+ "mariadbId"
+ ],
+ "columnsTo": [
+ "mariadbId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_mongoId_mongo_mongoId_fk": {
+ "name": "volume_backup_mongoId_mongo_mongoId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "mongo",
+ "columnsFrom": [
+ "mongoId"
+ ],
+ "columnsTo": [
+ "mongoId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_mysqlId_mysql_mysqlId_fk": {
+ "name": "volume_backup_mysqlId_mysql_mysqlId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "mysql",
+ "columnsFrom": [
+ "mysqlId"
+ ],
+ "columnsTo": [
+ "mysqlId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_redisId_redis_redisId_fk": {
+ "name": "volume_backup_redisId_redis_redisId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "redis",
+ "columnsFrom": [
+ "redisId"
+ ],
+ "columnsTo": [
+ "redisId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_composeId_compose_composeId_fk": {
+ "name": "volume_backup_composeId_compose_composeId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_destinationId_destination_destinationId_fk": {
+ "name": "volume_backup_destinationId_destination_destinationId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "destination",
+ "columnsFrom": [
+ "destinationId"
+ ],
+ "columnsTo": [
+ "destinationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ }
+ },
+ "enums": {
+ "public.buildType": {
+ "name": "buildType",
+ "schema": "public",
+ "values": [
+ "dockerfile",
+ "heroku_buildpacks",
+ "paketo_buildpacks",
+ "nixpacks",
+ "static",
+ "railpack"
+ ]
+ },
+ "public.sourceType": {
+ "name": "sourceType",
+ "schema": "public",
+ "values": [
+ "docker",
+ "git",
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "drop"
+ ]
+ },
+ "public.backupType": {
+ "name": "backupType",
+ "schema": "public",
+ "values": [
+ "database",
+ "compose"
+ ]
+ },
+ "public.databaseType": {
+ "name": "databaseType",
+ "schema": "public",
+ "values": [
+ "postgres",
+ "mariadb",
+ "mysql",
+ "mongo",
+ "web-server"
+ ]
+ },
+ "public.composeType": {
+ "name": "composeType",
+ "schema": "public",
+ "values": [
+ "docker-compose",
+ "stack"
+ ]
+ },
+ "public.sourceTypeCompose": {
+ "name": "sourceTypeCompose",
+ "schema": "public",
+ "values": [
+ "git",
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "raw"
+ ]
+ },
+ "public.deploymentStatus": {
+ "name": "deploymentStatus",
+ "schema": "public",
+ "values": [
+ "running",
+ "done",
+ "error",
+ "cancelled"
+ ]
+ },
+ "public.domainType": {
+ "name": "domainType",
+ "schema": "public",
+ "values": [
+ "compose",
+ "application",
+ "preview"
+ ]
+ },
+ "public.gitProviderType": {
+ "name": "gitProviderType",
+ "schema": "public",
+ "values": [
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea"
+ ]
+ },
+ "public.mountType": {
+ "name": "mountType",
+ "schema": "public",
+ "values": [
+ "bind",
+ "volume",
+ "file"
+ ]
+ },
+ "public.serviceType": {
+ "name": "serviceType",
+ "schema": "public",
+ "values": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ]
+ },
+ "public.notificationType": {
+ "name": "notificationType",
+ "schema": "public",
+ "values": [
+ "slack",
+ "telegram",
+ "discord",
+ "email",
+ "gotify",
+ "ntfy",
+ "lark"
+ ]
+ },
+ "public.protocolType": {
+ "name": "protocolType",
+ "schema": "public",
+ "values": [
+ "tcp",
+ "udp"
+ ]
+ },
+ "public.publishModeType": {
+ "name": "publishModeType",
+ "schema": "public",
+ "values": [
+ "ingress",
+ "host"
+ ]
+ },
+ "public.RegistryType": {
+ "name": "RegistryType",
+ "schema": "public",
+ "values": [
+ "selfHosted",
+ "cloud"
+ ]
+ },
+ "public.scheduleType": {
+ "name": "scheduleType",
+ "schema": "public",
+ "values": [
+ "application",
+ "compose",
+ "server",
+ "dokploy-server"
+ ]
+ },
+ "public.shellType": {
+ "name": "shellType",
+ "schema": "public",
+ "values": [
+ "bash",
+ "sh"
+ ]
+ },
+ "public.serverStatus": {
+ "name": "serverStatus",
+ "schema": "public",
+ "values": [
+ "active",
+ "inactive"
+ ]
+ },
+ "public.serverType": {
+ "name": "serverType",
+ "schema": "public",
+ "values": [
+ "deploy",
+ "build"
+ ]
+ },
+ "public.applicationStatus": {
+ "name": "applicationStatus",
+ "schema": "public",
+ "values": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "public.certificateType": {
+ "name": "certificateType",
+ "schema": "public",
+ "values": [
+ "letsencrypt",
+ "none",
+ "custom"
+ ]
+ },
+ "public.triggerType": {
+ "name": "triggerType",
+ "schema": "public",
+ "values": [
+ "push",
+ "tag"
+ ]
+ }
+ },
+ "schemas": {},
+ "sequences": {},
+ "roles": {},
+ "policies": {},
+ "views": {},
+ "_meta": {
+ "columns": {},
+ "schemas": {},
+ "tables": {}
+ }
+}
\ No newline at end of file
diff --git a/apps/dokploy/drizzle/meta/_journal.json b/apps/dokploy/drizzle/meta/_journal.json
index 323562fd1..c5de7f141 100644
--- a/apps/dokploy/drizzle/meta/_journal.json
+++ b/apps/dokploy/drizzle/meta/_journal.json
@@ -855,6 +855,20 @@
"when": 1763755037033,
"tag": "0121_rainy_cargill",
"breakpoints": true
+ },
+ {
+ "idx": 122,
+ "version": "7",
+ "when": 1764471908821,
+ "tag": "0122_cold_ben_parker",
+ "breakpoints": true
+ },
+ {
+ "idx": 123,
+ "version": "7",
+ "when": 1764472942038,
+ "tag": "0123_careless_odin",
+ "breakpoints": true
}
]
}
\ No newline at end of file
diff --git a/apps/dokploy/pages/dashboard/project/[projectId]/environment/[environmentId]/services/application/[applicationId].tsx b/apps/dokploy/pages/dashboard/project/[projectId]/environment/[environmentId]/services/application/[applicationId].tsx
index f8d0154f5..dd235a1e9 100644
--- a/apps/dokploy/pages/dashboard/project/[projectId]/environment/[environmentId]/services/application/[applicationId].tsx
+++ b/apps/dokploy/pages/dashboard/project/[projectId]/environment/[environmentId]/services/application/[applicationId].tsx
@@ -17,6 +17,7 @@ import { AddCommand } from "@/components/dashboard/application/advanced/general/
import { ShowPorts } from "@/components/dashboard/application/advanced/ports/show-port";
import { ShowRedirects } from "@/components/dashboard/application/advanced/redirects/show-redirects";
import { ShowSecurity } from "@/components/dashboard/application/advanced/security/show-security";
+import { ShowBuildServer } from "@/components/dashboard/application/advanced/show-build-server";
import { ShowResources } from "@/components/dashboard/application/advanced/show-resources";
import { ShowTraefikConfig } from "@/components/dashboard/application/advanced/traefik/show-traefik-config";
import { ShowVolumes } from "@/components/dashboard/application/advanced/volumes/show-volumes";
@@ -348,13 +349,13 @@ const Service = (
-
-
-
-
+
+
+
+
diff --git a/apps/dokploy/server/api/routers/server.ts b/apps/dokploy/server/api/routers/server.ts
index 8a01228f8..3b0985e43 100644
--- a/apps/dokploy/server/api/routers/server.ts
+++ b/apps/dokploy/server/api/routers/server.ts
@@ -124,10 +124,30 @@ export const serverRouter = createTRPCRouter({
isNotNull(server.sshKeyId),
eq(server.organizationId, ctx.session.activeOrganizationId),
eq(server.serverStatus, "active"),
+ eq(server.serverType, "deploy"),
)
: and(
isNotNull(server.sshKeyId),
eq(server.organizationId, ctx.session.activeOrganizationId),
+ eq(server.serverType, "deploy"),
+ ),
+ });
+ return result;
+ }),
+ buildServers: protectedProcedure.query(async ({ ctx }) => {
+ const result = await db.query.server.findMany({
+ orderBy: desc(server.createdAt),
+ where: IS_CLOUD
+ ? and(
+ isNotNull(server.sshKeyId),
+ eq(server.organizationId, ctx.session.activeOrganizationId),
+ eq(server.serverStatus, "active"),
+ eq(server.serverType, "build"),
+ )
+ : and(
+ isNotNull(server.sshKeyId),
+ eq(server.organizationId, ctx.session.activeOrganizationId),
+ eq(server.serverType, "build"),
),
});
return result;
diff --git a/packages/server/src/db/schema/application.ts b/packages/server/src/db/schema/application.ts
index f3e402cc5..a7bf83ad5 100644
--- a/packages/server/src/db/schema/application.ts
+++ b/packages/server/src/db/schema/application.ts
@@ -204,6 +204,15 @@ export const applications = pgTable("application", {
serverId: text("serverId").references(() => server.serverId, {
onDelete: "cascade",
}),
+ buildServerId: text("buildServerId").references(() => server.serverId, {
+ onDelete: "set null",
+ }),
+ buildRegistryId: text("buildRegistryId").references(
+ () => registry.registryId,
+ {
+ onDelete: "set null",
+ },
+ ),
});
export const applicationsRelations = relations(
@@ -247,6 +256,14 @@ export const applicationsRelations = relations(
fields: [applications.serverId],
references: [server.serverId],
}),
+ buildServer: one(server, {
+ fields: [applications.buildServerId],
+ references: [server.serverId],
+ }),
+ buildRegistry: one(registry, {
+ fields: [applications.buildRegistryId],
+ references: [registry.registryId],
+ }),
previewDeployments: many(previewDeployments),
}),
);
diff --git a/packages/server/src/db/schema/server.ts b/packages/server/src/db/schema/server.ts
index 4313e95dd..317aa68ee 100644
--- a/packages/server/src/db/schema/server.ts
+++ b/packages/server/src/db/schema/server.ts
@@ -24,6 +24,7 @@ import { schedules } from "./schedule";
import { sshKeys } from "./ssh-key";
import { generateAppName } from "./utils";
export const serverStatus = pgEnum("serverStatus", ["active", "inactive"]);
+export const serverType = pgEnum("serverType", ["deploy", "build"]);
export const server = pgTable("server", {
serverId: text("serverId")
@@ -44,6 +45,7 @@ export const server = pgTable("server", {
.notNull()
.references(() => organization.id, { onDelete: "cascade" }),
serverStatus: serverStatus("serverStatus").notNull().default("active"),
+ serverType: serverType("serverType").notNull().default("deploy"),
command: text("command").notNull().default(""),
sshKeyId: text("sshKeyId").references(() => sshKeys.sshKeyId, {
onDelete: "set null",
@@ -131,6 +133,7 @@ export const apiCreateServer = createSchema
port: true,
username: true,
sshKeyId: true,
+ serverType: true,
})
.required();
@@ -155,6 +158,7 @@ export const apiUpdateServer = createSchema
port: true,
username: true,
sshKeyId: true,
+ serverType: true,
})
.required()
.extend({
From 65d962efc88537666cfc0b8d75ee85030eb29703 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sat, 29 Nov 2025 21:46:12 -0600
Subject: [PATCH 19/74] feat: enhance server validation and setup for build
servers
- Added logic to differentiate between build servers and regular servers in the ValidateServer component.
- Updated the server setup process to conditionally install dependencies based on server type.
- Enhanced the default command generation to include specific commands for build servers.
- Improved UI feedback to reflect the server type in the dashboard.
---
.../settings/servers/validate-server.tsx | 81 +++++++++++--------
apps/dokploy/server/api/routers/server.ts | 6 +-
packages/server/src/setup/server-setup.ts | 36 ++++++++-
3 files changed, 85 insertions(+), 38 deletions(-)
diff --git a/apps/dokploy/components/dashboard/settings/servers/validate-server.tsx b/apps/dokploy/components/dashboard/settings/servers/validate-server.tsx
index c09753f3e..5aaf154fd 100644
--- a/apps/dokploy/components/dashboard/settings/servers/validate-server.tsx
+++ b/apps/dokploy/components/dashboard/settings/servers/validate-server.tsx
@@ -25,6 +25,13 @@ export const ValidateServer = ({ serverId }: Props) => {
enabled: !!serverId,
},
);
+ const { data: server } = api.server.one.useQuery(
+ { serverId },
+ {
+ enabled: !!serverId,
+ },
+ );
+ const isBuildServer = server?.serverType === "build";
const _utils = api.useUtils();
return (
@@ -73,7 +80,9 @@ export const ValidateServer = ({ serverId }: Props) => {
Status
- Shows the server configuration status
+ {isBuildServer
+ ? "Shows the build server configuration status"
+ : "Shows the server configuration status"}
{
: undefined
}
/>
-
+ {!isBuildServer && (
+
+ )}
{
}
/>
-
+ {!isBuildServer && (
+ <>
+
+
+ >
+ )}
{
: "Not Created"
}
/>
-
diff --git a/apps/dokploy/server/api/routers/server.ts b/apps/dokploy/server/api/routers/server.ts
index 3b0985e43..4a044ec54 100644
--- a/apps/dokploy/server/api/routers/server.ts
+++ b/apps/dokploy/server/api/routers/server.ts
@@ -81,8 +81,10 @@ export const serverRouter = createTRPCRouter({
}),
getDefaultCommand: protectedProcedure
.input(apiFindOneServer)
- .query(async () => {
- return defaultCommand();
+ .query(async ({ input }) => {
+ const server = await findServerById(input.serverId);
+ const isBuildServer = server.serverType === "build";
+ return defaultCommand(isBuildServer);
}),
all: protectedProcedure.query(async ({ ctx }) => {
const result = await db
diff --git a/packages/server/src/setup/server-setup.ts b/packages/server/src/setup/server-setup.ts
index 8128b57e0..0636215d9 100644
--- a/packages/server/src/setup/server-setup.ts
+++ b/packages/server/src/setup/server-setup.ts
@@ -51,7 +51,12 @@ export const serverSetup = async (
});
try {
- onData?.("\nInstalling Server Dependencies: ✅\n");
+ const isBuildServer = server.serverType === "build";
+ onData?.(
+ isBuildServer
+ ? "\nInstalling Build Server Dependencies: ✅\n"
+ : "\nInstalling Server Dependencies: ✅\n",
+ );
await installRequirements(serverId, onData);
await updateDeploymentStatus(deployment.deploymentId, "done");
@@ -65,7 +70,7 @@ export const serverSetup = async (
}
};
-export const defaultCommand = () => {
+export const defaultCommand = (isBuildServer = false) => {
const bashCommand = `
set -e;
DOCKER_VERSION=27.0.3
@@ -126,6 +131,7 @@ echo -e "---------------------------------------------"
echo "| CPU Architecture | $SYS_ARCH"
echo "| Operating System | $OS_TYPE $OS_VERSION"
echo "| Docker | $DOCKER_VERSION"
+${isBuildServer ? 'echo "| Server Type | Build Server"' : ""}
echo -e "---------------------------------------------\n"
echo -e "1. Installing required packages (curl, wget, git, jq, openssl). "
@@ -135,6 +141,9 @@ command_exists() {
${installUtilities()}
+${
+ !isBuildServer
+ ? `
echo -e "2. Validating ports. "
${validatePorts()}
@@ -173,6 +182,25 @@ ${installBuildpacks()}
echo -e "13. Installing Railpack"
${installRailpack()}
+`
+ : `
+echo -e "2. Installing Docker. "
+${installDocker()}
+
+echo -e "3. Setting up Directories"
+${setupMainDirectory()}
+${setupDirectories()}
+
+echo -e "4. Installing Nixpacks"
+${installNixpacks()}
+
+echo -e "5. Installing Buildpacks"
+${installBuildpacks()}
+
+echo -e "6. Installing Railpack"
+${installRailpack()}
+`
+}
`;
return bashCommand;
@@ -189,10 +217,12 @@ const installRequirements = async (
throw new Error("No SSH Key found");
}
+ const isBuildServer = server.serverType === "build";
+
return new Promise((resolve, reject) => {
client
.once("ready", () => {
- const command = server.command || defaultCommand();
+ const command = server.command || defaultCommand(isBuildServer);
client.exec(command, (err, stream) => {
if (err) {
onData?.(err.message);
From 704582f6de573bc2a3988b552bd741018cf7d010 Mon Sep 17 00:00:00 2001
From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com>
Date: Sun, 30 Nov 2025 05:01:51 +0000
Subject: [PATCH 20/74] [autofix.ci] apply automated fixes
---
.../dashboard/settings/servers/handle-servers.tsx | 10 ++++++++--
.../services/application/[applicationId].tsx | 14 +++++++-------
2 files changed, 15 insertions(+), 9 deletions(-)
diff --git a/apps/dokploy/components/dashboard/settings/servers/handle-servers.tsx b/apps/dokploy/components/dashboard/settings/servers/handle-servers.tsx
index 50d8029ca..b36aec7c4 100644
--- a/apps/dokploy/components/dashboard/settings/servers/handle-servers.tsx
+++ b/apps/dokploy/components/dashboard/settings/servers/handle-servers.tsx
@@ -296,12 +296,18 @@ export const HandleServers = ({ serverId }: Props) => {
{serverTypeValue === "deploy" && (
- Deploy servers are used to run your applications, databases, and services. They handle the deployment and execution of your projects.
+ Deploy servers are used to run your applications,
+ databases, and services. They handle the deployment and
+ execution of your projects.
)}
{serverTypeValue === "build" && (
- Build servers are dedicated to building your applications. They handle the compilation and build process, offloading this work from your deployment servers. Build servers won't appear in deployment options.
+ Build servers are dedicated to building your
+ applications. They handle the compilation and build
+ process, offloading this work from your deployment
+ servers. Build servers won't appear in deployment
+ options.
)}
diff --git a/apps/dokploy/pages/dashboard/project/[projectId]/environment/[environmentId]/services/application/[applicationId].tsx b/apps/dokploy/pages/dashboard/project/[projectId]/environment/[environmentId]/services/application/[applicationId].tsx
index dd235a1e9..a20d307b3 100644
--- a/apps/dokploy/pages/dashboard/project/[projectId]/environment/[environmentId]/services/application/[applicationId].tsx
+++ b/apps/dokploy/pages/dashboard/project/[projectId]/environment/[environmentId]/services/application/[applicationId].tsx
@@ -349,13 +349,13 @@ const Service = (
-
-
-
-
+
+
+
+
From 15634c9f101cb67b4bbae8c4eef884df619c11e1 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sat, 29 Nov 2025 23:04:02 -0600
Subject: [PATCH 21/74] feat: integrate build server functionality and enhance
deployment process
- Added support for build server configuration in the application dashboard, including new UI elements and validation.
- Updated database schema to include build server associations and foreign key constraints.
- Enhanced deployment logic to utilize build server IDs, improving deployment flexibility.
- Improved logging and user feedback during the build and deployment processes, including new alerts for image download status.
- Refactored application and deployment services to accommodate build server integration.
---
.../advanced/show-build-server.tsx | 8 +
.../deployments/show-deployments.tsx | 2 +-
apps/dokploy/drizzle/0124_faulty_synch.sql | 2 +
apps/dokploy/drizzle/meta/0124_snapshot.json | 6795 +++++++++++++++++
apps/dokploy/drizzle/meta/_journal.json | 7 +
packages/server/src/db/schema/application.ts | 4 +
packages/server/src/db/schema/deployment.ts | 10 +
packages/server/src/db/schema/registry.ts | 7 +-
packages/server/src/db/schema/server.ts | 14 +-
packages/server/src/services/application.ts | 10 +-
packages/server/src/services/deployment.ts | 6 +-
packages/server/src/utils/builders/index.ts | 33 +-
packages/server/src/utils/cluster/upload.ts | 91 +-
13 files changed, 6946 insertions(+), 43 deletions(-)
create mode 100644 apps/dokploy/drizzle/0124_faulty_synch.sql
create mode 100644 apps/dokploy/drizzle/meta/0124_snapshot.json
diff --git a/apps/dokploy/components/dashboard/application/advanced/show-build-server.tsx b/apps/dokploy/components/dashboard/application/advanced/show-build-server.tsx
index f099f2011..caa2b8e35 100644
--- a/apps/dokploy/components/dashboard/application/advanced/show-build-server.tsx
+++ b/apps/dokploy/components/dashboard/application/advanced/show-build-server.tsx
@@ -113,6 +113,14 @@ export const ShowBuildServer = ({ applicationId }: Props) => {
application.
+
+ 📊 Important: Once the build finishes, you'll need to
+ wait a few seconds for the deployment server to download the image.
+ These download logs will NOT appear in the build
+ deployment logs. Check the Logs tab to see when the
+ container starts running.
+
+
{!registries || registries.length === 0 ? (
You need to add at least one registry to use build servers. Please
diff --git a/apps/dokploy/components/dashboard/application/deployments/show-deployments.tsx b/apps/dokploy/components/dashboard/application/deployments/show-deployments.tsx
index 7f3bc82b4..8abf8cbf1 100644
--- a/apps/dokploy/components/dashboard/application/deployments/show-deployments.tsx
+++ b/apps/dokploy/components/dashboard/application/deployments/show-deployments.tsx
@@ -407,7 +407,7 @@ export const ShowDeployments = ({
)}
setActiveLog(null)}
logPath={activeLog?.logPath || ""}
diff --git a/apps/dokploy/drizzle/0124_faulty_synch.sql b/apps/dokploy/drizzle/0124_faulty_synch.sql
new file mode 100644
index 000000000..55371ffc4
--- /dev/null
+++ b/apps/dokploy/drizzle/0124_faulty_synch.sql
@@ -0,0 +1,2 @@
+ALTER TABLE "deployment" ADD COLUMN "buildServerId" text;--> statement-breakpoint
+ALTER TABLE "deployment" ADD CONSTRAINT "deployment_buildServerId_server_serverId_fk" FOREIGN KEY ("buildServerId") REFERENCES "public"."server"("serverId") ON DELETE cascade ON UPDATE no action;
\ No newline at end of file
diff --git a/apps/dokploy/drizzle/meta/0124_snapshot.json b/apps/dokploy/drizzle/meta/0124_snapshot.json
new file mode 100644
index 000000000..5527d422b
--- /dev/null
+++ b/apps/dokploy/drizzle/meta/0124_snapshot.json
@@ -0,0 +1,6795 @@
+{
+ "id": "9d1b570c-3edc-4669-95e6-6afa49b55b90",
+ "prevId": "47a5c430-f9e8-4238-9951-d5dc27a20ca3",
+ "version": "7",
+ "dialect": "postgresql",
+ "tables": {
+ "public.account": {
+ "name": "account",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "account_id": {
+ "name": "account_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "provider_id": {
+ "name": "provider_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "id_token": {
+ "name": "id_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "access_token_expires_at": {
+ "name": "access_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token_expires_at": {
+ "name": "refresh_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scope": {
+ "name": "scope",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "is2FAEnabled": {
+ "name": "is2FAEnabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "resetPasswordToken": {
+ "name": "resetPasswordToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "resetPasswordExpiresAt": {
+ "name": "resetPasswordExpiresAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "confirmationToken": {
+ "name": "confirmationToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "confirmationExpiresAt": {
+ "name": "confirmationExpiresAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "account_user_id_user_id_fk": {
+ "name": "account_user_id_user_id_fk",
+ "tableFrom": "account",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.apikey": {
+ "name": "apikey",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "start": {
+ "name": "start",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "prefix": {
+ "name": "prefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "key": {
+ "name": "key",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "refill_interval": {
+ "name": "refill_interval",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refill_amount": {
+ "name": "refill_amount",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "last_refill_at": {
+ "name": "last_refill_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rate_limit_enabled": {
+ "name": "rate_limit_enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rate_limit_time_window": {
+ "name": "rate_limit_time_window",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rate_limit_max": {
+ "name": "rate_limit_max",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "request_count": {
+ "name": "request_count",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "remaining": {
+ "name": "remaining",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "last_request": {
+ "name": "last_request",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "permissions": {
+ "name": "permissions",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "apikey_user_id_user_id_fk": {
+ "name": "apikey_user_id_user_id_fk",
+ "tableFrom": "apikey",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.invitation": {
+ "name": "invitation",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "status": {
+ "name": "status",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "inviter_id": {
+ "name": "inviter_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "team_id": {
+ "name": "team_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "invitation_organization_id_organization_id_fk": {
+ "name": "invitation_organization_id_organization_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "invitation_inviter_id_user_id_fk": {
+ "name": "invitation_inviter_id_user_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "user",
+ "columnsFrom": [
+ "inviter_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.member": {
+ "name": "member",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "team_id": {
+ "name": "team_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "is_default": {
+ "name": "is_default",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canCreateProjects": {
+ "name": "canCreateProjects",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToSSHKeys": {
+ "name": "canAccessToSSHKeys",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canCreateServices": {
+ "name": "canCreateServices",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canDeleteProjects": {
+ "name": "canDeleteProjects",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canDeleteServices": {
+ "name": "canDeleteServices",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToDocker": {
+ "name": "canAccessToDocker",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToAPI": {
+ "name": "canAccessToAPI",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToGitProviders": {
+ "name": "canAccessToGitProviders",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToTraefikFiles": {
+ "name": "canAccessToTraefikFiles",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canDeleteEnvironments": {
+ "name": "canDeleteEnvironments",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canCreateEnvironments": {
+ "name": "canCreateEnvironments",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "accesedProjects": {
+ "name": "accesedProjects",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "ARRAY[]::text[]"
+ },
+ "accessedEnvironments": {
+ "name": "accessedEnvironments",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "ARRAY[]::text[]"
+ },
+ "accesedServices": {
+ "name": "accesedServices",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "ARRAY[]::text[]"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "member_organization_id_organization_id_fk": {
+ "name": "member_organization_id_organization_id_fk",
+ "tableFrom": "member",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "member_user_id_user_id_fk": {
+ "name": "member_user_id_user_id_fk",
+ "tableFrom": "member",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.organization": {
+ "name": "organization",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "slug": {
+ "name": "slug",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "logo": {
+ "name": "logo",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "owner_id": {
+ "name": "owner_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "organization_owner_id_user_id_fk": {
+ "name": "organization_owner_id_user_id_fk",
+ "tableFrom": "organization",
+ "tableTo": "user",
+ "columnsFrom": [
+ "owner_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "organization_slug_unique": {
+ "name": "organization_slug_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "slug"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.two_factor": {
+ "name": "two_factor",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "secret": {
+ "name": "secret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "backup_codes": {
+ "name": "backup_codes",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "two_factor_user_id_user_id_fk": {
+ "name": "two_factor_user_id_user_id_fk",
+ "tableFrom": "two_factor",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.verification": {
+ "name": "verification",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "identifier": {
+ "name": "identifier",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "value": {
+ "name": "value",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ai": {
+ "name": "ai",
+ "schema": "",
+ "columns": {
+ "aiId": {
+ "name": "aiId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "apiUrl": {
+ "name": "apiUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "apiKey": {
+ "name": "apiKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "model": {
+ "name": "model",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "isEnabled": {
+ "name": "isEnabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "ai_organizationId_organization_id_fk": {
+ "name": "ai_organizationId_organization_id_fk",
+ "tableFrom": "ai",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.application": {
+ "name": "application",
+ "schema": "",
+ "columns": {
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewEnv": {
+ "name": "previewEnv",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "watchPaths": {
+ "name": "watchPaths",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewBuildArgs": {
+ "name": "previewBuildArgs",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewBuildSecrets": {
+ "name": "previewBuildSecrets",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewLabels": {
+ "name": "previewLabels",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewWildcard": {
+ "name": "previewWildcard",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewPort": {
+ "name": "previewPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false,
+ "default": 3000
+ },
+ "previewHttps": {
+ "name": "previewHttps",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "previewPath": {
+ "name": "previewPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "certificateType": {
+ "name": "certificateType",
+ "type": "certificateType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'none'"
+ },
+ "previewCustomCertResolver": {
+ "name": "previewCustomCertResolver",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewLimit": {
+ "name": "previewLimit",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false,
+ "default": 3
+ },
+ "isPreviewDeploymentsActive": {
+ "name": "isPreviewDeploymentsActive",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "previewRequireCollaboratorPermissions": {
+ "name": "previewRequireCollaboratorPermissions",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": true
+ },
+ "rollbackActive": {
+ "name": "rollbackActive",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "buildArgs": {
+ "name": "buildArgs",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildSecrets": {
+ "name": "buildSecrets",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "title": {
+ "name": "title",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "subtitle": {
+ "name": "subtitle",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refreshToken": {
+ "name": "refreshToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "sourceType": {
+ "name": "sourceType",
+ "type": "sourceType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'github'"
+ },
+ "cleanCache": {
+ "name": "cleanCache",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "repository": {
+ "name": "repository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "owner": {
+ "name": "owner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "branch": {
+ "name": "branch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildPath": {
+ "name": "buildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "triggerType": {
+ "name": "triggerType",
+ "type": "triggerType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'push'"
+ },
+ "autoDeploy": {
+ "name": "autoDeploy",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabProjectId": {
+ "name": "gitlabProjectId",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabRepository": {
+ "name": "gitlabRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabOwner": {
+ "name": "gitlabOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabBranch": {
+ "name": "gitlabBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabBuildPath": {
+ "name": "gitlabBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "gitlabPathNamespace": {
+ "name": "gitlabPathNamespace",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaRepository": {
+ "name": "giteaRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaOwner": {
+ "name": "giteaOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaBranch": {
+ "name": "giteaBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaBuildPath": {
+ "name": "giteaBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "bitbucketRepository": {
+ "name": "bitbucketRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketOwner": {
+ "name": "bitbucketOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketBranch": {
+ "name": "bitbucketBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketBuildPath": {
+ "name": "bitbucketBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "registryUrl": {
+ "name": "registryUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitUrl": {
+ "name": "customGitUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitBranch": {
+ "name": "customGitBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitBuildPath": {
+ "name": "customGitBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitSSHKeyId": {
+ "name": "customGitSSHKeyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enableSubmodules": {
+ "name": "enableSubmodules",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "dockerfile": {
+ "name": "dockerfile",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerContextPath": {
+ "name": "dockerContextPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerBuildStage": {
+ "name": "dockerBuildStage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dropBuildPath": {
+ "name": "dropBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "buildType": {
+ "name": "buildType",
+ "type": "buildType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'nixpacks'"
+ },
+ "railpackVersion": {
+ "name": "railpackVersion",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'0.2.2'"
+ },
+ "herokuVersion": {
+ "name": "herokuVersion",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'24'"
+ },
+ "publishDirectory": {
+ "name": "publishDirectory",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "isStaticSpa": {
+ "name": "isStaticSpa",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "registryId": {
+ "name": "registryId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "githubId": {
+ "name": "githubId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabId": {
+ "name": "gitlabId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaId": {
+ "name": "giteaId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketId": {
+ "name": "bitbucketId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildServerId": {
+ "name": "buildServerId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildRegistryId": {
+ "name": "buildRegistryId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "application_customGitSSHKeyId_ssh-key_sshKeyId_fk": {
+ "name": "application_customGitSSHKeyId_ssh-key_sshKeyId_fk",
+ "tableFrom": "application",
+ "tableTo": "ssh-key",
+ "columnsFrom": [
+ "customGitSSHKeyId"
+ ],
+ "columnsTo": [
+ "sshKeyId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_registryId_registry_registryId_fk": {
+ "name": "application_registryId_registry_registryId_fk",
+ "tableFrom": "application",
+ "tableTo": "registry",
+ "columnsFrom": [
+ "registryId"
+ ],
+ "columnsTo": [
+ "registryId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_environmentId_environment_environmentId_fk": {
+ "name": "application_environmentId_environment_environmentId_fk",
+ "tableFrom": "application",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "application_githubId_github_githubId_fk": {
+ "name": "application_githubId_github_githubId_fk",
+ "tableFrom": "application",
+ "tableTo": "github",
+ "columnsFrom": [
+ "githubId"
+ ],
+ "columnsTo": [
+ "githubId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_gitlabId_gitlab_gitlabId_fk": {
+ "name": "application_gitlabId_gitlab_gitlabId_fk",
+ "tableFrom": "application",
+ "tableTo": "gitlab",
+ "columnsFrom": [
+ "gitlabId"
+ ],
+ "columnsTo": [
+ "gitlabId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_giteaId_gitea_giteaId_fk": {
+ "name": "application_giteaId_gitea_giteaId_fk",
+ "tableFrom": "application",
+ "tableTo": "gitea",
+ "columnsFrom": [
+ "giteaId"
+ ],
+ "columnsTo": [
+ "giteaId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_bitbucketId_bitbucket_bitbucketId_fk": {
+ "name": "application_bitbucketId_bitbucket_bitbucketId_fk",
+ "tableFrom": "application",
+ "tableTo": "bitbucket",
+ "columnsFrom": [
+ "bitbucketId"
+ ],
+ "columnsTo": [
+ "bitbucketId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_serverId_server_serverId_fk": {
+ "name": "application_serverId_server_serverId_fk",
+ "tableFrom": "application",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "application_buildServerId_server_serverId_fk": {
+ "name": "application_buildServerId_server_serverId_fk",
+ "tableFrom": "application",
+ "tableTo": "server",
+ "columnsFrom": [
+ "buildServerId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_buildRegistryId_registry_registryId_fk": {
+ "name": "application_buildRegistryId_registry_registryId_fk",
+ "tableFrom": "application",
+ "tableTo": "registry",
+ "columnsFrom": [
+ "buildRegistryId"
+ ],
+ "columnsTo": [
+ "registryId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "application_appName_unique": {
+ "name": "application_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.backup": {
+ "name": "backup",
+ "schema": "",
+ "columns": {
+ "backupId": {
+ "name": "backupId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "schedule": {
+ "name": "schedule",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "database": {
+ "name": "database",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "prefix": {
+ "name": "prefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "destinationId": {
+ "name": "destinationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "keepLatestCount": {
+ "name": "keepLatestCount",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "backupType": {
+ "name": "backupType",
+ "type": "backupType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'database'"
+ },
+ "databaseType": {
+ "name": "databaseType",
+ "type": "databaseType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "userId": {
+ "name": "userId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "backup_destinationId_destination_destinationId_fk": {
+ "name": "backup_destinationId_destination_destinationId_fk",
+ "tableFrom": "backup",
+ "tableTo": "destination",
+ "columnsFrom": [
+ "destinationId"
+ ],
+ "columnsTo": [
+ "destinationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_composeId_compose_composeId_fk": {
+ "name": "backup_composeId_compose_composeId_fk",
+ "tableFrom": "backup",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_postgresId_postgres_postgresId_fk": {
+ "name": "backup_postgresId_postgres_postgresId_fk",
+ "tableFrom": "backup",
+ "tableTo": "postgres",
+ "columnsFrom": [
+ "postgresId"
+ ],
+ "columnsTo": [
+ "postgresId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_mariadbId_mariadb_mariadbId_fk": {
+ "name": "backup_mariadbId_mariadb_mariadbId_fk",
+ "tableFrom": "backup",
+ "tableTo": "mariadb",
+ "columnsFrom": [
+ "mariadbId"
+ ],
+ "columnsTo": [
+ "mariadbId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_mysqlId_mysql_mysqlId_fk": {
+ "name": "backup_mysqlId_mysql_mysqlId_fk",
+ "tableFrom": "backup",
+ "tableTo": "mysql",
+ "columnsFrom": [
+ "mysqlId"
+ ],
+ "columnsTo": [
+ "mysqlId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_mongoId_mongo_mongoId_fk": {
+ "name": "backup_mongoId_mongo_mongoId_fk",
+ "tableFrom": "backup",
+ "tableTo": "mongo",
+ "columnsFrom": [
+ "mongoId"
+ ],
+ "columnsTo": [
+ "mongoId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_userId_user_id_fk": {
+ "name": "backup_userId_user_id_fk",
+ "tableFrom": "backup",
+ "tableTo": "user",
+ "columnsFrom": [
+ "userId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "backup_appName_unique": {
+ "name": "backup_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.bitbucket": {
+ "name": "bitbucket",
+ "schema": "",
+ "columns": {
+ "bitbucketId": {
+ "name": "bitbucketId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "bitbucketUsername": {
+ "name": "bitbucketUsername",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketEmail": {
+ "name": "bitbucketEmail",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "appPassword": {
+ "name": "appPassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "apiToken": {
+ "name": "apiToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketWorkspaceName": {
+ "name": "bitbucketWorkspaceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "bitbucket_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "bitbucket_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "bitbucket",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.certificate": {
+ "name": "certificate",
+ "schema": "",
+ "columns": {
+ "certificateId": {
+ "name": "certificateId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "certificateData": {
+ "name": "certificateData",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "privateKey": {
+ "name": "privateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "certificatePath": {
+ "name": "certificatePath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "autoRenew": {
+ "name": "autoRenew",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "certificate_organizationId_organization_id_fk": {
+ "name": "certificate_organizationId_organization_id_fk",
+ "tableFrom": "certificate",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "certificate_serverId_server_serverId_fk": {
+ "name": "certificate_serverId_server_serverId_fk",
+ "tableFrom": "certificate",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "certificate_certificatePath_unique": {
+ "name": "certificate_certificatePath_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "certificatePath"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.compose": {
+ "name": "compose",
+ "schema": "",
+ "columns": {
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeFile": {
+ "name": "composeFile",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "refreshToken": {
+ "name": "refreshToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "sourceType": {
+ "name": "sourceType",
+ "type": "sourceTypeCompose",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'github'"
+ },
+ "composeType": {
+ "name": "composeType",
+ "type": "composeType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'docker-compose'"
+ },
+ "repository": {
+ "name": "repository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "owner": {
+ "name": "owner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "branch": {
+ "name": "branch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "autoDeploy": {
+ "name": "autoDeploy",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabProjectId": {
+ "name": "gitlabProjectId",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabRepository": {
+ "name": "gitlabRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabOwner": {
+ "name": "gitlabOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabBranch": {
+ "name": "gitlabBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabPathNamespace": {
+ "name": "gitlabPathNamespace",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketRepository": {
+ "name": "bitbucketRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketOwner": {
+ "name": "bitbucketOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketBranch": {
+ "name": "bitbucketBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaRepository": {
+ "name": "giteaRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaOwner": {
+ "name": "giteaOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaBranch": {
+ "name": "giteaBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitUrl": {
+ "name": "customGitUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitBranch": {
+ "name": "customGitBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitSSHKeyId": {
+ "name": "customGitSSHKeyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "enableSubmodules": {
+ "name": "enableSubmodules",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "composePath": {
+ "name": "composePath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'./docker-compose.yml'"
+ },
+ "suffix": {
+ "name": "suffix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "randomize": {
+ "name": "randomize",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "isolatedDeployment": {
+ "name": "isolatedDeployment",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "isolatedDeploymentsVolume": {
+ "name": "isolatedDeploymentsVolume",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "triggerType": {
+ "name": "triggerType",
+ "type": "triggerType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'push'"
+ },
+ "composeStatus": {
+ "name": "composeStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "watchPaths": {
+ "name": "watchPaths",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubId": {
+ "name": "githubId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabId": {
+ "name": "gitlabId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketId": {
+ "name": "bitbucketId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaId": {
+ "name": "giteaId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk": {
+ "name": "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk",
+ "tableFrom": "compose",
+ "tableTo": "ssh-key",
+ "columnsFrom": [
+ "customGitSSHKeyId"
+ ],
+ "columnsTo": [
+ "sshKeyId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_environmentId_environment_environmentId_fk": {
+ "name": "compose_environmentId_environment_environmentId_fk",
+ "tableFrom": "compose",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "compose_githubId_github_githubId_fk": {
+ "name": "compose_githubId_github_githubId_fk",
+ "tableFrom": "compose",
+ "tableTo": "github",
+ "columnsFrom": [
+ "githubId"
+ ],
+ "columnsTo": [
+ "githubId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_gitlabId_gitlab_gitlabId_fk": {
+ "name": "compose_gitlabId_gitlab_gitlabId_fk",
+ "tableFrom": "compose",
+ "tableTo": "gitlab",
+ "columnsFrom": [
+ "gitlabId"
+ ],
+ "columnsTo": [
+ "gitlabId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_bitbucketId_bitbucket_bitbucketId_fk": {
+ "name": "compose_bitbucketId_bitbucket_bitbucketId_fk",
+ "tableFrom": "compose",
+ "tableTo": "bitbucket",
+ "columnsFrom": [
+ "bitbucketId"
+ ],
+ "columnsTo": [
+ "bitbucketId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_giteaId_gitea_giteaId_fk": {
+ "name": "compose_giteaId_gitea_giteaId_fk",
+ "tableFrom": "compose",
+ "tableTo": "gitea",
+ "columnsFrom": [
+ "giteaId"
+ ],
+ "columnsTo": [
+ "giteaId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_serverId_server_serverId_fk": {
+ "name": "compose_serverId_server_serverId_fk",
+ "tableFrom": "compose",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.deployment": {
+ "name": "deployment",
+ "schema": "",
+ "columns": {
+ "deploymentId": {
+ "name": "deploymentId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "title": {
+ "name": "title",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "status": {
+ "name": "status",
+ "type": "deploymentStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'running'"
+ },
+ "logPath": {
+ "name": "logPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pid": {
+ "name": "pid",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "isPreviewDeployment": {
+ "name": "isPreviewDeployment",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "previewDeploymentId": {
+ "name": "previewDeploymentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "startedAt": {
+ "name": "startedAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "finishedAt": {
+ "name": "finishedAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "errorMessage": {
+ "name": "errorMessage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scheduleId": {
+ "name": "scheduleId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "backupId": {
+ "name": "backupId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackId": {
+ "name": "rollbackId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "volumeBackupId": {
+ "name": "volumeBackupId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildServerId": {
+ "name": "buildServerId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "deployment_applicationId_application_applicationId_fk": {
+ "name": "deployment_applicationId_application_applicationId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_composeId_compose_composeId_fk": {
+ "name": "deployment_composeId_compose_composeId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_serverId_server_serverId_fk": {
+ "name": "deployment_serverId_server_serverId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_previewDeploymentId_preview_deployments_previewDeploymentId_fk": {
+ "name": "deployment_previewDeploymentId_preview_deployments_previewDeploymentId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "preview_deployments",
+ "columnsFrom": [
+ "previewDeploymentId"
+ ],
+ "columnsTo": [
+ "previewDeploymentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_scheduleId_schedule_scheduleId_fk": {
+ "name": "deployment_scheduleId_schedule_scheduleId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "schedule",
+ "columnsFrom": [
+ "scheduleId"
+ ],
+ "columnsTo": [
+ "scheduleId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_backupId_backup_backupId_fk": {
+ "name": "deployment_backupId_backup_backupId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "backup",
+ "columnsFrom": [
+ "backupId"
+ ],
+ "columnsTo": [
+ "backupId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_rollbackId_rollback_rollbackId_fk": {
+ "name": "deployment_rollbackId_rollback_rollbackId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "rollback",
+ "columnsFrom": [
+ "rollbackId"
+ ],
+ "columnsTo": [
+ "rollbackId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_volumeBackupId_volume_backup_volumeBackupId_fk": {
+ "name": "deployment_volumeBackupId_volume_backup_volumeBackupId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "volume_backup",
+ "columnsFrom": [
+ "volumeBackupId"
+ ],
+ "columnsTo": [
+ "volumeBackupId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_buildServerId_server_serverId_fk": {
+ "name": "deployment_buildServerId_server_serverId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "server",
+ "columnsFrom": [
+ "buildServerId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.destination": {
+ "name": "destination",
+ "schema": "",
+ "columns": {
+ "destinationId": {
+ "name": "destinationId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "provider": {
+ "name": "provider",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "accessKey": {
+ "name": "accessKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "secretAccessKey": {
+ "name": "secretAccessKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "bucket": {
+ "name": "bucket",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "region": {
+ "name": "region",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "endpoint": {
+ "name": "endpoint",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "destination_organizationId_organization_id_fk": {
+ "name": "destination_organizationId_organization_id_fk",
+ "tableFrom": "destination",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.domain": {
+ "name": "domain",
+ "schema": "",
+ "columns": {
+ "domainId": {
+ "name": "domainId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "host": {
+ "name": "host",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "https": {
+ "name": "https",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "port": {
+ "name": "port",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false,
+ "default": 3000
+ },
+ "path": {
+ "name": "path",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "domainType": {
+ "name": "domainType",
+ "type": "domainType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'application'"
+ },
+ "uniqueConfigKey": {
+ "name": "uniqueConfigKey",
+ "type": "serial",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customCertResolver": {
+ "name": "customCertResolver",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewDeploymentId": {
+ "name": "previewDeploymentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "certificateType": {
+ "name": "certificateType",
+ "type": "certificateType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'none'"
+ },
+ "internalPath": {
+ "name": "internalPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "stripPath": {
+ "name": "stripPath",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "domain_composeId_compose_composeId_fk": {
+ "name": "domain_composeId_compose_composeId_fk",
+ "tableFrom": "domain",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "domain_applicationId_application_applicationId_fk": {
+ "name": "domain_applicationId_application_applicationId_fk",
+ "tableFrom": "domain",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "domain_previewDeploymentId_preview_deployments_previewDeploymentId_fk": {
+ "name": "domain_previewDeploymentId_preview_deployments_previewDeploymentId_fk",
+ "tableFrom": "domain",
+ "tableTo": "preview_deployments",
+ "columnsFrom": [
+ "previewDeploymentId"
+ ],
+ "columnsTo": [
+ "previewDeploymentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.environment": {
+ "name": "environment",
+ "schema": "",
+ "columns": {
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "projectId": {
+ "name": "projectId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "environment_projectId_project_projectId_fk": {
+ "name": "environment_projectId_project_projectId_fk",
+ "tableFrom": "environment",
+ "tableTo": "project",
+ "columnsFrom": [
+ "projectId"
+ ],
+ "columnsTo": [
+ "projectId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.git_provider": {
+ "name": "git_provider",
+ "schema": "",
+ "columns": {
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "providerType": {
+ "name": "providerType",
+ "type": "gitProviderType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'github'"
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "userId": {
+ "name": "userId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "git_provider_organizationId_organization_id_fk": {
+ "name": "git_provider_organizationId_organization_id_fk",
+ "tableFrom": "git_provider",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "git_provider_userId_user_id_fk": {
+ "name": "git_provider_userId_user_id_fk",
+ "tableFrom": "git_provider",
+ "tableTo": "user",
+ "columnsFrom": [
+ "userId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.gitea": {
+ "name": "gitea",
+ "schema": "",
+ "columns": {
+ "giteaId": {
+ "name": "giteaId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "giteaUrl": {
+ "name": "giteaUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'https://gitea.com'"
+ },
+ "redirect_uri": {
+ "name": "redirect_uri",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "client_id": {
+ "name": "client_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "client_secret": {
+ "name": "client_secret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scopes": {
+ "name": "scopes",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'repo,repo:status,read:user,read:org'"
+ },
+ "last_authenticated_at": {
+ "name": "last_authenticated_at",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "gitea_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "gitea_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "gitea",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.github": {
+ "name": "github",
+ "schema": "",
+ "columns": {
+ "githubId": {
+ "name": "githubId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "githubAppName": {
+ "name": "githubAppName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubAppId": {
+ "name": "githubAppId",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubClientId": {
+ "name": "githubClientId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubClientSecret": {
+ "name": "githubClientSecret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubInstallationId": {
+ "name": "githubInstallationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubPrivateKey": {
+ "name": "githubPrivateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubWebhookSecret": {
+ "name": "githubWebhookSecret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "github_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "github_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "github",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.gitlab": {
+ "name": "gitlab",
+ "schema": "",
+ "columns": {
+ "gitlabId": {
+ "name": "gitlabId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "gitlabUrl": {
+ "name": "gitlabUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'https://gitlab.com'"
+ },
+ "application_id": {
+ "name": "application_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "redirect_uri": {
+ "name": "redirect_uri",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "secret": {
+ "name": "secret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "group_name": {
+ "name": "group_name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "gitlab_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "gitlab_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "gitlab",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mariadb": {
+ "name": "mariadb",
+ "schema": "",
+ "columns": {
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "databaseName": {
+ "name": "databaseName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "rootPassword": {
+ "name": "rootPassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mariadb_environmentId_environment_environmentId_fk": {
+ "name": "mariadb_environmentId_environment_environmentId_fk",
+ "tableFrom": "mariadb",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mariadb_serverId_server_serverId_fk": {
+ "name": "mariadb_serverId_server_serverId_fk",
+ "tableFrom": "mariadb",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "mariadb_appName_unique": {
+ "name": "mariadb_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mongo": {
+ "name": "mongo",
+ "schema": "",
+ "columns": {
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicaSets": {
+ "name": "replicaSets",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mongo_environmentId_environment_environmentId_fk": {
+ "name": "mongo_environmentId_environment_environmentId_fk",
+ "tableFrom": "mongo",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mongo_serverId_server_serverId_fk": {
+ "name": "mongo_serverId_server_serverId_fk",
+ "tableFrom": "mongo",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "mongo_appName_unique": {
+ "name": "mongo_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mount": {
+ "name": "mount",
+ "schema": "",
+ "columns": {
+ "mountId": {
+ "name": "mountId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "type": {
+ "name": "type",
+ "type": "mountType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "hostPath": {
+ "name": "hostPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "volumeName": {
+ "name": "volumeName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "filePath": {
+ "name": "filePath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "content": {
+ "name": "content",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serviceType": {
+ "name": "serviceType",
+ "type": "serviceType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'application'"
+ },
+ "mountPath": {
+ "name": "mountPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "redisId": {
+ "name": "redisId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mount_applicationId_application_applicationId_fk": {
+ "name": "mount_applicationId_application_applicationId_fk",
+ "tableFrom": "mount",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_postgresId_postgres_postgresId_fk": {
+ "name": "mount_postgresId_postgres_postgresId_fk",
+ "tableFrom": "mount",
+ "tableTo": "postgres",
+ "columnsFrom": [
+ "postgresId"
+ ],
+ "columnsTo": [
+ "postgresId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_mariadbId_mariadb_mariadbId_fk": {
+ "name": "mount_mariadbId_mariadb_mariadbId_fk",
+ "tableFrom": "mount",
+ "tableTo": "mariadb",
+ "columnsFrom": [
+ "mariadbId"
+ ],
+ "columnsTo": [
+ "mariadbId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_mongoId_mongo_mongoId_fk": {
+ "name": "mount_mongoId_mongo_mongoId_fk",
+ "tableFrom": "mount",
+ "tableTo": "mongo",
+ "columnsFrom": [
+ "mongoId"
+ ],
+ "columnsTo": [
+ "mongoId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_mysqlId_mysql_mysqlId_fk": {
+ "name": "mount_mysqlId_mysql_mysqlId_fk",
+ "tableFrom": "mount",
+ "tableTo": "mysql",
+ "columnsFrom": [
+ "mysqlId"
+ ],
+ "columnsTo": [
+ "mysqlId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_redisId_redis_redisId_fk": {
+ "name": "mount_redisId_redis_redisId_fk",
+ "tableFrom": "mount",
+ "tableTo": "redis",
+ "columnsFrom": [
+ "redisId"
+ ],
+ "columnsTo": [
+ "redisId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_composeId_compose_composeId_fk": {
+ "name": "mount_composeId_compose_composeId_fk",
+ "tableFrom": "mount",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mysql": {
+ "name": "mysql",
+ "schema": "",
+ "columns": {
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "databaseName": {
+ "name": "databaseName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "rootPassword": {
+ "name": "rootPassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mysql_environmentId_environment_environmentId_fk": {
+ "name": "mysql_environmentId_environment_environmentId_fk",
+ "tableFrom": "mysql",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mysql_serverId_server_serverId_fk": {
+ "name": "mysql_serverId_server_serverId_fk",
+ "tableFrom": "mysql",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "mysql_appName_unique": {
+ "name": "mysql_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.discord": {
+ "name": "discord",
+ "schema": "",
+ "columns": {
+ "discordId": {
+ "name": "discordId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "webhookUrl": {
+ "name": "webhookUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "decoration": {
+ "name": "decoration",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.email": {
+ "name": "email",
+ "schema": "",
+ "columns": {
+ "emailId": {
+ "name": "emailId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "smtpServer": {
+ "name": "smtpServer",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "smtpPort": {
+ "name": "smtpPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "fromAddress": {
+ "name": "fromAddress",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "toAddress": {
+ "name": "toAddress",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.gotify": {
+ "name": "gotify",
+ "schema": "",
+ "columns": {
+ "gotifyId": {
+ "name": "gotifyId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "serverUrl": {
+ "name": "serverUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appToken": {
+ "name": "appToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "priority": {
+ "name": "priority",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 5
+ },
+ "decoration": {
+ "name": "decoration",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.lark": {
+ "name": "lark",
+ "schema": "",
+ "columns": {
+ "larkId": {
+ "name": "larkId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "webhookUrl": {
+ "name": "webhookUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.notification": {
+ "name": "notification",
+ "schema": "",
+ "columns": {
+ "notificationId": {
+ "name": "notificationId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appDeploy": {
+ "name": "appDeploy",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "appBuildError": {
+ "name": "appBuildError",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "databaseBackup": {
+ "name": "databaseBackup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "dokployRestart": {
+ "name": "dokployRestart",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "dockerCleanup": {
+ "name": "dockerCleanup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "serverThreshold": {
+ "name": "serverThreshold",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "notificationType": {
+ "name": "notificationType",
+ "type": "notificationType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "slackId": {
+ "name": "slackId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "telegramId": {
+ "name": "telegramId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "discordId": {
+ "name": "discordId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "emailId": {
+ "name": "emailId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gotifyId": {
+ "name": "gotifyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ntfyId": {
+ "name": "ntfyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "larkId": {
+ "name": "larkId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "notification_slackId_slack_slackId_fk": {
+ "name": "notification_slackId_slack_slackId_fk",
+ "tableFrom": "notification",
+ "tableTo": "slack",
+ "columnsFrom": [
+ "slackId"
+ ],
+ "columnsTo": [
+ "slackId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_telegramId_telegram_telegramId_fk": {
+ "name": "notification_telegramId_telegram_telegramId_fk",
+ "tableFrom": "notification",
+ "tableTo": "telegram",
+ "columnsFrom": [
+ "telegramId"
+ ],
+ "columnsTo": [
+ "telegramId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_discordId_discord_discordId_fk": {
+ "name": "notification_discordId_discord_discordId_fk",
+ "tableFrom": "notification",
+ "tableTo": "discord",
+ "columnsFrom": [
+ "discordId"
+ ],
+ "columnsTo": [
+ "discordId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_emailId_email_emailId_fk": {
+ "name": "notification_emailId_email_emailId_fk",
+ "tableFrom": "notification",
+ "tableTo": "email",
+ "columnsFrom": [
+ "emailId"
+ ],
+ "columnsTo": [
+ "emailId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_gotifyId_gotify_gotifyId_fk": {
+ "name": "notification_gotifyId_gotify_gotifyId_fk",
+ "tableFrom": "notification",
+ "tableTo": "gotify",
+ "columnsFrom": [
+ "gotifyId"
+ ],
+ "columnsTo": [
+ "gotifyId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_ntfyId_ntfy_ntfyId_fk": {
+ "name": "notification_ntfyId_ntfy_ntfyId_fk",
+ "tableFrom": "notification",
+ "tableTo": "ntfy",
+ "columnsFrom": [
+ "ntfyId"
+ ],
+ "columnsTo": [
+ "ntfyId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_larkId_lark_larkId_fk": {
+ "name": "notification_larkId_lark_larkId_fk",
+ "tableFrom": "notification",
+ "tableTo": "lark",
+ "columnsFrom": [
+ "larkId"
+ ],
+ "columnsTo": [
+ "larkId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_organizationId_organization_id_fk": {
+ "name": "notification_organizationId_organization_id_fk",
+ "tableFrom": "notification",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ntfy": {
+ "name": "ntfy",
+ "schema": "",
+ "columns": {
+ "ntfyId": {
+ "name": "ntfyId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "serverUrl": {
+ "name": "serverUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "topic": {
+ "name": "topic",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "accessToken": {
+ "name": "accessToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "priority": {
+ "name": "priority",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 3
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.slack": {
+ "name": "slack",
+ "schema": "",
+ "columns": {
+ "slackId": {
+ "name": "slackId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "webhookUrl": {
+ "name": "webhookUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "channel": {
+ "name": "channel",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.telegram": {
+ "name": "telegram",
+ "schema": "",
+ "columns": {
+ "telegramId": {
+ "name": "telegramId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "botToken": {
+ "name": "botToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "chatId": {
+ "name": "chatId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "messageThreadId": {
+ "name": "messageThreadId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.port": {
+ "name": "port",
+ "schema": "",
+ "columns": {
+ "portId": {
+ "name": "portId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "publishedPort": {
+ "name": "publishedPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "publishMode": {
+ "name": "publishMode",
+ "type": "publishModeType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'host'"
+ },
+ "targetPort": {
+ "name": "targetPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "protocol": {
+ "name": "protocol",
+ "type": "protocolType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "port_applicationId_application_applicationId_fk": {
+ "name": "port_applicationId_application_applicationId_fk",
+ "tableFrom": "port",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.postgres": {
+ "name": "postgres",
+ "schema": "",
+ "columns": {
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseName": {
+ "name": "databaseName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "postgres_environmentId_environment_environmentId_fk": {
+ "name": "postgres_environmentId_environment_environmentId_fk",
+ "tableFrom": "postgres",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "postgres_serverId_server_serverId_fk": {
+ "name": "postgres_serverId_server_serverId_fk",
+ "tableFrom": "postgres",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "postgres_appName_unique": {
+ "name": "postgres_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.preview_deployments": {
+ "name": "preview_deployments",
+ "schema": "",
+ "columns": {
+ "previewDeploymentId": {
+ "name": "previewDeploymentId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "branch": {
+ "name": "branch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestId": {
+ "name": "pullRequestId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestNumber": {
+ "name": "pullRequestNumber",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestURL": {
+ "name": "pullRequestURL",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestTitle": {
+ "name": "pullRequestTitle",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestCommentId": {
+ "name": "pullRequestCommentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "previewStatus": {
+ "name": "previewStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "domainId": {
+ "name": "domainId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expiresAt": {
+ "name": "expiresAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "preview_deployments_applicationId_application_applicationId_fk": {
+ "name": "preview_deployments_applicationId_application_applicationId_fk",
+ "tableFrom": "preview_deployments",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "preview_deployments_domainId_domain_domainId_fk": {
+ "name": "preview_deployments_domainId_domain_domainId_fk",
+ "tableFrom": "preview_deployments",
+ "tableTo": "domain",
+ "columnsFrom": [
+ "domainId"
+ ],
+ "columnsTo": [
+ "domainId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "preview_deployments_appName_unique": {
+ "name": "preview_deployments_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.project": {
+ "name": "project",
+ "schema": "",
+ "columns": {
+ "projectId": {
+ "name": "projectId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "project_organizationId_organization_id_fk": {
+ "name": "project_organizationId_organization_id_fk",
+ "tableFrom": "project",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.redirect": {
+ "name": "redirect",
+ "schema": "",
+ "columns": {
+ "redirectId": {
+ "name": "redirectId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "regex": {
+ "name": "regex",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "replacement": {
+ "name": "replacement",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "permanent": {
+ "name": "permanent",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "uniqueConfigKey": {
+ "name": "uniqueConfigKey",
+ "type": "serial",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "redirect_applicationId_application_applicationId_fk": {
+ "name": "redirect_applicationId_application_applicationId_fk",
+ "tableFrom": "redirect",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.redis": {
+ "name": "redis",
+ "schema": "",
+ "columns": {
+ "redisId": {
+ "name": "redisId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "redis_environmentId_environment_environmentId_fk": {
+ "name": "redis_environmentId_environment_environmentId_fk",
+ "tableFrom": "redis",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "redis_serverId_server_serverId_fk": {
+ "name": "redis_serverId_server_serverId_fk",
+ "tableFrom": "redis",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "redis_appName_unique": {
+ "name": "redis_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.registry": {
+ "name": "registry",
+ "schema": "",
+ "columns": {
+ "registryId": {
+ "name": "registryId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "registryName": {
+ "name": "registryName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "imagePrefix": {
+ "name": "imagePrefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "registryUrl": {
+ "name": "registryUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "selfHosted": {
+ "name": "selfHosted",
+ "type": "RegistryType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'cloud'"
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "registry_organizationId_organization_id_fk": {
+ "name": "registry_organizationId_organization_id_fk",
+ "tableFrom": "registry",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.rollback": {
+ "name": "rollback",
+ "schema": "",
+ "columns": {
+ "rollbackId": {
+ "name": "rollbackId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "deploymentId": {
+ "name": "deploymentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "version": {
+ "name": "version",
+ "type": "serial",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "image": {
+ "name": "image",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "fullContext": {
+ "name": "fullContext",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "rollback_deploymentId_deployment_deploymentId_fk": {
+ "name": "rollback_deploymentId_deployment_deploymentId_fk",
+ "tableFrom": "rollback",
+ "tableTo": "deployment",
+ "columnsFrom": [
+ "deploymentId"
+ ],
+ "columnsTo": [
+ "deploymentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.schedule": {
+ "name": "schedule",
+ "schema": "",
+ "columns": {
+ "scheduleId": {
+ "name": "scheduleId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "cronExpression": {
+ "name": "cronExpression",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "shellType": {
+ "name": "shellType",
+ "type": "shellType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'bash'"
+ },
+ "scheduleType": {
+ "name": "scheduleType",
+ "type": "scheduleType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'application'"
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "script": {
+ "name": "script",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "userId": {
+ "name": "userId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "schedule_applicationId_application_applicationId_fk": {
+ "name": "schedule_applicationId_application_applicationId_fk",
+ "tableFrom": "schedule",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "schedule_composeId_compose_composeId_fk": {
+ "name": "schedule_composeId_compose_composeId_fk",
+ "tableFrom": "schedule",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "schedule_serverId_server_serverId_fk": {
+ "name": "schedule_serverId_server_serverId_fk",
+ "tableFrom": "schedule",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "schedule_userId_user_id_fk": {
+ "name": "schedule_userId_user_id_fk",
+ "tableFrom": "schedule",
+ "tableTo": "user",
+ "columnsFrom": [
+ "userId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.security": {
+ "name": "security",
+ "schema": "",
+ "columns": {
+ "securityId": {
+ "name": "securityId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "security_applicationId_application_applicationId_fk": {
+ "name": "security_applicationId_application_applicationId_fk",
+ "tableFrom": "security",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "security_username_applicationId_unique": {
+ "name": "security_username_applicationId_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "username",
+ "applicationId"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.server": {
+ "name": "server",
+ "schema": "",
+ "columns": {
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ipAddress": {
+ "name": "ipAddress",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "port": {
+ "name": "port",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'root'"
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "enableDockerCleanup": {
+ "name": "enableDockerCleanup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverStatus": {
+ "name": "serverStatus",
+ "type": "serverStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'active'"
+ },
+ "serverType": {
+ "name": "serverType",
+ "type": "serverType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'deploy'"
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "sshKeyId": {
+ "name": "sshKeyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "metricsConfig": {
+ "name": "metricsConfig",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'{\"server\":{\"type\":\"Remote\",\"refreshRate\":60,\"port\":4500,\"token\":\"\",\"urlCallback\":\"\",\"cronJob\":\"\",\"retentionDays\":2,\"thresholds\":{\"cpu\":0,\"memory\":0}},\"containers\":{\"refreshRate\":60,\"services\":{\"include\":[],\"exclude\":[]}}}'::jsonb"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "server_organizationId_organization_id_fk": {
+ "name": "server_organizationId_organization_id_fk",
+ "tableFrom": "server",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "server_sshKeyId_ssh-key_sshKeyId_fk": {
+ "name": "server_sshKeyId_ssh-key_sshKeyId_fk",
+ "tableFrom": "server",
+ "tableTo": "ssh-key",
+ "columnsFrom": [
+ "sshKeyId"
+ ],
+ "columnsTo": [
+ "sshKeyId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.session_temp": {
+ "name": "session_temp",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "token": {
+ "name": "token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "ip_address": {
+ "name": "ip_address",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_agent": {
+ "name": "user_agent",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "impersonated_by": {
+ "name": "impersonated_by",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "active_organization_id": {
+ "name": "active_organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "session_temp_user_id_user_id_fk": {
+ "name": "session_temp_user_id_user_id_fk",
+ "tableFrom": "session_temp",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "session_temp_token_unique": {
+ "name": "session_temp_token_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "token"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ssh-key": {
+ "name": "ssh-key",
+ "schema": "",
+ "columns": {
+ "sshKeyId": {
+ "name": "sshKeyId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "privateKey": {
+ "name": "privateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "publicKey": {
+ "name": "publicKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "lastUsedAt": {
+ "name": "lastUsedAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "ssh-key_organizationId_organization_id_fk": {
+ "name": "ssh-key_organizationId_organization_id_fk",
+ "tableFrom": "ssh-key",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.user": {
+ "name": "user",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "isRegistered": {
+ "name": "isRegistered",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "expirationDate": {
+ "name": "expirationDate",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "two_factor_enabled": {
+ "name": "two_factor_enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email_verified": {
+ "name": "email_verified",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "image": {
+ "name": "image",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "banned": {
+ "name": "banned",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ban_reason": {
+ "name": "ban_reason",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ban_expires": {
+ "name": "ban_expires",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverIp": {
+ "name": "serverIp",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "certificateType": {
+ "name": "certificateType",
+ "type": "certificateType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'none'"
+ },
+ "https": {
+ "name": "https",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "host": {
+ "name": "host",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "letsEncryptEmail": {
+ "name": "letsEncryptEmail",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "sshPrivateKey": {
+ "name": "sshPrivateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enableDockerCleanup": {
+ "name": "enableDockerCleanup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "logCleanupCron": {
+ "name": "logCleanupCron",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'0 0 * * *'"
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'user'"
+ },
+ "enablePaidFeatures": {
+ "name": "enablePaidFeatures",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "allowImpersonation": {
+ "name": "allowImpersonation",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "metricsConfig": {
+ "name": "metricsConfig",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'{\"server\":{\"type\":\"Dokploy\",\"refreshRate\":60,\"port\":4500,\"token\":\"\",\"retentionDays\":2,\"cronJob\":\"\",\"urlCallback\":\"\",\"thresholds\":{\"cpu\":0,\"memory\":0}},\"containers\":{\"refreshRate\":60,\"services\":{\"include\":[],\"exclude\":[]}}}'::jsonb"
+ },
+ "cleanupCacheApplications": {
+ "name": "cleanupCacheApplications",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "cleanupCacheOnPreviews": {
+ "name": "cleanupCacheOnPreviews",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "cleanupCacheOnCompose": {
+ "name": "cleanupCacheOnCompose",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "stripeCustomerId": {
+ "name": "stripeCustomerId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stripeSubscriptionId": {
+ "name": "stripeSubscriptionId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serversQuantity": {
+ "name": "serversQuantity",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 0
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "user_email_unique": {
+ "name": "user_email_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "email"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.volume_backup": {
+ "name": "volume_backup",
+ "schema": "",
+ "columns": {
+ "volumeBackupId": {
+ "name": "volumeBackupId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "volumeName": {
+ "name": "volumeName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "prefix": {
+ "name": "prefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceType": {
+ "name": "serviceType",
+ "type": "serviceType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'application'"
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "turnOff": {
+ "name": "turnOff",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "cronExpression": {
+ "name": "cronExpression",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "keepLatestCount": {
+ "name": "keepLatestCount",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "redisId": {
+ "name": "redisId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "destinationId": {
+ "name": "destinationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "volume_backup_applicationId_application_applicationId_fk": {
+ "name": "volume_backup_applicationId_application_applicationId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_postgresId_postgres_postgresId_fk": {
+ "name": "volume_backup_postgresId_postgres_postgresId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "postgres",
+ "columnsFrom": [
+ "postgresId"
+ ],
+ "columnsTo": [
+ "postgresId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_mariadbId_mariadb_mariadbId_fk": {
+ "name": "volume_backup_mariadbId_mariadb_mariadbId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "mariadb",
+ "columnsFrom": [
+ "mariadbId"
+ ],
+ "columnsTo": [
+ "mariadbId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_mongoId_mongo_mongoId_fk": {
+ "name": "volume_backup_mongoId_mongo_mongoId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "mongo",
+ "columnsFrom": [
+ "mongoId"
+ ],
+ "columnsTo": [
+ "mongoId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_mysqlId_mysql_mysqlId_fk": {
+ "name": "volume_backup_mysqlId_mysql_mysqlId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "mysql",
+ "columnsFrom": [
+ "mysqlId"
+ ],
+ "columnsTo": [
+ "mysqlId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_redisId_redis_redisId_fk": {
+ "name": "volume_backup_redisId_redis_redisId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "redis",
+ "columnsFrom": [
+ "redisId"
+ ],
+ "columnsTo": [
+ "redisId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_composeId_compose_composeId_fk": {
+ "name": "volume_backup_composeId_compose_composeId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_destinationId_destination_destinationId_fk": {
+ "name": "volume_backup_destinationId_destination_destinationId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "destination",
+ "columnsFrom": [
+ "destinationId"
+ ],
+ "columnsTo": [
+ "destinationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ }
+ },
+ "enums": {
+ "public.buildType": {
+ "name": "buildType",
+ "schema": "public",
+ "values": [
+ "dockerfile",
+ "heroku_buildpacks",
+ "paketo_buildpacks",
+ "nixpacks",
+ "static",
+ "railpack"
+ ]
+ },
+ "public.sourceType": {
+ "name": "sourceType",
+ "schema": "public",
+ "values": [
+ "docker",
+ "git",
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "drop"
+ ]
+ },
+ "public.backupType": {
+ "name": "backupType",
+ "schema": "public",
+ "values": [
+ "database",
+ "compose"
+ ]
+ },
+ "public.databaseType": {
+ "name": "databaseType",
+ "schema": "public",
+ "values": [
+ "postgres",
+ "mariadb",
+ "mysql",
+ "mongo",
+ "web-server"
+ ]
+ },
+ "public.composeType": {
+ "name": "composeType",
+ "schema": "public",
+ "values": [
+ "docker-compose",
+ "stack"
+ ]
+ },
+ "public.sourceTypeCompose": {
+ "name": "sourceTypeCompose",
+ "schema": "public",
+ "values": [
+ "git",
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "raw"
+ ]
+ },
+ "public.deploymentStatus": {
+ "name": "deploymentStatus",
+ "schema": "public",
+ "values": [
+ "running",
+ "done",
+ "error",
+ "cancelled"
+ ]
+ },
+ "public.domainType": {
+ "name": "domainType",
+ "schema": "public",
+ "values": [
+ "compose",
+ "application",
+ "preview"
+ ]
+ },
+ "public.gitProviderType": {
+ "name": "gitProviderType",
+ "schema": "public",
+ "values": [
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea"
+ ]
+ },
+ "public.mountType": {
+ "name": "mountType",
+ "schema": "public",
+ "values": [
+ "bind",
+ "volume",
+ "file"
+ ]
+ },
+ "public.serviceType": {
+ "name": "serviceType",
+ "schema": "public",
+ "values": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ]
+ },
+ "public.notificationType": {
+ "name": "notificationType",
+ "schema": "public",
+ "values": [
+ "slack",
+ "telegram",
+ "discord",
+ "email",
+ "gotify",
+ "ntfy",
+ "lark"
+ ]
+ },
+ "public.protocolType": {
+ "name": "protocolType",
+ "schema": "public",
+ "values": [
+ "tcp",
+ "udp"
+ ]
+ },
+ "public.publishModeType": {
+ "name": "publishModeType",
+ "schema": "public",
+ "values": [
+ "ingress",
+ "host"
+ ]
+ },
+ "public.RegistryType": {
+ "name": "RegistryType",
+ "schema": "public",
+ "values": [
+ "selfHosted",
+ "cloud"
+ ]
+ },
+ "public.scheduleType": {
+ "name": "scheduleType",
+ "schema": "public",
+ "values": [
+ "application",
+ "compose",
+ "server",
+ "dokploy-server"
+ ]
+ },
+ "public.shellType": {
+ "name": "shellType",
+ "schema": "public",
+ "values": [
+ "bash",
+ "sh"
+ ]
+ },
+ "public.serverStatus": {
+ "name": "serverStatus",
+ "schema": "public",
+ "values": [
+ "active",
+ "inactive"
+ ]
+ },
+ "public.serverType": {
+ "name": "serverType",
+ "schema": "public",
+ "values": [
+ "deploy",
+ "build"
+ ]
+ },
+ "public.applicationStatus": {
+ "name": "applicationStatus",
+ "schema": "public",
+ "values": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "public.certificateType": {
+ "name": "certificateType",
+ "schema": "public",
+ "values": [
+ "letsencrypt",
+ "none",
+ "custom"
+ ]
+ },
+ "public.triggerType": {
+ "name": "triggerType",
+ "schema": "public",
+ "values": [
+ "push",
+ "tag"
+ ]
+ }
+ },
+ "schemas": {},
+ "sequences": {},
+ "roles": {},
+ "policies": {},
+ "views": {},
+ "_meta": {
+ "columns": {},
+ "schemas": {},
+ "tables": {}
+ }
+}
\ No newline at end of file
diff --git a/apps/dokploy/drizzle/meta/_journal.json b/apps/dokploy/drizzle/meta/_journal.json
index c5de7f141..1b6602bbf 100644
--- a/apps/dokploy/drizzle/meta/_journal.json
+++ b/apps/dokploy/drizzle/meta/_journal.json
@@ -869,6 +869,13 @@
"when": 1764472942038,
"tag": "0123_careless_odin",
"breakpoints": true
+ },
+ {
+ "idx": 124,
+ "version": "7",
+ "when": 1764474904317,
+ "tag": "0124_faulty_synch",
+ "breakpoints": true
}
]
}
\ No newline at end of file
diff --git a/packages/server/src/db/schema/application.ts b/packages/server/src/db/schema/application.ts
index a7bf83ad5..0bf36d40d 100644
--- a/packages/server/src/db/schema/application.ts
+++ b/packages/server/src/db/schema/application.ts
@@ -235,6 +235,7 @@ export const applicationsRelations = relations(
registry: one(registry, {
fields: [applications.registryId],
references: [registry.registryId],
+ relationName: "applicationRegistry",
}),
github: one(github, {
fields: [applications.githubId],
@@ -255,14 +256,17 @@ export const applicationsRelations = relations(
server: one(server, {
fields: [applications.serverId],
references: [server.serverId],
+ relationName: "applicationServer",
}),
buildServer: one(server, {
fields: [applications.buildServerId],
references: [server.serverId],
+ relationName: "applicationBuildServer",
}),
buildRegistry: one(registry, {
fields: [applications.buildRegistryId],
references: [registry.registryId],
+ relationName: "applicationBuildRegistry",
}),
previewDeployments: many(previewDeployments),
}),
diff --git a/packages/server/src/db/schema/deployment.ts b/packages/server/src/db/schema/deployment.ts
index d6b0ddbcc..b950703c8 100644
--- a/packages/server/src/db/schema/deployment.ts
+++ b/packages/server/src/db/schema/deployment.ts
@@ -70,6 +70,9 @@ export const deployments = pgTable("deployment", {
(): AnyPgColumn => volumeBackups.volumeBackupId,
{ onDelete: "cascade" },
),
+ buildServerId: text("buildServerId").references(() => server.serverId, {
+ onDelete: "cascade",
+ }),
});
export const deploymentsRelations = relations(deployments, ({ one }) => ({
@@ -84,6 +87,12 @@ export const deploymentsRelations = relations(deployments, ({ one }) => ({
server: one(server, {
fields: [deployments.serverId],
references: [server.serverId],
+ relationName: "deploymentServer",
+ }),
+ buildServer: one(server, {
+ fields: [deployments.buildServerId],
+ references: [server.serverId],
+ relationName: "deploymentBuildServer",
}),
previewDeployment: one(previewDeployments, {
fields: [deployments.previewDeploymentId],
@@ -115,6 +124,7 @@ const schema = createInsertSchema(deployments, {
composeId: z.string(),
description: z.string().optional(),
previewDeploymentId: z.string(),
+ buildServerId: z.string(),
});
export const apiCreateDeployment = schema
diff --git a/packages/server/src/db/schema/registry.ts b/packages/server/src/db/schema/registry.ts
index b18747095..6fe1d5285 100644
--- a/packages/server/src/db/schema/registry.ts
+++ b/packages/server/src/db/schema/registry.ts
@@ -33,7 +33,12 @@ export const registry = pgTable("registry", {
});
export const registryRelations = relations(registry, ({ many }) => ({
- applications: many(applications),
+ applications: many(applications, {
+ relationName: "applicationRegistry",
+ }),
+ buildApplications: many(applications, {
+ relationName: "applicationBuildRegistry",
+ }),
}));
const createSchema = createInsertSchema(registry, {
diff --git a/packages/server/src/db/schema/server.ts b/packages/server/src/db/schema/server.ts
index 317aa68ee..176f35948 100644
--- a/packages/server/src/db/schema/server.ts
+++ b/packages/server/src/db/schema/server.ts
@@ -99,12 +99,22 @@ export const server = pgTable("server", {
});
export const serverRelations = relations(server, ({ one, many }) => ({
- deployments: many(deployments),
+ deployments: many(deployments, {
+ relationName: "deploymentServer",
+ }),
+ buildDeployments: many(deployments, {
+ relationName: "deploymentBuildServer",
+ }),
sshKey: one(sshKeys, {
fields: [server.sshKeyId],
references: [sshKeys.sshKeyId],
}),
- applications: many(applications),
+ applications: many(applications, {
+ relationName: "applicationServer",
+ }),
+ buildApplications: many(applications, {
+ relationName: "applicationBuildServer",
+ }),
compose: many(compose),
redis: many(redis),
mariadb: many(mariadb),
diff --git a/packages/server/src/services/application.ts b/packages/server/src/services/application.ts
index 6ad90a93b..3bab17488 100644
--- a/packages/server/src/services/application.ts
+++ b/packages/server/src/services/application.ts
@@ -112,6 +112,7 @@ export const findApplicationById = async (applicationId: string) => {
gitea: true,
server: true,
previewDeployments: true,
+ buildRegistry: true,
},
});
if (!application) {
@@ -172,6 +173,7 @@ export const deployApplication = async ({
descriptionLog: string;
}) => {
const application = await findApplicationById(applicationId);
+ const serverId = application.buildServerId || application.serverId;
const buildLink = `${await getDokployUrl()}/dashboard/project/${application.environment.projectId}/environment/${application.environmentId}/services/application/${application.applicationId}?tab=deployments`;
const deployment = await createDeployment({
@@ -199,8 +201,8 @@ export const deployApplication = async ({
command += getBuildCommand(application);
const commandWithLog = `(${command}) >> ${deployment.logPath} 2>&1`;
- if (application.serverId) {
- await execAsyncRemote(application.serverId, commandWithLog);
+ if (serverId) {
+ await execAsyncRemote(serverId, commandWithLog);
} else {
await execAsync(commandWithLog);
}
@@ -240,8 +242,8 @@ export const deployApplication = async ({
}
command += `echo "\nError occurred ❌, check the logs for details." >> ${deployment.logPath};`;
- if (application.serverId) {
- await execAsyncRemote(application.serverId, command);
+ if (serverId) {
+ await execAsyncRemote(serverId, command);
} else {
await execAsync(command);
}
diff --git a/packages/server/src/services/deployment.ts b/packages/server/src/services/deployment.ts
index 41274bac9..6244ec8eb 100644
--- a/packages/server/src/services/deployment.ts
+++ b/packages/server/src/services/deployment.ts
@@ -80,7 +80,7 @@ export const createDeployment = async (
"application",
application.serverId,
);
- const serverId = application.serverId;
+ const serverId = application.buildServerId || application.serverId;
const { LOGS_PATH } = paths(!!serverId);
const formattedDateTime = format(new Date(), "yyyy-MM-dd:HH:mm:ss");
@@ -93,6 +93,7 @@ export const createDeployment = async (
const command = `
mkdir -p ${LOGS_PATH}/${application.appName};
echo "Initializing deployment" >> ${logFilePath};
+ echo "Building on ${serverId ? "Build Server" : "Dokploy Server"}" >> ${logFilePath};
`;
await execAsyncRemote(server.serverId, command);
@@ -112,6 +113,9 @@ export const createDeployment = async (
logPath: logFilePath,
description: deployment.description || "",
startedAt: new Date().toISOString(),
+ ...(application.buildServerId && {
+ buildServerId: application.buildServerId,
+ }),
})
.returning();
if (deploymentCreate.length === 0 || !deploymentCreate[0]) {
diff --git a/packages/server/src/utils/builders/index.ts b/packages/server/src/utils/builders/index.ts
index a70e874c2..c2ae25d2f 100644
--- a/packages/server/src/utils/builders/index.ts
+++ b/packages/server/src/utils/builders/index.ts
@@ -29,13 +29,14 @@ export type ApplicationNested = InferResultType<
redirects: true;
ports: true;
registry: true;
+ buildRegistry: true;
environment: { with: { project: true } };
}
>;
export const getBuildCommand = (application: ApplicationNested) => {
let command = "";
- const { buildType, registry } = application;
+ const { buildType } = application;
if (application.sourceType === "docker") {
return "";
@@ -60,7 +61,7 @@ export const getBuildCommand = (application: ApplicationNested) => {
command = getRailpackCommand(application);
break;
}
- if (registry) {
+ if (application.registry || application.buildRegistry) {
command += uploadImageRemoteCommand(application);
}
@@ -169,13 +170,15 @@ export const mechanizeDockerContainer = async (
ForceUpdate: inspect.Spec.TaskTemplate.ForceUpdate + 1,
},
});
- } catch {
+ } catch (error) {
+ console.log(error);
await docker.createService(settings);
}
};
const getImageName = (application: ApplicationNested) => {
- const { appName, sourceType, dockerImage, registry } = application;
+ const { appName, sourceType, dockerImage, registry, buildRegistry } =
+ application;
const imageName = `${appName}:latest`;
if (sourceType === "docker") {
return dockerImage || "ERROR-NO-IMAGE-PROVIDED";
@@ -188,12 +191,26 @@ const getImageName = (application: ApplicationNested) => {
: `${registryUrl ? `${registryUrl}/` : ""}${username}/${imageName}`;
return registryTag;
}
+ if (buildRegistry) {
+ const { registryUrl, imagePrefix, username } = buildRegistry;
+ const registryTag = imagePrefix
+ ? `${registryUrl ? `${registryUrl}/` : ""}${imagePrefix}/${imageName}`
+ : `${registryUrl ? `${registryUrl}/` : ""}${username}/${imageName}`;
+ return registryTag;
+ }
return imageName;
};
export const getAuthConfig = (application: ApplicationNested) => {
- const { registry, username, password, sourceType, registryUrl } = application;
+ const {
+ registry,
+ buildRegistry,
+ username,
+ password,
+ sourceType,
+ registryUrl,
+ } = application;
if (sourceType === "docker") {
if (username && password) {
@@ -209,6 +226,12 @@ export const getAuthConfig = (application: ApplicationNested) => {
username: registry.username,
serveraddress: registry.registryUrl,
};
+ } else if (buildRegistry) {
+ return {
+ password: buildRegistry.password,
+ username: buildRegistry.username,
+ serveraddress: buildRegistry.registryUrl,
+ };
}
return undefined;
diff --git a/packages/server/src/utils/cluster/upload.ts b/packages/server/src/utils/cluster/upload.ts
index 33be287e1..da8b99889 100644
--- a/packages/server/src/utils/cluster/upload.ts
+++ b/packages/server/src/utils/cluster/upload.ts
@@ -1,44 +1,77 @@
+import type { Registry } from "@dokploy/server/services/registry";
import type { ApplicationNested } from "../builders";
export const uploadImageRemoteCommand = (application: ApplicationNested) => {
const registry = application.registry;
+ const buildRegistry = application.buildRegistry;
- if (!registry) {
- throw new Error("Registry not found");
+ if (!registry && !buildRegistry) {
+ throw new Error("No registry found");
}
- const { registryUrl, imagePrefix, username } = registry;
const { appName } = application;
const imageName = `${appName}:latest`;
- const finalURL = registryUrl;
-
- // Build registry tag in correct format: registry.com/owner/image:tag
- const registryTag = imagePrefix
- ? `${registryUrl ? `${registryUrl}/` : ""}${imagePrefix}/${imageName}`
- : `${registryUrl ? `${registryUrl}/` : ""}${username}/${imageName}`;
-
+ const commands: string[] = [];
+ if (registry) {
+ const registryTag = getRegistryTag(registry, imageName);
+ if (registryTag) {
+ commands.push(`echo "📦 [Enabled Registry Swarm]"`);
+ commands.push(getRegistryCommands(registry, imageName, registryTag));
+ }
+ }
+ if (buildRegistry) {
+ const buildRegistryTag = getRegistryTag(buildRegistry, imageName);
+ if (buildRegistryTag) {
+ commands.push(`echo "🔑 [Enabled Build Registry]"`);
+ commands.push(
+ getRegistryCommands(buildRegistry, imageName, buildRegistryTag),
+ );
+ commands.push(
+ `echo "⚠️ INFO: After the build is finished, you need to wait a few seconds for the server to download the image and run the container."`,
+ );
+ commands.push(
+ `echo "📊 Check the Logs tab to see when the container starts running."`,
+ );
+ }
+ }
try {
- const command = `
- echo "📦 [Enabled Registry] Uploading image to '${registry.registryType}' | '${registryTag}'" ;
- echo "${registry.password}" | docker login ${finalURL} -u ${registry.username} --password-stdin || {
- echo "❌ DockerHub Failed" ;
- exit 1;
- }
- echo "✅ Registry Login Success" ;
- docker tag ${imageName} ${registryTag} || {
- echo "❌ Error tagging image" ;
- exit 1;
- }
- echo "✅ Image Tagged" ;
- docker push ${registryTag} || {
- echo "❌ Error pushing image" ;
- exit 1;
- }
- echo "✅ Image Pushed" ;
- `;
- return command;
+ return commands.join("\n");
} catch (error) {
throw error;
}
};
+const getRegistryTag = (registry: Registry | null, imageName: string) => {
+ if (!registry) {
+ return null;
+ }
+ const { registryUrl, imagePrefix, username } = registry;
+ return imagePrefix
+ ? `${registryUrl ? `${registryUrl}/` : ""}${imagePrefix}/${imageName}`
+ : `${registryUrl ? `${registryUrl}/` : ""}${username}/${imageName}`;
+};
+
+const getRegistryCommands = (
+ registry: Registry,
+ imageName: string,
+ registryTag: string,
+): string => {
+ return `
+echo "📦 [Enabled Registry] Uploading image to '${registry.registryType}' | '${registryTag}'" ;
+echo "${registry.password}" | docker login ${registry.registryUrl} -u ${registry.username} --password-stdin || {
+ echo "❌ DockerHub Failed" ;
+ exit 1;
+}
+echo "✅ Registry Login Success" ;
+docker tag ${imageName} ${registryTag} || {
+ echo "❌ Error tagging image" ;
+ exit 1;
+}
+echo "✅ Image Tagged" ;
+docker push ${registryTag} || {
+ echo "❌ Error pushing image" ;
+ exit 1;
+}
+ echo "✅ Image Pushed" ;
+`;
+};
From 3481da9b0e6b4a435b79a7c8d04c696ee787267e Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sat, 29 Nov 2025 23:05:26 -0600
Subject: [PATCH 22/74] feat: add build server properties to application models
and enhance server creation
- Introduced new properties (buildServerId, buildRegistryId, buildRegistry) in the ApplicationNested model for better build server configuration.
- Updated the CreateServer component to include a default server type for deployments.
- Improved logging messages for clarity during the image upload process.
---
apps/dokploy/__test__/drop/drop.test.ts | 3 +++
apps/dokploy/__test__/traefik/traefik.test.ts | 3 +++
.../settings/servers/welcome-stripe/create-server.tsx | 1 +
packages/server/src/utils/cluster/upload.ts | 2 +-
4 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/apps/dokploy/__test__/drop/drop.test.ts b/apps/dokploy/__test__/drop/drop.test.ts
index 112a4b25e..d22c1c4b0 100644
--- a/apps/dokploy/__test__/drop/drop.test.ts
+++ b/apps/dokploy/__test__/drop/drop.test.ts
@@ -30,6 +30,9 @@ const baseApp: ApplicationNested = {
previewLabels: [],
herokuVersion: "",
giteaBranch: "",
+ buildServerId: "",
+ buildRegistryId: "",
+ buildRegistry: null,
giteaBuildPath: "",
previewRequireCollaboratorPermissions: false,
giteaId: "",
diff --git a/apps/dokploy/__test__/traefik/traefik.test.ts b/apps/dokploy/__test__/traefik/traefik.test.ts
index 5b48b1248..f63175748 100644
--- a/apps/dokploy/__test__/traefik/traefik.test.ts
+++ b/apps/dokploy/__test__/traefik/traefik.test.ts
@@ -11,6 +11,9 @@ const baseApp: ApplicationNested = {
giteaRepository: "",
giteaOwner: "",
giteaBranch: "",
+ buildServerId: "",
+ buildRegistryId: "",
+ buildRegistry: null,
giteaBuildPath: "",
giteaId: "",
cleanCache: false,
diff --git a/apps/dokploy/components/dashboard/settings/servers/welcome-stripe/create-server.tsx b/apps/dokploy/components/dashboard/settings/servers/welcome-stripe/create-server.tsx
index 0141aca08..1f463a18f 100644
--- a/apps/dokploy/components/dashboard/settings/servers/welcome-stripe/create-server.tsx
+++ b/apps/dokploy/components/dashboard/settings/servers/welcome-stripe/create-server.tsx
@@ -95,6 +95,7 @@ export const CreateServer = ({ stepper }: Props) => {
port: data.port || 22,
username: data.username || "root",
sshKeyId: data.sshKeyId || "",
+ serverType: "deploy",
})
.then(async (_data) => {
toast.success("Server Created");
diff --git a/packages/server/src/utils/cluster/upload.ts b/packages/server/src/utils/cluster/upload.ts
index da8b99889..a57a771f3 100644
--- a/packages/server/src/utils/cluster/upload.ts
+++ b/packages/server/src/utils/cluster/upload.ts
@@ -28,7 +28,7 @@ export const uploadImageRemoteCommand = (application: ApplicationNested) => {
getRegistryCommands(buildRegistry, imageName, buildRegistryTag),
);
commands.push(
- `echo "⚠️ INFO: After the build is finished, you need to wait a few seconds for the server to download the image and run the container."`,
+ `echo "⚠️ INFO: After the build is finished, you need to wait a few seconds for the server to download the image and run the container."`,
);
commands.push(
`echo "📊 Check the Logs tab to see when the container starts running."`,
From 742ca00d3d2a75833c96fb7f1bf93941ffe30d52 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sat, 29 Nov 2025 23:09:43 -0600
Subject: [PATCH 23/74] refactor: remove obsolete SQL files and snapshots
related to server and application schema updates
- Deleted SQL files for cold server type, careless Odin application properties, and faulty synchronization constraints.
- Removed corresponding snapshot files to maintain consistency in the database schema versioning.
---
apps/dokploy/drizzle/0122_cold_ben_parker.sql | 2 -
apps/dokploy/drizzle/0123_careless_odin.sql | 4 -
apps/dokploy/drizzle/0124_faulty_synch.sql | 2 -
apps/dokploy/drizzle/meta/0122_snapshot.json | 6738 ----------------
apps/dokploy/drizzle/meta/0123_snapshot.json | 6776 ----------------
apps/dokploy/drizzle/meta/0124_snapshot.json | 6795 -----------------
apps/dokploy/drizzle/meta/_journal.json | 21 -
7 files changed, 20338 deletions(-)
delete mode 100644 apps/dokploy/drizzle/0122_cold_ben_parker.sql
delete mode 100644 apps/dokploy/drizzle/0123_careless_odin.sql
delete mode 100644 apps/dokploy/drizzle/0124_faulty_synch.sql
delete mode 100644 apps/dokploy/drizzle/meta/0122_snapshot.json
delete mode 100644 apps/dokploy/drizzle/meta/0123_snapshot.json
delete mode 100644 apps/dokploy/drizzle/meta/0124_snapshot.json
diff --git a/apps/dokploy/drizzle/0122_cold_ben_parker.sql b/apps/dokploy/drizzle/0122_cold_ben_parker.sql
deleted file mode 100644
index 21072234d..000000000
--- a/apps/dokploy/drizzle/0122_cold_ben_parker.sql
+++ /dev/null
@@ -1,2 +0,0 @@
-CREATE TYPE "public"."serverType" AS ENUM('deploy', 'build');--> statement-breakpoint
-ALTER TABLE "server" ADD COLUMN "serverType" "serverType" DEFAULT 'deploy' NOT NULL;
\ No newline at end of file
diff --git a/apps/dokploy/drizzle/0123_careless_odin.sql b/apps/dokploy/drizzle/0123_careless_odin.sql
deleted file mode 100644
index 581ba2f50..000000000
--- a/apps/dokploy/drizzle/0123_careless_odin.sql
+++ /dev/null
@@ -1,4 +0,0 @@
-ALTER TABLE "application" ADD COLUMN "buildServerId" text;--> statement-breakpoint
-ALTER TABLE "application" ADD COLUMN "buildRegistryId" text;--> statement-breakpoint
-ALTER TABLE "application" ADD CONSTRAINT "application_buildServerId_server_serverId_fk" FOREIGN KEY ("buildServerId") REFERENCES "public"."server"("serverId") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
-ALTER TABLE "application" ADD CONSTRAINT "application_buildRegistryId_registry_registryId_fk" FOREIGN KEY ("buildRegistryId") REFERENCES "public"."registry"("registryId") ON DELETE set null ON UPDATE no action;
\ No newline at end of file
diff --git a/apps/dokploy/drizzle/0124_faulty_synch.sql b/apps/dokploy/drizzle/0124_faulty_synch.sql
deleted file mode 100644
index 55371ffc4..000000000
--- a/apps/dokploy/drizzle/0124_faulty_synch.sql
+++ /dev/null
@@ -1,2 +0,0 @@
-ALTER TABLE "deployment" ADD COLUMN "buildServerId" text;--> statement-breakpoint
-ALTER TABLE "deployment" ADD CONSTRAINT "deployment_buildServerId_server_serverId_fk" FOREIGN KEY ("buildServerId") REFERENCES "public"."server"("serverId") ON DELETE cascade ON UPDATE no action;
\ No newline at end of file
diff --git a/apps/dokploy/drizzle/meta/0122_snapshot.json b/apps/dokploy/drizzle/meta/0122_snapshot.json
deleted file mode 100644
index 415776c26..000000000
--- a/apps/dokploy/drizzle/meta/0122_snapshot.json
+++ /dev/null
@@ -1,6738 +0,0 @@
-{
- "id": "2059301d-45f0-4a16-8481-6a5e54f678f5",
- "prevId": "6d1361fc-3a46-4016-b6db-42351c20393c",
- "version": "7",
- "dialect": "postgresql",
- "tables": {
- "public.account": {
- "name": "account",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "account_id": {
- "name": "account_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "provider_id": {
- "name": "provider_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "user_id": {
- "name": "user_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "access_token": {
- "name": "access_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "refresh_token": {
- "name": "refresh_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "id_token": {
- "name": "id_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "access_token_expires_at": {
- "name": "access_token_expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "refresh_token_expires_at": {
- "name": "refresh_token_expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "scope": {
- "name": "scope",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "password": {
- "name": "password",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "is2FAEnabled": {
- "name": "is2FAEnabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "resetPasswordToken": {
- "name": "resetPasswordToken",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "resetPasswordExpiresAt": {
- "name": "resetPasswordExpiresAt",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "confirmationToken": {
- "name": "confirmationToken",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "confirmationExpiresAt": {
- "name": "confirmationExpiresAt",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "account_user_id_user_id_fk": {
- "name": "account_user_id_user_id_fk",
- "tableFrom": "account",
- "tableTo": "user",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.apikey": {
- "name": "apikey",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "start": {
- "name": "start",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "prefix": {
- "name": "prefix",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "key": {
- "name": "key",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "user_id": {
- "name": "user_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "refill_interval": {
- "name": "refill_interval",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "refill_amount": {
- "name": "refill_amount",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "last_refill_at": {
- "name": "last_refill_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "enabled": {
- "name": "enabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "rate_limit_enabled": {
- "name": "rate_limit_enabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "rate_limit_time_window": {
- "name": "rate_limit_time_window",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "rate_limit_max": {
- "name": "rate_limit_max",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "request_count": {
- "name": "request_count",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "remaining": {
- "name": "remaining",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "last_request": {
- "name": "last_request",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "expires_at": {
- "name": "expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "permissions": {
- "name": "permissions",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "metadata": {
- "name": "metadata",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "apikey_user_id_user_id_fk": {
- "name": "apikey_user_id_user_id_fk",
- "tableFrom": "apikey",
- "tableTo": "user",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.invitation": {
- "name": "invitation",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "organization_id": {
- "name": "organization_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "email": {
- "name": "email",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "role": {
- "name": "role",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "status": {
- "name": "status",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "expires_at": {
- "name": "expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "inviter_id": {
- "name": "inviter_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "team_id": {
- "name": "team_id",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "invitation_organization_id_organization_id_fk": {
- "name": "invitation_organization_id_organization_id_fk",
- "tableFrom": "invitation",
- "tableTo": "organization",
- "columnsFrom": [
- "organization_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "invitation_inviter_id_user_id_fk": {
- "name": "invitation_inviter_id_user_id_fk",
- "tableFrom": "invitation",
- "tableTo": "user",
- "columnsFrom": [
- "inviter_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.member": {
- "name": "member",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "organization_id": {
- "name": "organization_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "user_id": {
- "name": "user_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "role": {
- "name": "role",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "team_id": {
- "name": "team_id",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "is_default": {
- "name": "is_default",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canCreateProjects": {
- "name": "canCreateProjects",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canAccessToSSHKeys": {
- "name": "canAccessToSSHKeys",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canCreateServices": {
- "name": "canCreateServices",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canDeleteProjects": {
- "name": "canDeleteProjects",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canDeleteServices": {
- "name": "canDeleteServices",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canAccessToDocker": {
- "name": "canAccessToDocker",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canAccessToAPI": {
- "name": "canAccessToAPI",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canAccessToGitProviders": {
- "name": "canAccessToGitProviders",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canAccessToTraefikFiles": {
- "name": "canAccessToTraefikFiles",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canDeleteEnvironments": {
- "name": "canDeleteEnvironments",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canCreateEnvironments": {
- "name": "canCreateEnvironments",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "accesedProjects": {
- "name": "accesedProjects",
- "type": "text[]",
- "primaryKey": false,
- "notNull": true,
- "default": "ARRAY[]::text[]"
- },
- "accessedEnvironments": {
- "name": "accessedEnvironments",
- "type": "text[]",
- "primaryKey": false,
- "notNull": true,
- "default": "ARRAY[]::text[]"
- },
- "accesedServices": {
- "name": "accesedServices",
- "type": "text[]",
- "primaryKey": false,
- "notNull": true,
- "default": "ARRAY[]::text[]"
- }
- },
- "indexes": {},
- "foreignKeys": {
- "member_organization_id_organization_id_fk": {
- "name": "member_organization_id_organization_id_fk",
- "tableFrom": "member",
- "tableTo": "organization",
- "columnsFrom": [
- "organization_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "member_user_id_user_id_fk": {
- "name": "member_user_id_user_id_fk",
- "tableFrom": "member",
- "tableTo": "user",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.organization": {
- "name": "organization",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "slug": {
- "name": "slug",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "logo": {
- "name": "logo",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "metadata": {
- "name": "metadata",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "owner_id": {
- "name": "owner_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "organization_owner_id_user_id_fk": {
- "name": "organization_owner_id_user_id_fk",
- "tableFrom": "organization",
- "tableTo": "user",
- "columnsFrom": [
- "owner_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "organization_slug_unique": {
- "name": "organization_slug_unique",
- "nullsNotDistinct": false,
- "columns": [
- "slug"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.two_factor": {
- "name": "two_factor",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "secret": {
- "name": "secret",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "backup_codes": {
- "name": "backup_codes",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "user_id": {
- "name": "user_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "two_factor_user_id_user_id_fk": {
- "name": "two_factor_user_id_user_id_fk",
- "tableFrom": "two_factor",
- "tableTo": "user",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.verification": {
- "name": "verification",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "identifier": {
- "name": "identifier",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "value": {
- "name": "value",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "expires_at": {
- "name": "expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.ai": {
- "name": "ai",
- "schema": "",
- "columns": {
- "aiId": {
- "name": "aiId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "apiUrl": {
- "name": "apiUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "apiKey": {
- "name": "apiKey",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "model": {
- "name": "model",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "isEnabled": {
- "name": "isEnabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": true
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "ai_organizationId_organization_id_fk": {
- "name": "ai_organizationId_organization_id_fk",
- "tableFrom": "ai",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.application": {
- "name": "application",
- "schema": "",
- "columns": {
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "previewEnv": {
- "name": "previewEnv",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "watchPaths": {
- "name": "watchPaths",
- "type": "text[]",
- "primaryKey": false,
- "notNull": false
- },
- "previewBuildArgs": {
- "name": "previewBuildArgs",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "previewBuildSecrets": {
- "name": "previewBuildSecrets",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "previewLabels": {
- "name": "previewLabels",
- "type": "text[]",
- "primaryKey": false,
- "notNull": false
- },
- "previewWildcard": {
- "name": "previewWildcard",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "previewPort": {
- "name": "previewPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": false,
- "default": 3000
- },
- "previewHttps": {
- "name": "previewHttps",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "previewPath": {
- "name": "previewPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'/'"
- },
- "certificateType": {
- "name": "certificateType",
- "type": "certificateType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'none'"
- },
- "previewCustomCertResolver": {
- "name": "previewCustomCertResolver",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "previewLimit": {
- "name": "previewLimit",
- "type": "integer",
- "primaryKey": false,
- "notNull": false,
- "default": 3
- },
- "isPreviewDeploymentsActive": {
- "name": "isPreviewDeploymentsActive",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false,
- "default": false
- },
- "previewRequireCollaboratorPermissions": {
- "name": "previewRequireCollaboratorPermissions",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false,
- "default": true
- },
- "rollbackActive": {
- "name": "rollbackActive",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false,
- "default": false
- },
- "buildArgs": {
- "name": "buildArgs",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "buildSecrets": {
- "name": "buildSecrets",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryReservation": {
- "name": "memoryReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryLimit": {
- "name": "memoryLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuReservation": {
- "name": "cpuReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuLimit": {
- "name": "cpuLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "title": {
- "name": "title",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "enabled": {
- "name": "enabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "subtitle": {
- "name": "subtitle",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "refreshToken": {
- "name": "refreshToken",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "sourceType": {
- "name": "sourceType",
- "type": "sourceType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'github'"
- },
- "cleanCache": {
- "name": "cleanCache",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false,
- "default": false
- },
- "repository": {
- "name": "repository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "owner": {
- "name": "owner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "branch": {
- "name": "branch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "buildPath": {
- "name": "buildPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'/'"
- },
- "triggerType": {
- "name": "triggerType",
- "type": "triggerType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": false,
- "default": "'push'"
- },
- "autoDeploy": {
- "name": "autoDeploy",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabProjectId": {
- "name": "gitlabProjectId",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabRepository": {
- "name": "gitlabRepository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabOwner": {
- "name": "gitlabOwner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabBranch": {
- "name": "gitlabBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabBuildPath": {
- "name": "gitlabBuildPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'/'"
- },
- "gitlabPathNamespace": {
- "name": "gitlabPathNamespace",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaRepository": {
- "name": "giteaRepository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaOwner": {
- "name": "giteaOwner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaBranch": {
- "name": "giteaBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaBuildPath": {
- "name": "giteaBuildPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'/'"
- },
- "bitbucketRepository": {
- "name": "bitbucketRepository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketOwner": {
- "name": "bitbucketOwner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketBranch": {
- "name": "bitbucketBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketBuildPath": {
- "name": "bitbucketBuildPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'/'"
- },
- "username": {
- "name": "username",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "password": {
- "name": "password",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "dockerImage": {
- "name": "dockerImage",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "registryUrl": {
- "name": "registryUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customGitUrl": {
- "name": "customGitUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customGitBranch": {
- "name": "customGitBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customGitBuildPath": {
- "name": "customGitBuildPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customGitSSHKeyId": {
- "name": "customGitSSHKeyId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "enableSubmodules": {
- "name": "enableSubmodules",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "dockerfile": {
- "name": "dockerfile",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "dockerContextPath": {
- "name": "dockerContextPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "dockerBuildStage": {
- "name": "dockerBuildStage",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "dropBuildPath": {
- "name": "dropBuildPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "healthCheckSwarm": {
- "name": "healthCheckSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "restartPolicySwarm": {
- "name": "restartPolicySwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "placementSwarm": {
- "name": "placementSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "updateConfigSwarm": {
- "name": "updateConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "rollbackConfigSwarm": {
- "name": "rollbackConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "modeSwarm": {
- "name": "modeSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "labelsSwarm": {
- "name": "labelsSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "networkSwarm": {
- "name": "networkSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "stopGracePeriodSwarm": {
- "name": "stopGracePeriodSwarm",
- "type": "bigint",
- "primaryKey": false,
- "notNull": false
- },
- "endpointSpecSwarm": {
- "name": "endpointSpecSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "replicas": {
- "name": "replicas",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 1
- },
- "applicationStatus": {
- "name": "applicationStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "buildType": {
- "name": "buildType",
- "type": "buildType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'nixpacks'"
- },
- "railpackVersion": {
- "name": "railpackVersion",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'0.2.2'"
- },
- "herokuVersion": {
- "name": "herokuVersion",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'24'"
- },
- "publishDirectory": {
- "name": "publishDirectory",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "isStaticSpa": {
- "name": "isStaticSpa",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "registryId": {
- "name": "registryId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "githubId": {
- "name": "githubId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabId": {
- "name": "gitlabId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaId": {
- "name": "giteaId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketId": {
- "name": "bitbucketId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "application_customGitSSHKeyId_ssh-key_sshKeyId_fk": {
- "name": "application_customGitSSHKeyId_ssh-key_sshKeyId_fk",
- "tableFrom": "application",
- "tableTo": "ssh-key",
- "columnsFrom": [
- "customGitSSHKeyId"
- ],
- "columnsTo": [
- "sshKeyId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "application_registryId_registry_registryId_fk": {
- "name": "application_registryId_registry_registryId_fk",
- "tableFrom": "application",
- "tableTo": "registry",
- "columnsFrom": [
- "registryId"
- ],
- "columnsTo": [
- "registryId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "application_environmentId_environment_environmentId_fk": {
- "name": "application_environmentId_environment_environmentId_fk",
- "tableFrom": "application",
- "tableTo": "environment",
- "columnsFrom": [
- "environmentId"
- ],
- "columnsTo": [
- "environmentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "application_githubId_github_githubId_fk": {
- "name": "application_githubId_github_githubId_fk",
- "tableFrom": "application",
- "tableTo": "github",
- "columnsFrom": [
- "githubId"
- ],
- "columnsTo": [
- "githubId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "application_gitlabId_gitlab_gitlabId_fk": {
- "name": "application_gitlabId_gitlab_gitlabId_fk",
- "tableFrom": "application",
- "tableTo": "gitlab",
- "columnsFrom": [
- "gitlabId"
- ],
- "columnsTo": [
- "gitlabId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "application_giteaId_gitea_giteaId_fk": {
- "name": "application_giteaId_gitea_giteaId_fk",
- "tableFrom": "application",
- "tableTo": "gitea",
- "columnsFrom": [
- "giteaId"
- ],
- "columnsTo": [
- "giteaId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "application_bitbucketId_bitbucket_bitbucketId_fk": {
- "name": "application_bitbucketId_bitbucket_bitbucketId_fk",
- "tableFrom": "application",
- "tableTo": "bitbucket",
- "columnsFrom": [
- "bitbucketId"
- ],
- "columnsTo": [
- "bitbucketId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "application_serverId_server_serverId_fk": {
- "name": "application_serverId_server_serverId_fk",
- "tableFrom": "application",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "application_appName_unique": {
- "name": "application_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.backup": {
- "name": "backup",
- "schema": "",
- "columns": {
- "backupId": {
- "name": "backupId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "schedule": {
- "name": "schedule",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "enabled": {
- "name": "enabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "database": {
- "name": "database",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "prefix": {
- "name": "prefix",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serviceName": {
- "name": "serviceName",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "destinationId": {
- "name": "destinationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "keepLatestCount": {
- "name": "keepLatestCount",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "backupType": {
- "name": "backupType",
- "type": "backupType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'database'"
- },
- "databaseType": {
- "name": "databaseType",
- "type": "databaseType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true
- },
- "composeId": {
- "name": "composeId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "postgresId": {
- "name": "postgresId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mariadbId": {
- "name": "mariadbId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mysqlId": {
- "name": "mysqlId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mongoId": {
- "name": "mongoId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "userId": {
- "name": "userId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "metadata": {
- "name": "metadata",
- "type": "jsonb",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "backup_destinationId_destination_destinationId_fk": {
- "name": "backup_destinationId_destination_destinationId_fk",
- "tableFrom": "backup",
- "tableTo": "destination",
- "columnsFrom": [
- "destinationId"
- ],
- "columnsTo": [
- "destinationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "backup_composeId_compose_composeId_fk": {
- "name": "backup_composeId_compose_composeId_fk",
- "tableFrom": "backup",
- "tableTo": "compose",
- "columnsFrom": [
- "composeId"
- ],
- "columnsTo": [
- "composeId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "backup_postgresId_postgres_postgresId_fk": {
- "name": "backup_postgresId_postgres_postgresId_fk",
- "tableFrom": "backup",
- "tableTo": "postgres",
- "columnsFrom": [
- "postgresId"
- ],
- "columnsTo": [
- "postgresId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "backup_mariadbId_mariadb_mariadbId_fk": {
- "name": "backup_mariadbId_mariadb_mariadbId_fk",
- "tableFrom": "backup",
- "tableTo": "mariadb",
- "columnsFrom": [
- "mariadbId"
- ],
- "columnsTo": [
- "mariadbId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "backup_mysqlId_mysql_mysqlId_fk": {
- "name": "backup_mysqlId_mysql_mysqlId_fk",
- "tableFrom": "backup",
- "tableTo": "mysql",
- "columnsFrom": [
- "mysqlId"
- ],
- "columnsTo": [
- "mysqlId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "backup_mongoId_mongo_mongoId_fk": {
- "name": "backup_mongoId_mongo_mongoId_fk",
- "tableFrom": "backup",
- "tableTo": "mongo",
- "columnsFrom": [
- "mongoId"
- ],
- "columnsTo": [
- "mongoId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "backup_userId_user_id_fk": {
- "name": "backup_userId_user_id_fk",
- "tableFrom": "backup",
- "tableTo": "user",
- "columnsFrom": [
- "userId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "backup_appName_unique": {
- "name": "backup_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.bitbucket": {
- "name": "bitbucket",
- "schema": "",
- "columns": {
- "bitbucketId": {
- "name": "bitbucketId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "bitbucketUsername": {
- "name": "bitbucketUsername",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketEmail": {
- "name": "bitbucketEmail",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "appPassword": {
- "name": "appPassword",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "apiToken": {
- "name": "apiToken",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketWorkspaceName": {
- "name": "bitbucketWorkspaceName",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitProviderId": {
- "name": "gitProviderId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "bitbucket_gitProviderId_git_provider_gitProviderId_fk": {
- "name": "bitbucket_gitProviderId_git_provider_gitProviderId_fk",
- "tableFrom": "bitbucket",
- "tableTo": "git_provider",
- "columnsFrom": [
- "gitProviderId"
- ],
- "columnsTo": [
- "gitProviderId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.certificate": {
- "name": "certificate",
- "schema": "",
- "columns": {
- "certificateId": {
- "name": "certificateId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "certificateData": {
- "name": "certificateData",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "privateKey": {
- "name": "privateKey",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "certificatePath": {
- "name": "certificatePath",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "autoRenew": {
- "name": "autoRenew",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "certificate_organizationId_organization_id_fk": {
- "name": "certificate_organizationId_organization_id_fk",
- "tableFrom": "certificate",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "certificate_serverId_server_serverId_fk": {
- "name": "certificate_serverId_server_serverId_fk",
- "tableFrom": "certificate",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "certificate_certificatePath_unique": {
- "name": "certificate_certificatePath_unique",
- "nullsNotDistinct": false,
- "columns": [
- "certificatePath"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.compose": {
- "name": "compose",
- "schema": "",
- "columns": {
- "composeId": {
- "name": "composeId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "composeFile": {
- "name": "composeFile",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "refreshToken": {
- "name": "refreshToken",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "sourceType": {
- "name": "sourceType",
- "type": "sourceTypeCompose",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'github'"
- },
- "composeType": {
- "name": "composeType",
- "type": "composeType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'docker-compose'"
- },
- "repository": {
- "name": "repository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "owner": {
- "name": "owner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "branch": {
- "name": "branch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "autoDeploy": {
- "name": "autoDeploy",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabProjectId": {
- "name": "gitlabProjectId",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabRepository": {
- "name": "gitlabRepository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabOwner": {
- "name": "gitlabOwner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabBranch": {
- "name": "gitlabBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabPathNamespace": {
- "name": "gitlabPathNamespace",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketRepository": {
- "name": "bitbucketRepository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketOwner": {
- "name": "bitbucketOwner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketBranch": {
- "name": "bitbucketBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaRepository": {
- "name": "giteaRepository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaOwner": {
- "name": "giteaOwner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaBranch": {
- "name": "giteaBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customGitUrl": {
- "name": "customGitUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customGitBranch": {
- "name": "customGitBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customGitSSHKeyId": {
- "name": "customGitSSHKeyId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "enableSubmodules": {
- "name": "enableSubmodules",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "composePath": {
- "name": "composePath",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "'./docker-compose.yml'"
- },
- "suffix": {
- "name": "suffix",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "randomize": {
- "name": "randomize",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "isolatedDeployment": {
- "name": "isolatedDeployment",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "isolatedDeploymentsVolume": {
- "name": "isolatedDeploymentsVolume",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "triggerType": {
- "name": "triggerType",
- "type": "triggerType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": false,
- "default": "'push'"
- },
- "composeStatus": {
- "name": "composeStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "watchPaths": {
- "name": "watchPaths",
- "type": "text[]",
- "primaryKey": false,
- "notNull": false
- },
- "githubId": {
- "name": "githubId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabId": {
- "name": "gitlabId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketId": {
- "name": "bitbucketId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaId": {
- "name": "giteaId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk": {
- "name": "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk",
- "tableFrom": "compose",
- "tableTo": "ssh-key",
- "columnsFrom": [
- "customGitSSHKeyId"
- ],
- "columnsTo": [
- "sshKeyId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "compose_environmentId_environment_environmentId_fk": {
- "name": "compose_environmentId_environment_environmentId_fk",
- "tableFrom": "compose",
- "tableTo": "environment",
- "columnsFrom": [
- "environmentId"
- ],
- "columnsTo": [
- "environmentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "compose_githubId_github_githubId_fk": {
- "name": "compose_githubId_github_githubId_fk",
- "tableFrom": "compose",
- "tableTo": "github",
- "columnsFrom": [
- "githubId"
- ],
- "columnsTo": [
- "githubId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "compose_gitlabId_gitlab_gitlabId_fk": {
- "name": "compose_gitlabId_gitlab_gitlabId_fk",
- "tableFrom": "compose",
- "tableTo": "gitlab",
- "columnsFrom": [
- "gitlabId"
- ],
- "columnsTo": [
- "gitlabId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "compose_bitbucketId_bitbucket_bitbucketId_fk": {
- "name": "compose_bitbucketId_bitbucket_bitbucketId_fk",
- "tableFrom": "compose",
- "tableTo": "bitbucket",
- "columnsFrom": [
- "bitbucketId"
- ],
- "columnsTo": [
- "bitbucketId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "compose_giteaId_gitea_giteaId_fk": {
- "name": "compose_giteaId_gitea_giteaId_fk",
- "tableFrom": "compose",
- "tableTo": "gitea",
- "columnsFrom": [
- "giteaId"
- ],
- "columnsTo": [
- "giteaId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "compose_serverId_server_serverId_fk": {
- "name": "compose_serverId_server_serverId_fk",
- "tableFrom": "compose",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.deployment": {
- "name": "deployment",
- "schema": "",
- "columns": {
- "deploymentId": {
- "name": "deploymentId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "title": {
- "name": "title",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "status": {
- "name": "status",
- "type": "deploymentStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": false,
- "default": "'running'"
- },
- "logPath": {
- "name": "logPath",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "pid": {
- "name": "pid",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "composeId": {
- "name": "composeId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "isPreviewDeployment": {
- "name": "isPreviewDeployment",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false,
- "default": false
- },
- "previewDeploymentId": {
- "name": "previewDeploymentId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "startedAt": {
- "name": "startedAt",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "finishedAt": {
- "name": "finishedAt",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "errorMessage": {
- "name": "errorMessage",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "scheduleId": {
- "name": "scheduleId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "backupId": {
- "name": "backupId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "rollbackId": {
- "name": "rollbackId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "volumeBackupId": {
- "name": "volumeBackupId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "deployment_applicationId_application_applicationId_fk": {
- "name": "deployment_applicationId_application_applicationId_fk",
- "tableFrom": "deployment",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "deployment_composeId_compose_composeId_fk": {
- "name": "deployment_composeId_compose_composeId_fk",
- "tableFrom": "deployment",
- "tableTo": "compose",
- "columnsFrom": [
- "composeId"
- ],
- "columnsTo": [
- "composeId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "deployment_serverId_server_serverId_fk": {
- "name": "deployment_serverId_server_serverId_fk",
- "tableFrom": "deployment",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "deployment_previewDeploymentId_preview_deployments_previewDeploymentId_fk": {
- "name": "deployment_previewDeploymentId_preview_deployments_previewDeploymentId_fk",
- "tableFrom": "deployment",
- "tableTo": "preview_deployments",
- "columnsFrom": [
- "previewDeploymentId"
- ],
- "columnsTo": [
- "previewDeploymentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "deployment_scheduleId_schedule_scheduleId_fk": {
- "name": "deployment_scheduleId_schedule_scheduleId_fk",
- "tableFrom": "deployment",
- "tableTo": "schedule",
- "columnsFrom": [
- "scheduleId"
- ],
- "columnsTo": [
- "scheduleId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "deployment_backupId_backup_backupId_fk": {
- "name": "deployment_backupId_backup_backupId_fk",
- "tableFrom": "deployment",
- "tableTo": "backup",
- "columnsFrom": [
- "backupId"
- ],
- "columnsTo": [
- "backupId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "deployment_rollbackId_rollback_rollbackId_fk": {
- "name": "deployment_rollbackId_rollback_rollbackId_fk",
- "tableFrom": "deployment",
- "tableTo": "rollback",
- "columnsFrom": [
- "rollbackId"
- ],
- "columnsTo": [
- "rollbackId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "deployment_volumeBackupId_volume_backup_volumeBackupId_fk": {
- "name": "deployment_volumeBackupId_volume_backup_volumeBackupId_fk",
- "tableFrom": "deployment",
- "tableTo": "volume_backup",
- "columnsFrom": [
- "volumeBackupId"
- ],
- "columnsTo": [
- "volumeBackupId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.destination": {
- "name": "destination",
- "schema": "",
- "columns": {
- "destinationId": {
- "name": "destinationId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "provider": {
- "name": "provider",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "accessKey": {
- "name": "accessKey",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "secretAccessKey": {
- "name": "secretAccessKey",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "bucket": {
- "name": "bucket",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "region": {
- "name": "region",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "endpoint": {
- "name": "endpoint",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "default": "now()"
- }
- },
- "indexes": {},
- "foreignKeys": {
- "destination_organizationId_organization_id_fk": {
- "name": "destination_organizationId_organization_id_fk",
- "tableFrom": "destination",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.domain": {
- "name": "domain",
- "schema": "",
- "columns": {
- "domainId": {
- "name": "domainId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "host": {
- "name": "host",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "https": {
- "name": "https",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "port": {
- "name": "port",
- "type": "integer",
- "primaryKey": false,
- "notNull": false,
- "default": 3000
- },
- "path": {
- "name": "path",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'/'"
- },
- "serviceName": {
- "name": "serviceName",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "domainType": {
- "name": "domainType",
- "type": "domainType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": false,
- "default": "'application'"
- },
- "uniqueConfigKey": {
- "name": "uniqueConfigKey",
- "type": "serial",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "composeId": {
- "name": "composeId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customCertResolver": {
- "name": "customCertResolver",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "previewDeploymentId": {
- "name": "previewDeploymentId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "certificateType": {
- "name": "certificateType",
- "type": "certificateType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'none'"
- },
- "internalPath": {
- "name": "internalPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'/'"
- },
- "stripPath": {
- "name": "stripPath",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "domain_composeId_compose_composeId_fk": {
- "name": "domain_composeId_compose_composeId_fk",
- "tableFrom": "domain",
- "tableTo": "compose",
- "columnsFrom": [
- "composeId"
- ],
- "columnsTo": [
- "composeId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "domain_applicationId_application_applicationId_fk": {
- "name": "domain_applicationId_application_applicationId_fk",
- "tableFrom": "domain",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "domain_previewDeploymentId_preview_deployments_previewDeploymentId_fk": {
- "name": "domain_previewDeploymentId_preview_deployments_previewDeploymentId_fk",
- "tableFrom": "domain",
- "tableTo": "preview_deployments",
- "columnsFrom": [
- "previewDeploymentId"
- ],
- "columnsTo": [
- "previewDeploymentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.environment": {
- "name": "environment",
- "schema": "",
- "columns": {
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "projectId": {
- "name": "projectId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "environment_projectId_project_projectId_fk": {
- "name": "environment_projectId_project_projectId_fk",
- "tableFrom": "environment",
- "tableTo": "project",
- "columnsFrom": [
- "projectId"
- ],
- "columnsTo": [
- "projectId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.git_provider": {
- "name": "git_provider",
- "schema": "",
- "columns": {
- "gitProviderId": {
- "name": "gitProviderId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "providerType": {
- "name": "providerType",
- "type": "gitProviderType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'github'"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "userId": {
- "name": "userId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "git_provider_organizationId_organization_id_fk": {
- "name": "git_provider_organizationId_organization_id_fk",
- "tableFrom": "git_provider",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "git_provider_userId_user_id_fk": {
- "name": "git_provider_userId_user_id_fk",
- "tableFrom": "git_provider",
- "tableTo": "user",
- "columnsFrom": [
- "userId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.gitea": {
- "name": "gitea",
- "schema": "",
- "columns": {
- "giteaId": {
- "name": "giteaId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "giteaUrl": {
- "name": "giteaUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "'https://gitea.com'"
- },
- "redirect_uri": {
- "name": "redirect_uri",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "client_id": {
- "name": "client_id",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "client_secret": {
- "name": "client_secret",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitProviderId": {
- "name": "gitProviderId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "access_token": {
- "name": "access_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "refresh_token": {
- "name": "refresh_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "expires_at": {
- "name": "expires_at",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "scopes": {
- "name": "scopes",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'repo,repo:status,read:user,read:org'"
- },
- "last_authenticated_at": {
- "name": "last_authenticated_at",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "gitea_gitProviderId_git_provider_gitProviderId_fk": {
- "name": "gitea_gitProviderId_git_provider_gitProviderId_fk",
- "tableFrom": "gitea",
- "tableTo": "git_provider",
- "columnsFrom": [
- "gitProviderId"
- ],
- "columnsTo": [
- "gitProviderId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.github": {
- "name": "github",
- "schema": "",
- "columns": {
- "githubId": {
- "name": "githubId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "githubAppName": {
- "name": "githubAppName",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "githubAppId": {
- "name": "githubAppId",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "githubClientId": {
- "name": "githubClientId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "githubClientSecret": {
- "name": "githubClientSecret",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "githubInstallationId": {
- "name": "githubInstallationId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "githubPrivateKey": {
- "name": "githubPrivateKey",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "githubWebhookSecret": {
- "name": "githubWebhookSecret",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitProviderId": {
- "name": "gitProviderId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "github_gitProviderId_git_provider_gitProviderId_fk": {
- "name": "github_gitProviderId_git_provider_gitProviderId_fk",
- "tableFrom": "github",
- "tableTo": "git_provider",
- "columnsFrom": [
- "gitProviderId"
- ],
- "columnsTo": [
- "gitProviderId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.gitlab": {
- "name": "gitlab",
- "schema": "",
- "columns": {
- "gitlabId": {
- "name": "gitlabId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "gitlabUrl": {
- "name": "gitlabUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "'https://gitlab.com'"
- },
- "application_id": {
- "name": "application_id",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "redirect_uri": {
- "name": "redirect_uri",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "secret": {
- "name": "secret",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "access_token": {
- "name": "access_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "refresh_token": {
- "name": "refresh_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "group_name": {
- "name": "group_name",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "expires_at": {
- "name": "expires_at",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "gitProviderId": {
- "name": "gitProviderId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "gitlab_gitProviderId_git_provider_gitProviderId_fk": {
- "name": "gitlab_gitProviderId_git_provider_gitProviderId_fk",
- "tableFrom": "gitlab",
- "tableTo": "git_provider",
- "columnsFrom": [
- "gitProviderId"
- ],
- "columnsTo": [
- "gitProviderId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.mariadb": {
- "name": "mariadb",
- "schema": "",
- "columns": {
- "mariadbId": {
- "name": "mariadbId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "databaseName": {
- "name": "databaseName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databaseUser": {
- "name": "databaseUser",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databasePassword": {
- "name": "databasePassword",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "rootPassword": {
- "name": "rootPassword",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "dockerImage": {
- "name": "dockerImage",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryReservation": {
- "name": "memoryReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryLimit": {
- "name": "memoryLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuReservation": {
- "name": "cpuReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuLimit": {
- "name": "cpuLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "externalPort": {
- "name": "externalPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "applicationStatus": {
- "name": "applicationStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "healthCheckSwarm": {
- "name": "healthCheckSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "restartPolicySwarm": {
- "name": "restartPolicySwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "placementSwarm": {
- "name": "placementSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "updateConfigSwarm": {
- "name": "updateConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "rollbackConfigSwarm": {
- "name": "rollbackConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "modeSwarm": {
- "name": "modeSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "labelsSwarm": {
- "name": "labelsSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "networkSwarm": {
- "name": "networkSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "stopGracePeriodSwarm": {
- "name": "stopGracePeriodSwarm",
- "type": "bigint",
- "primaryKey": false,
- "notNull": false
- },
- "endpointSpecSwarm": {
- "name": "endpointSpecSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "replicas": {
- "name": "replicas",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 1
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "mariadb_environmentId_environment_environmentId_fk": {
- "name": "mariadb_environmentId_environment_environmentId_fk",
- "tableFrom": "mariadb",
- "tableTo": "environment",
- "columnsFrom": [
- "environmentId"
- ],
- "columnsTo": [
- "environmentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mariadb_serverId_server_serverId_fk": {
- "name": "mariadb_serverId_server_serverId_fk",
- "tableFrom": "mariadb",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "mariadb_appName_unique": {
- "name": "mariadb_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.mongo": {
- "name": "mongo",
- "schema": "",
- "columns": {
- "mongoId": {
- "name": "mongoId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "databaseUser": {
- "name": "databaseUser",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databasePassword": {
- "name": "databasePassword",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "dockerImage": {
- "name": "dockerImage",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryReservation": {
- "name": "memoryReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryLimit": {
- "name": "memoryLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuReservation": {
- "name": "cpuReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuLimit": {
- "name": "cpuLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "externalPort": {
- "name": "externalPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "applicationStatus": {
- "name": "applicationStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "healthCheckSwarm": {
- "name": "healthCheckSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "restartPolicySwarm": {
- "name": "restartPolicySwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "placementSwarm": {
- "name": "placementSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "updateConfigSwarm": {
- "name": "updateConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "rollbackConfigSwarm": {
- "name": "rollbackConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "modeSwarm": {
- "name": "modeSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "labelsSwarm": {
- "name": "labelsSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "networkSwarm": {
- "name": "networkSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "stopGracePeriodSwarm": {
- "name": "stopGracePeriodSwarm",
- "type": "bigint",
- "primaryKey": false,
- "notNull": false
- },
- "endpointSpecSwarm": {
- "name": "endpointSpecSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "replicas": {
- "name": "replicas",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 1
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "replicaSets": {
- "name": "replicaSets",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false,
- "default": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "mongo_environmentId_environment_environmentId_fk": {
- "name": "mongo_environmentId_environment_environmentId_fk",
- "tableFrom": "mongo",
- "tableTo": "environment",
- "columnsFrom": [
- "environmentId"
- ],
- "columnsTo": [
- "environmentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mongo_serverId_server_serverId_fk": {
- "name": "mongo_serverId_server_serverId_fk",
- "tableFrom": "mongo",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "mongo_appName_unique": {
- "name": "mongo_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.mount": {
- "name": "mount",
- "schema": "",
- "columns": {
- "mountId": {
- "name": "mountId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "type": {
- "name": "type",
- "type": "mountType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true
- },
- "hostPath": {
- "name": "hostPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "volumeName": {
- "name": "volumeName",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "filePath": {
- "name": "filePath",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "content": {
- "name": "content",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "serviceType": {
- "name": "serviceType",
- "type": "serviceType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'application'"
- },
- "mountPath": {
- "name": "mountPath",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "postgresId": {
- "name": "postgresId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mariadbId": {
- "name": "mariadbId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mongoId": {
- "name": "mongoId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mysqlId": {
- "name": "mysqlId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "redisId": {
- "name": "redisId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "composeId": {
- "name": "composeId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "mount_applicationId_application_applicationId_fk": {
- "name": "mount_applicationId_application_applicationId_fk",
- "tableFrom": "mount",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mount_postgresId_postgres_postgresId_fk": {
- "name": "mount_postgresId_postgres_postgresId_fk",
- "tableFrom": "mount",
- "tableTo": "postgres",
- "columnsFrom": [
- "postgresId"
- ],
- "columnsTo": [
- "postgresId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mount_mariadbId_mariadb_mariadbId_fk": {
- "name": "mount_mariadbId_mariadb_mariadbId_fk",
- "tableFrom": "mount",
- "tableTo": "mariadb",
- "columnsFrom": [
- "mariadbId"
- ],
- "columnsTo": [
- "mariadbId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mount_mongoId_mongo_mongoId_fk": {
- "name": "mount_mongoId_mongo_mongoId_fk",
- "tableFrom": "mount",
- "tableTo": "mongo",
- "columnsFrom": [
- "mongoId"
- ],
- "columnsTo": [
- "mongoId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mount_mysqlId_mysql_mysqlId_fk": {
- "name": "mount_mysqlId_mysql_mysqlId_fk",
- "tableFrom": "mount",
- "tableTo": "mysql",
- "columnsFrom": [
- "mysqlId"
- ],
- "columnsTo": [
- "mysqlId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mount_redisId_redis_redisId_fk": {
- "name": "mount_redisId_redis_redisId_fk",
- "tableFrom": "mount",
- "tableTo": "redis",
- "columnsFrom": [
- "redisId"
- ],
- "columnsTo": [
- "redisId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mount_composeId_compose_composeId_fk": {
- "name": "mount_composeId_compose_composeId_fk",
- "tableFrom": "mount",
- "tableTo": "compose",
- "columnsFrom": [
- "composeId"
- ],
- "columnsTo": [
- "composeId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.mysql": {
- "name": "mysql",
- "schema": "",
- "columns": {
- "mysqlId": {
- "name": "mysqlId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "databaseName": {
- "name": "databaseName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databaseUser": {
- "name": "databaseUser",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databasePassword": {
- "name": "databasePassword",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "rootPassword": {
- "name": "rootPassword",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "dockerImage": {
- "name": "dockerImage",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryReservation": {
- "name": "memoryReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryLimit": {
- "name": "memoryLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuReservation": {
- "name": "cpuReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuLimit": {
- "name": "cpuLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "externalPort": {
- "name": "externalPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "applicationStatus": {
- "name": "applicationStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "healthCheckSwarm": {
- "name": "healthCheckSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "restartPolicySwarm": {
- "name": "restartPolicySwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "placementSwarm": {
- "name": "placementSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "updateConfigSwarm": {
- "name": "updateConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "rollbackConfigSwarm": {
- "name": "rollbackConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "modeSwarm": {
- "name": "modeSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "labelsSwarm": {
- "name": "labelsSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "networkSwarm": {
- "name": "networkSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "stopGracePeriodSwarm": {
- "name": "stopGracePeriodSwarm",
- "type": "bigint",
- "primaryKey": false,
- "notNull": false
- },
- "endpointSpecSwarm": {
- "name": "endpointSpecSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "replicas": {
- "name": "replicas",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 1
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "mysql_environmentId_environment_environmentId_fk": {
- "name": "mysql_environmentId_environment_environmentId_fk",
- "tableFrom": "mysql",
- "tableTo": "environment",
- "columnsFrom": [
- "environmentId"
- ],
- "columnsTo": [
- "environmentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mysql_serverId_server_serverId_fk": {
- "name": "mysql_serverId_server_serverId_fk",
- "tableFrom": "mysql",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "mysql_appName_unique": {
- "name": "mysql_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.discord": {
- "name": "discord",
- "schema": "",
- "columns": {
- "discordId": {
- "name": "discordId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "webhookUrl": {
- "name": "webhookUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "decoration": {
- "name": "decoration",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.email": {
- "name": "email",
- "schema": "",
- "columns": {
- "emailId": {
- "name": "emailId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "smtpServer": {
- "name": "smtpServer",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "smtpPort": {
- "name": "smtpPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "username": {
- "name": "username",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "password": {
- "name": "password",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "fromAddress": {
- "name": "fromAddress",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "toAddress": {
- "name": "toAddress",
- "type": "text[]",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.gotify": {
- "name": "gotify",
- "schema": "",
- "columns": {
- "gotifyId": {
- "name": "gotifyId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "serverUrl": {
- "name": "serverUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appToken": {
- "name": "appToken",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "priority": {
- "name": "priority",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 5
- },
- "decoration": {
- "name": "decoration",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.lark": {
- "name": "lark",
- "schema": "",
- "columns": {
- "larkId": {
- "name": "larkId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "webhookUrl": {
- "name": "webhookUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.notification": {
- "name": "notification",
- "schema": "",
- "columns": {
- "notificationId": {
- "name": "notificationId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appDeploy": {
- "name": "appDeploy",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "appBuildError": {
- "name": "appBuildError",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "databaseBackup": {
- "name": "databaseBackup",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "dokployRestart": {
- "name": "dokployRestart",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "dockerCleanup": {
- "name": "dockerCleanup",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "serverThreshold": {
- "name": "serverThreshold",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "notificationType": {
- "name": "notificationType",
- "type": "notificationType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "slackId": {
- "name": "slackId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "telegramId": {
- "name": "telegramId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "discordId": {
- "name": "discordId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "emailId": {
- "name": "emailId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gotifyId": {
- "name": "gotifyId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "ntfyId": {
- "name": "ntfyId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "larkId": {
- "name": "larkId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "notification_slackId_slack_slackId_fk": {
- "name": "notification_slackId_slack_slackId_fk",
- "tableFrom": "notification",
- "tableTo": "slack",
- "columnsFrom": [
- "slackId"
- ],
- "columnsTo": [
- "slackId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "notification_telegramId_telegram_telegramId_fk": {
- "name": "notification_telegramId_telegram_telegramId_fk",
- "tableFrom": "notification",
- "tableTo": "telegram",
- "columnsFrom": [
- "telegramId"
- ],
- "columnsTo": [
- "telegramId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "notification_discordId_discord_discordId_fk": {
- "name": "notification_discordId_discord_discordId_fk",
- "tableFrom": "notification",
- "tableTo": "discord",
- "columnsFrom": [
- "discordId"
- ],
- "columnsTo": [
- "discordId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "notification_emailId_email_emailId_fk": {
- "name": "notification_emailId_email_emailId_fk",
- "tableFrom": "notification",
- "tableTo": "email",
- "columnsFrom": [
- "emailId"
- ],
- "columnsTo": [
- "emailId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "notification_gotifyId_gotify_gotifyId_fk": {
- "name": "notification_gotifyId_gotify_gotifyId_fk",
- "tableFrom": "notification",
- "tableTo": "gotify",
- "columnsFrom": [
- "gotifyId"
- ],
- "columnsTo": [
- "gotifyId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "notification_ntfyId_ntfy_ntfyId_fk": {
- "name": "notification_ntfyId_ntfy_ntfyId_fk",
- "tableFrom": "notification",
- "tableTo": "ntfy",
- "columnsFrom": [
- "ntfyId"
- ],
- "columnsTo": [
- "ntfyId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "notification_larkId_lark_larkId_fk": {
- "name": "notification_larkId_lark_larkId_fk",
- "tableFrom": "notification",
- "tableTo": "lark",
- "columnsFrom": [
- "larkId"
- ],
- "columnsTo": [
- "larkId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "notification_organizationId_organization_id_fk": {
- "name": "notification_organizationId_organization_id_fk",
- "tableFrom": "notification",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.ntfy": {
- "name": "ntfy",
- "schema": "",
- "columns": {
- "ntfyId": {
- "name": "ntfyId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "serverUrl": {
- "name": "serverUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "topic": {
- "name": "topic",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "accessToken": {
- "name": "accessToken",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "priority": {
- "name": "priority",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 3
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.slack": {
- "name": "slack",
- "schema": "",
- "columns": {
- "slackId": {
- "name": "slackId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "webhookUrl": {
- "name": "webhookUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "channel": {
- "name": "channel",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.telegram": {
- "name": "telegram",
- "schema": "",
- "columns": {
- "telegramId": {
- "name": "telegramId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "botToken": {
- "name": "botToken",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "chatId": {
- "name": "chatId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "messageThreadId": {
- "name": "messageThreadId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.port": {
- "name": "port",
- "schema": "",
- "columns": {
- "portId": {
- "name": "portId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "publishedPort": {
- "name": "publishedPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "publishMode": {
- "name": "publishMode",
- "type": "publishModeType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'host'"
- },
- "targetPort": {
- "name": "targetPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "protocol": {
- "name": "protocol",
- "type": "protocolType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "port_applicationId_application_applicationId_fk": {
- "name": "port_applicationId_application_applicationId_fk",
- "tableFrom": "port",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.postgres": {
- "name": "postgres",
- "schema": "",
- "columns": {
- "postgresId": {
- "name": "postgresId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databaseName": {
- "name": "databaseName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databaseUser": {
- "name": "databaseUser",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databasePassword": {
- "name": "databasePassword",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "dockerImage": {
- "name": "dockerImage",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryReservation": {
- "name": "memoryReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "externalPort": {
- "name": "externalPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "memoryLimit": {
- "name": "memoryLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuReservation": {
- "name": "cpuReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuLimit": {
- "name": "cpuLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "applicationStatus": {
- "name": "applicationStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "healthCheckSwarm": {
- "name": "healthCheckSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "restartPolicySwarm": {
- "name": "restartPolicySwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "placementSwarm": {
- "name": "placementSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "updateConfigSwarm": {
- "name": "updateConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "rollbackConfigSwarm": {
- "name": "rollbackConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "modeSwarm": {
- "name": "modeSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "labelsSwarm": {
- "name": "labelsSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "networkSwarm": {
- "name": "networkSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "stopGracePeriodSwarm": {
- "name": "stopGracePeriodSwarm",
- "type": "bigint",
- "primaryKey": false,
- "notNull": false
- },
- "endpointSpecSwarm": {
- "name": "endpointSpecSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "replicas": {
- "name": "replicas",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 1
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "postgres_environmentId_environment_environmentId_fk": {
- "name": "postgres_environmentId_environment_environmentId_fk",
- "tableFrom": "postgres",
- "tableTo": "environment",
- "columnsFrom": [
- "environmentId"
- ],
- "columnsTo": [
- "environmentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "postgres_serverId_server_serverId_fk": {
- "name": "postgres_serverId_server_serverId_fk",
- "tableFrom": "postgres",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "postgres_appName_unique": {
- "name": "postgres_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.preview_deployments": {
- "name": "preview_deployments",
- "schema": "",
- "columns": {
- "previewDeploymentId": {
- "name": "previewDeploymentId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "branch": {
- "name": "branch",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "pullRequestId": {
- "name": "pullRequestId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "pullRequestNumber": {
- "name": "pullRequestNumber",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "pullRequestURL": {
- "name": "pullRequestURL",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "pullRequestTitle": {
- "name": "pullRequestTitle",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "pullRequestCommentId": {
- "name": "pullRequestCommentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "previewStatus": {
- "name": "previewStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "domainId": {
- "name": "domainId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "expiresAt": {
- "name": "expiresAt",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "preview_deployments_applicationId_application_applicationId_fk": {
- "name": "preview_deployments_applicationId_application_applicationId_fk",
- "tableFrom": "preview_deployments",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "preview_deployments_domainId_domain_domainId_fk": {
- "name": "preview_deployments_domainId_domain_domainId_fk",
- "tableFrom": "preview_deployments",
- "tableTo": "domain",
- "columnsFrom": [
- "domainId"
- ],
- "columnsTo": [
- "domainId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "preview_deployments_appName_unique": {
- "name": "preview_deployments_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.project": {
- "name": "project",
- "schema": "",
- "columns": {
- "projectId": {
- "name": "projectId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- }
- },
- "indexes": {},
- "foreignKeys": {
- "project_organizationId_organization_id_fk": {
- "name": "project_organizationId_organization_id_fk",
- "tableFrom": "project",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.redirect": {
- "name": "redirect",
- "schema": "",
- "columns": {
- "redirectId": {
- "name": "redirectId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "regex": {
- "name": "regex",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "replacement": {
- "name": "replacement",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "permanent": {
- "name": "permanent",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "uniqueConfigKey": {
- "name": "uniqueConfigKey",
- "type": "serial",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "redirect_applicationId_application_applicationId_fk": {
- "name": "redirect_applicationId_application_applicationId_fk",
- "tableFrom": "redirect",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.redis": {
- "name": "redis",
- "schema": "",
- "columns": {
- "redisId": {
- "name": "redisId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "password": {
- "name": "password",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "dockerImage": {
- "name": "dockerImage",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryReservation": {
- "name": "memoryReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryLimit": {
- "name": "memoryLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuReservation": {
- "name": "cpuReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuLimit": {
- "name": "cpuLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "externalPort": {
- "name": "externalPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "applicationStatus": {
- "name": "applicationStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "healthCheckSwarm": {
- "name": "healthCheckSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "restartPolicySwarm": {
- "name": "restartPolicySwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "placementSwarm": {
- "name": "placementSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "updateConfigSwarm": {
- "name": "updateConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "rollbackConfigSwarm": {
- "name": "rollbackConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "modeSwarm": {
- "name": "modeSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "labelsSwarm": {
- "name": "labelsSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "networkSwarm": {
- "name": "networkSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "stopGracePeriodSwarm": {
- "name": "stopGracePeriodSwarm",
- "type": "bigint",
- "primaryKey": false,
- "notNull": false
- },
- "endpointSpecSwarm": {
- "name": "endpointSpecSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "replicas": {
- "name": "replicas",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 1
- },
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "redis_environmentId_environment_environmentId_fk": {
- "name": "redis_environmentId_environment_environmentId_fk",
- "tableFrom": "redis",
- "tableTo": "environment",
- "columnsFrom": [
- "environmentId"
- ],
- "columnsTo": [
- "environmentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "redis_serverId_server_serverId_fk": {
- "name": "redis_serverId_server_serverId_fk",
- "tableFrom": "redis",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "redis_appName_unique": {
- "name": "redis_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.registry": {
- "name": "registry",
- "schema": "",
- "columns": {
- "registryId": {
- "name": "registryId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "registryName": {
- "name": "registryName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "imagePrefix": {
- "name": "imagePrefix",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "username": {
- "name": "username",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "password": {
- "name": "password",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "registryUrl": {
- "name": "registryUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "selfHosted": {
- "name": "selfHosted",
- "type": "RegistryType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'cloud'"
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "registry_organizationId_organization_id_fk": {
- "name": "registry_organizationId_organization_id_fk",
- "tableFrom": "registry",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.rollback": {
- "name": "rollback",
- "schema": "",
- "columns": {
- "rollbackId": {
- "name": "rollbackId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "deploymentId": {
- "name": "deploymentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "version": {
- "name": "version",
- "type": "serial",
- "primaryKey": false,
- "notNull": true
- },
- "image": {
- "name": "image",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "fullContext": {
- "name": "fullContext",
- "type": "jsonb",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "rollback_deploymentId_deployment_deploymentId_fk": {
- "name": "rollback_deploymentId_deployment_deploymentId_fk",
- "tableFrom": "rollback",
- "tableTo": "deployment",
- "columnsFrom": [
- "deploymentId"
- ],
- "columnsTo": [
- "deploymentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.schedule": {
- "name": "schedule",
- "schema": "",
- "columns": {
- "scheduleId": {
- "name": "scheduleId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "cronExpression": {
- "name": "cronExpression",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serviceName": {
- "name": "serviceName",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "shellType": {
- "name": "shellType",
- "type": "shellType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'bash'"
- },
- "scheduleType": {
- "name": "scheduleType",
- "type": "scheduleType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'application'"
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "script": {
- "name": "script",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "composeId": {
- "name": "composeId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "userId": {
- "name": "userId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "enabled": {
- "name": "enabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "schedule_applicationId_application_applicationId_fk": {
- "name": "schedule_applicationId_application_applicationId_fk",
- "tableFrom": "schedule",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "schedule_composeId_compose_composeId_fk": {
- "name": "schedule_composeId_compose_composeId_fk",
- "tableFrom": "schedule",
- "tableTo": "compose",
- "columnsFrom": [
- "composeId"
- ],
- "columnsTo": [
- "composeId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "schedule_serverId_server_serverId_fk": {
- "name": "schedule_serverId_server_serverId_fk",
- "tableFrom": "schedule",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "schedule_userId_user_id_fk": {
- "name": "schedule_userId_user_id_fk",
- "tableFrom": "schedule",
- "tableTo": "user",
- "columnsFrom": [
- "userId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.security": {
- "name": "security",
- "schema": "",
- "columns": {
- "securityId": {
- "name": "securityId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "username": {
- "name": "username",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "password": {
- "name": "password",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "security_applicationId_application_applicationId_fk": {
- "name": "security_applicationId_application_applicationId_fk",
- "tableFrom": "security",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "security_username_applicationId_unique": {
- "name": "security_username_applicationId_unique",
- "nullsNotDistinct": false,
- "columns": [
- "username",
- "applicationId"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.server": {
- "name": "server",
- "schema": "",
- "columns": {
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "ipAddress": {
- "name": "ipAddress",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "port": {
- "name": "port",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "username": {
- "name": "username",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "'root'"
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "enableDockerCleanup": {
- "name": "enableDockerCleanup",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serverStatus": {
- "name": "serverStatus",
- "type": "serverStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'active'"
- },
- "serverType": {
- "name": "serverType",
- "type": "serverType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'deploy'"
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "sshKeyId": {
- "name": "sshKeyId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "metricsConfig": {
- "name": "metricsConfig",
- "type": "jsonb",
- "primaryKey": false,
- "notNull": true,
- "default": "'{\"server\":{\"type\":\"Remote\",\"refreshRate\":60,\"port\":4500,\"token\":\"\",\"urlCallback\":\"\",\"cronJob\":\"\",\"retentionDays\":2,\"thresholds\":{\"cpu\":0,\"memory\":0}},\"containers\":{\"refreshRate\":60,\"services\":{\"include\":[],\"exclude\":[]}}}'::jsonb"
- }
- },
- "indexes": {},
- "foreignKeys": {
- "server_organizationId_organization_id_fk": {
- "name": "server_organizationId_organization_id_fk",
- "tableFrom": "server",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "server_sshKeyId_ssh-key_sshKeyId_fk": {
- "name": "server_sshKeyId_ssh-key_sshKeyId_fk",
- "tableFrom": "server",
- "tableTo": "ssh-key",
- "columnsFrom": [
- "sshKeyId"
- ],
- "columnsTo": [
- "sshKeyId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.session_temp": {
- "name": "session_temp",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "expires_at": {
- "name": "expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "token": {
- "name": "token",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "ip_address": {
- "name": "ip_address",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "user_agent": {
- "name": "user_agent",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "user_id": {
- "name": "user_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "impersonated_by": {
- "name": "impersonated_by",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "active_organization_id": {
- "name": "active_organization_id",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "session_temp_user_id_user_id_fk": {
- "name": "session_temp_user_id_user_id_fk",
- "tableFrom": "session_temp",
- "tableTo": "user",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "session_temp_token_unique": {
- "name": "session_temp_token_unique",
- "nullsNotDistinct": false,
- "columns": [
- "token"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.ssh-key": {
- "name": "ssh-key",
- "schema": "",
- "columns": {
- "sshKeyId": {
- "name": "sshKeyId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "privateKey": {
- "name": "privateKey",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "publicKey": {
- "name": "publicKey",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "lastUsedAt": {
- "name": "lastUsedAt",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "ssh-key_organizationId_organization_id_fk": {
- "name": "ssh-key_organizationId_organization_id_fk",
- "tableFrom": "ssh-key",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.user": {
- "name": "user",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "isRegistered": {
- "name": "isRegistered",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "expirationDate": {
- "name": "expirationDate",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false,
- "default": "now()"
- },
- "two_factor_enabled": {
- "name": "two_factor_enabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "email": {
- "name": "email",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "email_verified": {
- "name": "email_verified",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true
- },
- "image": {
- "name": "image",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "banned": {
- "name": "banned",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "ban_reason": {
- "name": "ban_reason",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "ban_expires": {
- "name": "ban_expires",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "serverIp": {
- "name": "serverIp",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "certificateType": {
- "name": "certificateType",
- "type": "certificateType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'none'"
- },
- "https": {
- "name": "https",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "host": {
- "name": "host",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "letsEncryptEmail": {
- "name": "letsEncryptEmail",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "sshPrivateKey": {
- "name": "sshPrivateKey",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "enableDockerCleanup": {
- "name": "enableDockerCleanup",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "logCleanupCron": {
- "name": "logCleanupCron",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'0 0 * * *'"
- },
- "role": {
- "name": "role",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "'user'"
- },
- "enablePaidFeatures": {
- "name": "enablePaidFeatures",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "allowImpersonation": {
- "name": "allowImpersonation",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "metricsConfig": {
- "name": "metricsConfig",
- "type": "jsonb",
- "primaryKey": false,
- "notNull": true,
- "default": "'{\"server\":{\"type\":\"Dokploy\",\"refreshRate\":60,\"port\":4500,\"token\":\"\",\"retentionDays\":2,\"cronJob\":\"\",\"urlCallback\":\"\",\"thresholds\":{\"cpu\":0,\"memory\":0}},\"containers\":{\"refreshRate\":60,\"services\":{\"include\":[],\"exclude\":[]}}}'::jsonb"
- },
- "cleanupCacheApplications": {
- "name": "cleanupCacheApplications",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "cleanupCacheOnPreviews": {
- "name": "cleanupCacheOnPreviews",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "cleanupCacheOnCompose": {
- "name": "cleanupCacheOnCompose",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "stripeCustomerId": {
- "name": "stripeCustomerId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "stripeSubscriptionId": {
- "name": "stripeSubscriptionId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "serversQuantity": {
- "name": "serversQuantity",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 0
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "user_email_unique": {
- "name": "user_email_unique",
- "nullsNotDistinct": false,
- "columns": [
- "email"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.volume_backup": {
- "name": "volume_backup",
- "schema": "",
- "columns": {
- "volumeBackupId": {
- "name": "volumeBackupId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "volumeName": {
- "name": "volumeName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "prefix": {
- "name": "prefix",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serviceType": {
- "name": "serviceType",
- "type": "serviceType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'application'"
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serviceName": {
- "name": "serviceName",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "turnOff": {
- "name": "turnOff",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "cronExpression": {
- "name": "cronExpression",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "keepLatestCount": {
- "name": "keepLatestCount",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "enabled": {
- "name": "enabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "postgresId": {
- "name": "postgresId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mariadbId": {
- "name": "mariadbId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mongoId": {
- "name": "mongoId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mysqlId": {
- "name": "mysqlId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "redisId": {
- "name": "redisId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "composeId": {
- "name": "composeId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "destinationId": {
- "name": "destinationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "volume_backup_applicationId_application_applicationId_fk": {
- "name": "volume_backup_applicationId_application_applicationId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "volume_backup_postgresId_postgres_postgresId_fk": {
- "name": "volume_backup_postgresId_postgres_postgresId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "postgres",
- "columnsFrom": [
- "postgresId"
- ],
- "columnsTo": [
- "postgresId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "volume_backup_mariadbId_mariadb_mariadbId_fk": {
- "name": "volume_backup_mariadbId_mariadb_mariadbId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "mariadb",
- "columnsFrom": [
- "mariadbId"
- ],
- "columnsTo": [
- "mariadbId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "volume_backup_mongoId_mongo_mongoId_fk": {
- "name": "volume_backup_mongoId_mongo_mongoId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "mongo",
- "columnsFrom": [
- "mongoId"
- ],
- "columnsTo": [
- "mongoId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "volume_backup_mysqlId_mysql_mysqlId_fk": {
- "name": "volume_backup_mysqlId_mysql_mysqlId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "mysql",
- "columnsFrom": [
- "mysqlId"
- ],
- "columnsTo": [
- "mysqlId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "volume_backup_redisId_redis_redisId_fk": {
- "name": "volume_backup_redisId_redis_redisId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "redis",
- "columnsFrom": [
- "redisId"
- ],
- "columnsTo": [
- "redisId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "volume_backup_composeId_compose_composeId_fk": {
- "name": "volume_backup_composeId_compose_composeId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "compose",
- "columnsFrom": [
- "composeId"
- ],
- "columnsTo": [
- "composeId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "volume_backup_destinationId_destination_destinationId_fk": {
- "name": "volume_backup_destinationId_destination_destinationId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "destination",
- "columnsFrom": [
- "destinationId"
- ],
- "columnsTo": [
- "destinationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- }
- },
- "enums": {
- "public.buildType": {
- "name": "buildType",
- "schema": "public",
- "values": [
- "dockerfile",
- "heroku_buildpacks",
- "paketo_buildpacks",
- "nixpacks",
- "static",
- "railpack"
- ]
- },
- "public.sourceType": {
- "name": "sourceType",
- "schema": "public",
- "values": [
- "docker",
- "git",
- "github",
- "gitlab",
- "bitbucket",
- "gitea",
- "drop"
- ]
- },
- "public.backupType": {
- "name": "backupType",
- "schema": "public",
- "values": [
- "database",
- "compose"
- ]
- },
- "public.databaseType": {
- "name": "databaseType",
- "schema": "public",
- "values": [
- "postgres",
- "mariadb",
- "mysql",
- "mongo",
- "web-server"
- ]
- },
- "public.composeType": {
- "name": "composeType",
- "schema": "public",
- "values": [
- "docker-compose",
- "stack"
- ]
- },
- "public.sourceTypeCompose": {
- "name": "sourceTypeCompose",
- "schema": "public",
- "values": [
- "git",
- "github",
- "gitlab",
- "bitbucket",
- "gitea",
- "raw"
- ]
- },
- "public.deploymentStatus": {
- "name": "deploymentStatus",
- "schema": "public",
- "values": [
- "running",
- "done",
- "error",
- "cancelled"
- ]
- },
- "public.domainType": {
- "name": "domainType",
- "schema": "public",
- "values": [
- "compose",
- "application",
- "preview"
- ]
- },
- "public.gitProviderType": {
- "name": "gitProviderType",
- "schema": "public",
- "values": [
- "github",
- "gitlab",
- "bitbucket",
- "gitea"
- ]
- },
- "public.mountType": {
- "name": "mountType",
- "schema": "public",
- "values": [
- "bind",
- "volume",
- "file"
- ]
- },
- "public.serviceType": {
- "name": "serviceType",
- "schema": "public",
- "values": [
- "application",
- "postgres",
- "mysql",
- "mariadb",
- "mongo",
- "redis",
- "compose"
- ]
- },
- "public.notificationType": {
- "name": "notificationType",
- "schema": "public",
- "values": [
- "slack",
- "telegram",
- "discord",
- "email",
- "gotify",
- "ntfy",
- "lark"
- ]
- },
- "public.protocolType": {
- "name": "protocolType",
- "schema": "public",
- "values": [
- "tcp",
- "udp"
- ]
- },
- "public.publishModeType": {
- "name": "publishModeType",
- "schema": "public",
- "values": [
- "ingress",
- "host"
- ]
- },
- "public.RegistryType": {
- "name": "RegistryType",
- "schema": "public",
- "values": [
- "selfHosted",
- "cloud"
- ]
- },
- "public.scheduleType": {
- "name": "scheduleType",
- "schema": "public",
- "values": [
- "application",
- "compose",
- "server",
- "dokploy-server"
- ]
- },
- "public.shellType": {
- "name": "shellType",
- "schema": "public",
- "values": [
- "bash",
- "sh"
- ]
- },
- "public.serverStatus": {
- "name": "serverStatus",
- "schema": "public",
- "values": [
- "active",
- "inactive"
- ]
- },
- "public.serverType": {
- "name": "serverType",
- "schema": "public",
- "values": [
- "deploy",
- "build"
- ]
- },
- "public.applicationStatus": {
- "name": "applicationStatus",
- "schema": "public",
- "values": [
- "idle",
- "running",
- "done",
- "error"
- ]
- },
- "public.certificateType": {
- "name": "certificateType",
- "schema": "public",
- "values": [
- "letsencrypt",
- "none",
- "custom"
- ]
- },
- "public.triggerType": {
- "name": "triggerType",
- "schema": "public",
- "values": [
- "push",
- "tag"
- ]
- }
- },
- "schemas": {},
- "sequences": {},
- "roles": {},
- "policies": {},
- "views": {},
- "_meta": {
- "columns": {},
- "schemas": {},
- "tables": {}
- }
-}
\ No newline at end of file
diff --git a/apps/dokploy/drizzle/meta/0123_snapshot.json b/apps/dokploy/drizzle/meta/0123_snapshot.json
deleted file mode 100644
index 5f1dc48a6..000000000
--- a/apps/dokploy/drizzle/meta/0123_snapshot.json
+++ /dev/null
@@ -1,6776 +0,0 @@
-{
- "id": "47a5c430-f9e8-4238-9951-d5dc27a20ca3",
- "prevId": "2059301d-45f0-4a16-8481-6a5e54f678f5",
- "version": "7",
- "dialect": "postgresql",
- "tables": {
- "public.account": {
- "name": "account",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "account_id": {
- "name": "account_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "provider_id": {
- "name": "provider_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "user_id": {
- "name": "user_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "access_token": {
- "name": "access_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "refresh_token": {
- "name": "refresh_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "id_token": {
- "name": "id_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "access_token_expires_at": {
- "name": "access_token_expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "refresh_token_expires_at": {
- "name": "refresh_token_expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "scope": {
- "name": "scope",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "password": {
- "name": "password",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "is2FAEnabled": {
- "name": "is2FAEnabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "resetPasswordToken": {
- "name": "resetPasswordToken",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "resetPasswordExpiresAt": {
- "name": "resetPasswordExpiresAt",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "confirmationToken": {
- "name": "confirmationToken",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "confirmationExpiresAt": {
- "name": "confirmationExpiresAt",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "account_user_id_user_id_fk": {
- "name": "account_user_id_user_id_fk",
- "tableFrom": "account",
- "tableTo": "user",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.apikey": {
- "name": "apikey",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "start": {
- "name": "start",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "prefix": {
- "name": "prefix",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "key": {
- "name": "key",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "user_id": {
- "name": "user_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "refill_interval": {
- "name": "refill_interval",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "refill_amount": {
- "name": "refill_amount",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "last_refill_at": {
- "name": "last_refill_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "enabled": {
- "name": "enabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "rate_limit_enabled": {
- "name": "rate_limit_enabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "rate_limit_time_window": {
- "name": "rate_limit_time_window",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "rate_limit_max": {
- "name": "rate_limit_max",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "request_count": {
- "name": "request_count",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "remaining": {
- "name": "remaining",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "last_request": {
- "name": "last_request",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "expires_at": {
- "name": "expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "permissions": {
- "name": "permissions",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "metadata": {
- "name": "metadata",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "apikey_user_id_user_id_fk": {
- "name": "apikey_user_id_user_id_fk",
- "tableFrom": "apikey",
- "tableTo": "user",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.invitation": {
- "name": "invitation",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "organization_id": {
- "name": "organization_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "email": {
- "name": "email",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "role": {
- "name": "role",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "status": {
- "name": "status",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "expires_at": {
- "name": "expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "inviter_id": {
- "name": "inviter_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "team_id": {
- "name": "team_id",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "invitation_organization_id_organization_id_fk": {
- "name": "invitation_organization_id_organization_id_fk",
- "tableFrom": "invitation",
- "tableTo": "organization",
- "columnsFrom": [
- "organization_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "invitation_inviter_id_user_id_fk": {
- "name": "invitation_inviter_id_user_id_fk",
- "tableFrom": "invitation",
- "tableTo": "user",
- "columnsFrom": [
- "inviter_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.member": {
- "name": "member",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "organization_id": {
- "name": "organization_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "user_id": {
- "name": "user_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "role": {
- "name": "role",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "team_id": {
- "name": "team_id",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "is_default": {
- "name": "is_default",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canCreateProjects": {
- "name": "canCreateProjects",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canAccessToSSHKeys": {
- "name": "canAccessToSSHKeys",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canCreateServices": {
- "name": "canCreateServices",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canDeleteProjects": {
- "name": "canDeleteProjects",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canDeleteServices": {
- "name": "canDeleteServices",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canAccessToDocker": {
- "name": "canAccessToDocker",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canAccessToAPI": {
- "name": "canAccessToAPI",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canAccessToGitProviders": {
- "name": "canAccessToGitProviders",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canAccessToTraefikFiles": {
- "name": "canAccessToTraefikFiles",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canDeleteEnvironments": {
- "name": "canDeleteEnvironments",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canCreateEnvironments": {
- "name": "canCreateEnvironments",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "accesedProjects": {
- "name": "accesedProjects",
- "type": "text[]",
- "primaryKey": false,
- "notNull": true,
- "default": "ARRAY[]::text[]"
- },
- "accessedEnvironments": {
- "name": "accessedEnvironments",
- "type": "text[]",
- "primaryKey": false,
- "notNull": true,
- "default": "ARRAY[]::text[]"
- },
- "accesedServices": {
- "name": "accesedServices",
- "type": "text[]",
- "primaryKey": false,
- "notNull": true,
- "default": "ARRAY[]::text[]"
- }
- },
- "indexes": {},
- "foreignKeys": {
- "member_organization_id_organization_id_fk": {
- "name": "member_organization_id_organization_id_fk",
- "tableFrom": "member",
- "tableTo": "organization",
- "columnsFrom": [
- "organization_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "member_user_id_user_id_fk": {
- "name": "member_user_id_user_id_fk",
- "tableFrom": "member",
- "tableTo": "user",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.organization": {
- "name": "organization",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "slug": {
- "name": "slug",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "logo": {
- "name": "logo",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "metadata": {
- "name": "metadata",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "owner_id": {
- "name": "owner_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "organization_owner_id_user_id_fk": {
- "name": "organization_owner_id_user_id_fk",
- "tableFrom": "organization",
- "tableTo": "user",
- "columnsFrom": [
- "owner_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "organization_slug_unique": {
- "name": "organization_slug_unique",
- "nullsNotDistinct": false,
- "columns": [
- "slug"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.two_factor": {
- "name": "two_factor",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "secret": {
- "name": "secret",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "backup_codes": {
- "name": "backup_codes",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "user_id": {
- "name": "user_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "two_factor_user_id_user_id_fk": {
- "name": "two_factor_user_id_user_id_fk",
- "tableFrom": "two_factor",
- "tableTo": "user",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.verification": {
- "name": "verification",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "identifier": {
- "name": "identifier",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "value": {
- "name": "value",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "expires_at": {
- "name": "expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.ai": {
- "name": "ai",
- "schema": "",
- "columns": {
- "aiId": {
- "name": "aiId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "apiUrl": {
- "name": "apiUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "apiKey": {
- "name": "apiKey",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "model": {
- "name": "model",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "isEnabled": {
- "name": "isEnabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": true
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "ai_organizationId_organization_id_fk": {
- "name": "ai_organizationId_organization_id_fk",
- "tableFrom": "ai",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.application": {
- "name": "application",
- "schema": "",
- "columns": {
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "previewEnv": {
- "name": "previewEnv",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "watchPaths": {
- "name": "watchPaths",
- "type": "text[]",
- "primaryKey": false,
- "notNull": false
- },
- "previewBuildArgs": {
- "name": "previewBuildArgs",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "previewBuildSecrets": {
- "name": "previewBuildSecrets",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "previewLabels": {
- "name": "previewLabels",
- "type": "text[]",
- "primaryKey": false,
- "notNull": false
- },
- "previewWildcard": {
- "name": "previewWildcard",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "previewPort": {
- "name": "previewPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": false,
- "default": 3000
- },
- "previewHttps": {
- "name": "previewHttps",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "previewPath": {
- "name": "previewPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'/'"
- },
- "certificateType": {
- "name": "certificateType",
- "type": "certificateType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'none'"
- },
- "previewCustomCertResolver": {
- "name": "previewCustomCertResolver",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "previewLimit": {
- "name": "previewLimit",
- "type": "integer",
- "primaryKey": false,
- "notNull": false,
- "default": 3
- },
- "isPreviewDeploymentsActive": {
- "name": "isPreviewDeploymentsActive",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false,
- "default": false
- },
- "previewRequireCollaboratorPermissions": {
- "name": "previewRequireCollaboratorPermissions",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false,
- "default": true
- },
- "rollbackActive": {
- "name": "rollbackActive",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false,
- "default": false
- },
- "buildArgs": {
- "name": "buildArgs",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "buildSecrets": {
- "name": "buildSecrets",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryReservation": {
- "name": "memoryReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryLimit": {
- "name": "memoryLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuReservation": {
- "name": "cpuReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuLimit": {
- "name": "cpuLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "title": {
- "name": "title",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "enabled": {
- "name": "enabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "subtitle": {
- "name": "subtitle",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "refreshToken": {
- "name": "refreshToken",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "sourceType": {
- "name": "sourceType",
- "type": "sourceType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'github'"
- },
- "cleanCache": {
- "name": "cleanCache",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false,
- "default": false
- },
- "repository": {
- "name": "repository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "owner": {
- "name": "owner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "branch": {
- "name": "branch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "buildPath": {
- "name": "buildPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'/'"
- },
- "triggerType": {
- "name": "triggerType",
- "type": "triggerType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": false,
- "default": "'push'"
- },
- "autoDeploy": {
- "name": "autoDeploy",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabProjectId": {
- "name": "gitlabProjectId",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabRepository": {
- "name": "gitlabRepository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabOwner": {
- "name": "gitlabOwner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabBranch": {
- "name": "gitlabBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabBuildPath": {
- "name": "gitlabBuildPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'/'"
- },
- "gitlabPathNamespace": {
- "name": "gitlabPathNamespace",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaRepository": {
- "name": "giteaRepository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaOwner": {
- "name": "giteaOwner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaBranch": {
- "name": "giteaBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaBuildPath": {
- "name": "giteaBuildPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'/'"
- },
- "bitbucketRepository": {
- "name": "bitbucketRepository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketOwner": {
- "name": "bitbucketOwner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketBranch": {
- "name": "bitbucketBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketBuildPath": {
- "name": "bitbucketBuildPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'/'"
- },
- "username": {
- "name": "username",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "password": {
- "name": "password",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "dockerImage": {
- "name": "dockerImage",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "registryUrl": {
- "name": "registryUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customGitUrl": {
- "name": "customGitUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customGitBranch": {
- "name": "customGitBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customGitBuildPath": {
- "name": "customGitBuildPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customGitSSHKeyId": {
- "name": "customGitSSHKeyId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "enableSubmodules": {
- "name": "enableSubmodules",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "dockerfile": {
- "name": "dockerfile",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "dockerContextPath": {
- "name": "dockerContextPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "dockerBuildStage": {
- "name": "dockerBuildStage",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "dropBuildPath": {
- "name": "dropBuildPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "healthCheckSwarm": {
- "name": "healthCheckSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "restartPolicySwarm": {
- "name": "restartPolicySwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "placementSwarm": {
- "name": "placementSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "updateConfigSwarm": {
- "name": "updateConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "rollbackConfigSwarm": {
- "name": "rollbackConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "modeSwarm": {
- "name": "modeSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "labelsSwarm": {
- "name": "labelsSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "networkSwarm": {
- "name": "networkSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "stopGracePeriodSwarm": {
- "name": "stopGracePeriodSwarm",
- "type": "bigint",
- "primaryKey": false,
- "notNull": false
- },
- "endpointSpecSwarm": {
- "name": "endpointSpecSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "replicas": {
- "name": "replicas",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 1
- },
- "applicationStatus": {
- "name": "applicationStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "buildType": {
- "name": "buildType",
- "type": "buildType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'nixpacks'"
- },
- "railpackVersion": {
- "name": "railpackVersion",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'0.2.2'"
- },
- "herokuVersion": {
- "name": "herokuVersion",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'24'"
- },
- "publishDirectory": {
- "name": "publishDirectory",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "isStaticSpa": {
- "name": "isStaticSpa",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "registryId": {
- "name": "registryId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "githubId": {
- "name": "githubId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabId": {
- "name": "gitlabId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaId": {
- "name": "giteaId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketId": {
- "name": "bitbucketId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "buildServerId": {
- "name": "buildServerId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "buildRegistryId": {
- "name": "buildRegistryId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "application_customGitSSHKeyId_ssh-key_sshKeyId_fk": {
- "name": "application_customGitSSHKeyId_ssh-key_sshKeyId_fk",
- "tableFrom": "application",
- "tableTo": "ssh-key",
- "columnsFrom": [
- "customGitSSHKeyId"
- ],
- "columnsTo": [
- "sshKeyId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "application_registryId_registry_registryId_fk": {
- "name": "application_registryId_registry_registryId_fk",
- "tableFrom": "application",
- "tableTo": "registry",
- "columnsFrom": [
- "registryId"
- ],
- "columnsTo": [
- "registryId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "application_environmentId_environment_environmentId_fk": {
- "name": "application_environmentId_environment_environmentId_fk",
- "tableFrom": "application",
- "tableTo": "environment",
- "columnsFrom": [
- "environmentId"
- ],
- "columnsTo": [
- "environmentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "application_githubId_github_githubId_fk": {
- "name": "application_githubId_github_githubId_fk",
- "tableFrom": "application",
- "tableTo": "github",
- "columnsFrom": [
- "githubId"
- ],
- "columnsTo": [
- "githubId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "application_gitlabId_gitlab_gitlabId_fk": {
- "name": "application_gitlabId_gitlab_gitlabId_fk",
- "tableFrom": "application",
- "tableTo": "gitlab",
- "columnsFrom": [
- "gitlabId"
- ],
- "columnsTo": [
- "gitlabId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "application_giteaId_gitea_giteaId_fk": {
- "name": "application_giteaId_gitea_giteaId_fk",
- "tableFrom": "application",
- "tableTo": "gitea",
- "columnsFrom": [
- "giteaId"
- ],
- "columnsTo": [
- "giteaId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "application_bitbucketId_bitbucket_bitbucketId_fk": {
- "name": "application_bitbucketId_bitbucket_bitbucketId_fk",
- "tableFrom": "application",
- "tableTo": "bitbucket",
- "columnsFrom": [
- "bitbucketId"
- ],
- "columnsTo": [
- "bitbucketId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "application_serverId_server_serverId_fk": {
- "name": "application_serverId_server_serverId_fk",
- "tableFrom": "application",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "application_buildServerId_server_serverId_fk": {
- "name": "application_buildServerId_server_serverId_fk",
- "tableFrom": "application",
- "tableTo": "server",
- "columnsFrom": [
- "buildServerId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "application_buildRegistryId_registry_registryId_fk": {
- "name": "application_buildRegistryId_registry_registryId_fk",
- "tableFrom": "application",
- "tableTo": "registry",
- "columnsFrom": [
- "buildRegistryId"
- ],
- "columnsTo": [
- "registryId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "application_appName_unique": {
- "name": "application_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.backup": {
- "name": "backup",
- "schema": "",
- "columns": {
- "backupId": {
- "name": "backupId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "schedule": {
- "name": "schedule",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "enabled": {
- "name": "enabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "database": {
- "name": "database",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "prefix": {
- "name": "prefix",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serviceName": {
- "name": "serviceName",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "destinationId": {
- "name": "destinationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "keepLatestCount": {
- "name": "keepLatestCount",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "backupType": {
- "name": "backupType",
- "type": "backupType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'database'"
- },
- "databaseType": {
- "name": "databaseType",
- "type": "databaseType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true
- },
- "composeId": {
- "name": "composeId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "postgresId": {
- "name": "postgresId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mariadbId": {
- "name": "mariadbId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mysqlId": {
- "name": "mysqlId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mongoId": {
- "name": "mongoId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "userId": {
- "name": "userId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "metadata": {
- "name": "metadata",
- "type": "jsonb",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "backup_destinationId_destination_destinationId_fk": {
- "name": "backup_destinationId_destination_destinationId_fk",
- "tableFrom": "backup",
- "tableTo": "destination",
- "columnsFrom": [
- "destinationId"
- ],
- "columnsTo": [
- "destinationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "backup_composeId_compose_composeId_fk": {
- "name": "backup_composeId_compose_composeId_fk",
- "tableFrom": "backup",
- "tableTo": "compose",
- "columnsFrom": [
- "composeId"
- ],
- "columnsTo": [
- "composeId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "backup_postgresId_postgres_postgresId_fk": {
- "name": "backup_postgresId_postgres_postgresId_fk",
- "tableFrom": "backup",
- "tableTo": "postgres",
- "columnsFrom": [
- "postgresId"
- ],
- "columnsTo": [
- "postgresId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "backup_mariadbId_mariadb_mariadbId_fk": {
- "name": "backup_mariadbId_mariadb_mariadbId_fk",
- "tableFrom": "backup",
- "tableTo": "mariadb",
- "columnsFrom": [
- "mariadbId"
- ],
- "columnsTo": [
- "mariadbId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "backup_mysqlId_mysql_mysqlId_fk": {
- "name": "backup_mysqlId_mysql_mysqlId_fk",
- "tableFrom": "backup",
- "tableTo": "mysql",
- "columnsFrom": [
- "mysqlId"
- ],
- "columnsTo": [
- "mysqlId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "backup_mongoId_mongo_mongoId_fk": {
- "name": "backup_mongoId_mongo_mongoId_fk",
- "tableFrom": "backup",
- "tableTo": "mongo",
- "columnsFrom": [
- "mongoId"
- ],
- "columnsTo": [
- "mongoId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "backup_userId_user_id_fk": {
- "name": "backup_userId_user_id_fk",
- "tableFrom": "backup",
- "tableTo": "user",
- "columnsFrom": [
- "userId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "backup_appName_unique": {
- "name": "backup_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.bitbucket": {
- "name": "bitbucket",
- "schema": "",
- "columns": {
- "bitbucketId": {
- "name": "bitbucketId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "bitbucketUsername": {
- "name": "bitbucketUsername",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketEmail": {
- "name": "bitbucketEmail",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "appPassword": {
- "name": "appPassword",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "apiToken": {
- "name": "apiToken",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketWorkspaceName": {
- "name": "bitbucketWorkspaceName",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitProviderId": {
- "name": "gitProviderId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "bitbucket_gitProviderId_git_provider_gitProviderId_fk": {
- "name": "bitbucket_gitProviderId_git_provider_gitProviderId_fk",
- "tableFrom": "bitbucket",
- "tableTo": "git_provider",
- "columnsFrom": [
- "gitProviderId"
- ],
- "columnsTo": [
- "gitProviderId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.certificate": {
- "name": "certificate",
- "schema": "",
- "columns": {
- "certificateId": {
- "name": "certificateId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "certificateData": {
- "name": "certificateData",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "privateKey": {
- "name": "privateKey",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "certificatePath": {
- "name": "certificatePath",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "autoRenew": {
- "name": "autoRenew",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "certificate_organizationId_organization_id_fk": {
- "name": "certificate_organizationId_organization_id_fk",
- "tableFrom": "certificate",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "certificate_serverId_server_serverId_fk": {
- "name": "certificate_serverId_server_serverId_fk",
- "tableFrom": "certificate",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "certificate_certificatePath_unique": {
- "name": "certificate_certificatePath_unique",
- "nullsNotDistinct": false,
- "columns": [
- "certificatePath"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.compose": {
- "name": "compose",
- "schema": "",
- "columns": {
- "composeId": {
- "name": "composeId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "composeFile": {
- "name": "composeFile",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "refreshToken": {
- "name": "refreshToken",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "sourceType": {
- "name": "sourceType",
- "type": "sourceTypeCompose",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'github'"
- },
- "composeType": {
- "name": "composeType",
- "type": "composeType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'docker-compose'"
- },
- "repository": {
- "name": "repository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "owner": {
- "name": "owner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "branch": {
- "name": "branch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "autoDeploy": {
- "name": "autoDeploy",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabProjectId": {
- "name": "gitlabProjectId",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabRepository": {
- "name": "gitlabRepository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabOwner": {
- "name": "gitlabOwner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabBranch": {
- "name": "gitlabBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabPathNamespace": {
- "name": "gitlabPathNamespace",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketRepository": {
- "name": "bitbucketRepository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketOwner": {
- "name": "bitbucketOwner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketBranch": {
- "name": "bitbucketBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaRepository": {
- "name": "giteaRepository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaOwner": {
- "name": "giteaOwner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaBranch": {
- "name": "giteaBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customGitUrl": {
- "name": "customGitUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customGitBranch": {
- "name": "customGitBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customGitSSHKeyId": {
- "name": "customGitSSHKeyId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "enableSubmodules": {
- "name": "enableSubmodules",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "composePath": {
- "name": "composePath",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "'./docker-compose.yml'"
- },
- "suffix": {
- "name": "suffix",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "randomize": {
- "name": "randomize",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "isolatedDeployment": {
- "name": "isolatedDeployment",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "isolatedDeploymentsVolume": {
- "name": "isolatedDeploymentsVolume",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "triggerType": {
- "name": "triggerType",
- "type": "triggerType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": false,
- "default": "'push'"
- },
- "composeStatus": {
- "name": "composeStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "watchPaths": {
- "name": "watchPaths",
- "type": "text[]",
- "primaryKey": false,
- "notNull": false
- },
- "githubId": {
- "name": "githubId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabId": {
- "name": "gitlabId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketId": {
- "name": "bitbucketId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaId": {
- "name": "giteaId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk": {
- "name": "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk",
- "tableFrom": "compose",
- "tableTo": "ssh-key",
- "columnsFrom": [
- "customGitSSHKeyId"
- ],
- "columnsTo": [
- "sshKeyId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "compose_environmentId_environment_environmentId_fk": {
- "name": "compose_environmentId_environment_environmentId_fk",
- "tableFrom": "compose",
- "tableTo": "environment",
- "columnsFrom": [
- "environmentId"
- ],
- "columnsTo": [
- "environmentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "compose_githubId_github_githubId_fk": {
- "name": "compose_githubId_github_githubId_fk",
- "tableFrom": "compose",
- "tableTo": "github",
- "columnsFrom": [
- "githubId"
- ],
- "columnsTo": [
- "githubId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "compose_gitlabId_gitlab_gitlabId_fk": {
- "name": "compose_gitlabId_gitlab_gitlabId_fk",
- "tableFrom": "compose",
- "tableTo": "gitlab",
- "columnsFrom": [
- "gitlabId"
- ],
- "columnsTo": [
- "gitlabId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "compose_bitbucketId_bitbucket_bitbucketId_fk": {
- "name": "compose_bitbucketId_bitbucket_bitbucketId_fk",
- "tableFrom": "compose",
- "tableTo": "bitbucket",
- "columnsFrom": [
- "bitbucketId"
- ],
- "columnsTo": [
- "bitbucketId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "compose_giteaId_gitea_giteaId_fk": {
- "name": "compose_giteaId_gitea_giteaId_fk",
- "tableFrom": "compose",
- "tableTo": "gitea",
- "columnsFrom": [
- "giteaId"
- ],
- "columnsTo": [
- "giteaId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "compose_serverId_server_serverId_fk": {
- "name": "compose_serverId_server_serverId_fk",
- "tableFrom": "compose",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.deployment": {
- "name": "deployment",
- "schema": "",
- "columns": {
- "deploymentId": {
- "name": "deploymentId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "title": {
- "name": "title",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "status": {
- "name": "status",
- "type": "deploymentStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": false,
- "default": "'running'"
- },
- "logPath": {
- "name": "logPath",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "pid": {
- "name": "pid",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "composeId": {
- "name": "composeId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "isPreviewDeployment": {
- "name": "isPreviewDeployment",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false,
- "default": false
- },
- "previewDeploymentId": {
- "name": "previewDeploymentId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "startedAt": {
- "name": "startedAt",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "finishedAt": {
- "name": "finishedAt",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "errorMessage": {
- "name": "errorMessage",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "scheduleId": {
- "name": "scheduleId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "backupId": {
- "name": "backupId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "rollbackId": {
- "name": "rollbackId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "volumeBackupId": {
- "name": "volumeBackupId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "deployment_applicationId_application_applicationId_fk": {
- "name": "deployment_applicationId_application_applicationId_fk",
- "tableFrom": "deployment",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "deployment_composeId_compose_composeId_fk": {
- "name": "deployment_composeId_compose_composeId_fk",
- "tableFrom": "deployment",
- "tableTo": "compose",
- "columnsFrom": [
- "composeId"
- ],
- "columnsTo": [
- "composeId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "deployment_serverId_server_serverId_fk": {
- "name": "deployment_serverId_server_serverId_fk",
- "tableFrom": "deployment",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "deployment_previewDeploymentId_preview_deployments_previewDeploymentId_fk": {
- "name": "deployment_previewDeploymentId_preview_deployments_previewDeploymentId_fk",
- "tableFrom": "deployment",
- "tableTo": "preview_deployments",
- "columnsFrom": [
- "previewDeploymentId"
- ],
- "columnsTo": [
- "previewDeploymentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "deployment_scheduleId_schedule_scheduleId_fk": {
- "name": "deployment_scheduleId_schedule_scheduleId_fk",
- "tableFrom": "deployment",
- "tableTo": "schedule",
- "columnsFrom": [
- "scheduleId"
- ],
- "columnsTo": [
- "scheduleId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "deployment_backupId_backup_backupId_fk": {
- "name": "deployment_backupId_backup_backupId_fk",
- "tableFrom": "deployment",
- "tableTo": "backup",
- "columnsFrom": [
- "backupId"
- ],
- "columnsTo": [
- "backupId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "deployment_rollbackId_rollback_rollbackId_fk": {
- "name": "deployment_rollbackId_rollback_rollbackId_fk",
- "tableFrom": "deployment",
- "tableTo": "rollback",
- "columnsFrom": [
- "rollbackId"
- ],
- "columnsTo": [
- "rollbackId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "deployment_volumeBackupId_volume_backup_volumeBackupId_fk": {
- "name": "deployment_volumeBackupId_volume_backup_volumeBackupId_fk",
- "tableFrom": "deployment",
- "tableTo": "volume_backup",
- "columnsFrom": [
- "volumeBackupId"
- ],
- "columnsTo": [
- "volumeBackupId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.destination": {
- "name": "destination",
- "schema": "",
- "columns": {
- "destinationId": {
- "name": "destinationId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "provider": {
- "name": "provider",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "accessKey": {
- "name": "accessKey",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "secretAccessKey": {
- "name": "secretAccessKey",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "bucket": {
- "name": "bucket",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "region": {
- "name": "region",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "endpoint": {
- "name": "endpoint",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "default": "now()"
- }
- },
- "indexes": {},
- "foreignKeys": {
- "destination_organizationId_organization_id_fk": {
- "name": "destination_organizationId_organization_id_fk",
- "tableFrom": "destination",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.domain": {
- "name": "domain",
- "schema": "",
- "columns": {
- "domainId": {
- "name": "domainId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "host": {
- "name": "host",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "https": {
- "name": "https",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "port": {
- "name": "port",
- "type": "integer",
- "primaryKey": false,
- "notNull": false,
- "default": 3000
- },
- "path": {
- "name": "path",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'/'"
- },
- "serviceName": {
- "name": "serviceName",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "domainType": {
- "name": "domainType",
- "type": "domainType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": false,
- "default": "'application'"
- },
- "uniqueConfigKey": {
- "name": "uniqueConfigKey",
- "type": "serial",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "composeId": {
- "name": "composeId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customCertResolver": {
- "name": "customCertResolver",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "previewDeploymentId": {
- "name": "previewDeploymentId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "certificateType": {
- "name": "certificateType",
- "type": "certificateType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'none'"
- },
- "internalPath": {
- "name": "internalPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'/'"
- },
- "stripPath": {
- "name": "stripPath",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "domain_composeId_compose_composeId_fk": {
- "name": "domain_composeId_compose_composeId_fk",
- "tableFrom": "domain",
- "tableTo": "compose",
- "columnsFrom": [
- "composeId"
- ],
- "columnsTo": [
- "composeId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "domain_applicationId_application_applicationId_fk": {
- "name": "domain_applicationId_application_applicationId_fk",
- "tableFrom": "domain",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "domain_previewDeploymentId_preview_deployments_previewDeploymentId_fk": {
- "name": "domain_previewDeploymentId_preview_deployments_previewDeploymentId_fk",
- "tableFrom": "domain",
- "tableTo": "preview_deployments",
- "columnsFrom": [
- "previewDeploymentId"
- ],
- "columnsTo": [
- "previewDeploymentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.environment": {
- "name": "environment",
- "schema": "",
- "columns": {
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "projectId": {
- "name": "projectId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "environment_projectId_project_projectId_fk": {
- "name": "environment_projectId_project_projectId_fk",
- "tableFrom": "environment",
- "tableTo": "project",
- "columnsFrom": [
- "projectId"
- ],
- "columnsTo": [
- "projectId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.git_provider": {
- "name": "git_provider",
- "schema": "",
- "columns": {
- "gitProviderId": {
- "name": "gitProviderId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "providerType": {
- "name": "providerType",
- "type": "gitProviderType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'github'"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "userId": {
- "name": "userId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "git_provider_organizationId_organization_id_fk": {
- "name": "git_provider_organizationId_organization_id_fk",
- "tableFrom": "git_provider",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "git_provider_userId_user_id_fk": {
- "name": "git_provider_userId_user_id_fk",
- "tableFrom": "git_provider",
- "tableTo": "user",
- "columnsFrom": [
- "userId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.gitea": {
- "name": "gitea",
- "schema": "",
- "columns": {
- "giteaId": {
- "name": "giteaId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "giteaUrl": {
- "name": "giteaUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "'https://gitea.com'"
- },
- "redirect_uri": {
- "name": "redirect_uri",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "client_id": {
- "name": "client_id",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "client_secret": {
- "name": "client_secret",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitProviderId": {
- "name": "gitProviderId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "access_token": {
- "name": "access_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "refresh_token": {
- "name": "refresh_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "expires_at": {
- "name": "expires_at",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "scopes": {
- "name": "scopes",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'repo,repo:status,read:user,read:org'"
- },
- "last_authenticated_at": {
- "name": "last_authenticated_at",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "gitea_gitProviderId_git_provider_gitProviderId_fk": {
- "name": "gitea_gitProviderId_git_provider_gitProviderId_fk",
- "tableFrom": "gitea",
- "tableTo": "git_provider",
- "columnsFrom": [
- "gitProviderId"
- ],
- "columnsTo": [
- "gitProviderId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.github": {
- "name": "github",
- "schema": "",
- "columns": {
- "githubId": {
- "name": "githubId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "githubAppName": {
- "name": "githubAppName",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "githubAppId": {
- "name": "githubAppId",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "githubClientId": {
- "name": "githubClientId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "githubClientSecret": {
- "name": "githubClientSecret",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "githubInstallationId": {
- "name": "githubInstallationId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "githubPrivateKey": {
- "name": "githubPrivateKey",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "githubWebhookSecret": {
- "name": "githubWebhookSecret",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitProviderId": {
- "name": "gitProviderId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "github_gitProviderId_git_provider_gitProviderId_fk": {
- "name": "github_gitProviderId_git_provider_gitProviderId_fk",
- "tableFrom": "github",
- "tableTo": "git_provider",
- "columnsFrom": [
- "gitProviderId"
- ],
- "columnsTo": [
- "gitProviderId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.gitlab": {
- "name": "gitlab",
- "schema": "",
- "columns": {
- "gitlabId": {
- "name": "gitlabId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "gitlabUrl": {
- "name": "gitlabUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "'https://gitlab.com'"
- },
- "application_id": {
- "name": "application_id",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "redirect_uri": {
- "name": "redirect_uri",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "secret": {
- "name": "secret",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "access_token": {
- "name": "access_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "refresh_token": {
- "name": "refresh_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "group_name": {
- "name": "group_name",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "expires_at": {
- "name": "expires_at",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "gitProviderId": {
- "name": "gitProviderId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "gitlab_gitProviderId_git_provider_gitProviderId_fk": {
- "name": "gitlab_gitProviderId_git_provider_gitProviderId_fk",
- "tableFrom": "gitlab",
- "tableTo": "git_provider",
- "columnsFrom": [
- "gitProviderId"
- ],
- "columnsTo": [
- "gitProviderId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.mariadb": {
- "name": "mariadb",
- "schema": "",
- "columns": {
- "mariadbId": {
- "name": "mariadbId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "databaseName": {
- "name": "databaseName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databaseUser": {
- "name": "databaseUser",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databasePassword": {
- "name": "databasePassword",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "rootPassword": {
- "name": "rootPassword",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "dockerImage": {
- "name": "dockerImage",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryReservation": {
- "name": "memoryReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryLimit": {
- "name": "memoryLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuReservation": {
- "name": "cpuReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuLimit": {
- "name": "cpuLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "externalPort": {
- "name": "externalPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "applicationStatus": {
- "name": "applicationStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "healthCheckSwarm": {
- "name": "healthCheckSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "restartPolicySwarm": {
- "name": "restartPolicySwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "placementSwarm": {
- "name": "placementSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "updateConfigSwarm": {
- "name": "updateConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "rollbackConfigSwarm": {
- "name": "rollbackConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "modeSwarm": {
- "name": "modeSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "labelsSwarm": {
- "name": "labelsSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "networkSwarm": {
- "name": "networkSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "stopGracePeriodSwarm": {
- "name": "stopGracePeriodSwarm",
- "type": "bigint",
- "primaryKey": false,
- "notNull": false
- },
- "endpointSpecSwarm": {
- "name": "endpointSpecSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "replicas": {
- "name": "replicas",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 1
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "mariadb_environmentId_environment_environmentId_fk": {
- "name": "mariadb_environmentId_environment_environmentId_fk",
- "tableFrom": "mariadb",
- "tableTo": "environment",
- "columnsFrom": [
- "environmentId"
- ],
- "columnsTo": [
- "environmentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mariadb_serverId_server_serverId_fk": {
- "name": "mariadb_serverId_server_serverId_fk",
- "tableFrom": "mariadb",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "mariadb_appName_unique": {
- "name": "mariadb_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.mongo": {
- "name": "mongo",
- "schema": "",
- "columns": {
- "mongoId": {
- "name": "mongoId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "databaseUser": {
- "name": "databaseUser",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databasePassword": {
- "name": "databasePassword",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "dockerImage": {
- "name": "dockerImage",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryReservation": {
- "name": "memoryReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryLimit": {
- "name": "memoryLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuReservation": {
- "name": "cpuReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuLimit": {
- "name": "cpuLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "externalPort": {
- "name": "externalPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "applicationStatus": {
- "name": "applicationStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "healthCheckSwarm": {
- "name": "healthCheckSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "restartPolicySwarm": {
- "name": "restartPolicySwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "placementSwarm": {
- "name": "placementSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "updateConfigSwarm": {
- "name": "updateConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "rollbackConfigSwarm": {
- "name": "rollbackConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "modeSwarm": {
- "name": "modeSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "labelsSwarm": {
- "name": "labelsSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "networkSwarm": {
- "name": "networkSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "stopGracePeriodSwarm": {
- "name": "stopGracePeriodSwarm",
- "type": "bigint",
- "primaryKey": false,
- "notNull": false
- },
- "endpointSpecSwarm": {
- "name": "endpointSpecSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "replicas": {
- "name": "replicas",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 1
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "replicaSets": {
- "name": "replicaSets",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false,
- "default": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "mongo_environmentId_environment_environmentId_fk": {
- "name": "mongo_environmentId_environment_environmentId_fk",
- "tableFrom": "mongo",
- "tableTo": "environment",
- "columnsFrom": [
- "environmentId"
- ],
- "columnsTo": [
- "environmentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mongo_serverId_server_serverId_fk": {
- "name": "mongo_serverId_server_serverId_fk",
- "tableFrom": "mongo",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "mongo_appName_unique": {
- "name": "mongo_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.mount": {
- "name": "mount",
- "schema": "",
- "columns": {
- "mountId": {
- "name": "mountId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "type": {
- "name": "type",
- "type": "mountType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true
- },
- "hostPath": {
- "name": "hostPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "volumeName": {
- "name": "volumeName",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "filePath": {
- "name": "filePath",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "content": {
- "name": "content",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "serviceType": {
- "name": "serviceType",
- "type": "serviceType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'application'"
- },
- "mountPath": {
- "name": "mountPath",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "postgresId": {
- "name": "postgresId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mariadbId": {
- "name": "mariadbId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mongoId": {
- "name": "mongoId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mysqlId": {
- "name": "mysqlId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "redisId": {
- "name": "redisId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "composeId": {
- "name": "composeId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "mount_applicationId_application_applicationId_fk": {
- "name": "mount_applicationId_application_applicationId_fk",
- "tableFrom": "mount",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mount_postgresId_postgres_postgresId_fk": {
- "name": "mount_postgresId_postgres_postgresId_fk",
- "tableFrom": "mount",
- "tableTo": "postgres",
- "columnsFrom": [
- "postgresId"
- ],
- "columnsTo": [
- "postgresId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mount_mariadbId_mariadb_mariadbId_fk": {
- "name": "mount_mariadbId_mariadb_mariadbId_fk",
- "tableFrom": "mount",
- "tableTo": "mariadb",
- "columnsFrom": [
- "mariadbId"
- ],
- "columnsTo": [
- "mariadbId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mount_mongoId_mongo_mongoId_fk": {
- "name": "mount_mongoId_mongo_mongoId_fk",
- "tableFrom": "mount",
- "tableTo": "mongo",
- "columnsFrom": [
- "mongoId"
- ],
- "columnsTo": [
- "mongoId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mount_mysqlId_mysql_mysqlId_fk": {
- "name": "mount_mysqlId_mysql_mysqlId_fk",
- "tableFrom": "mount",
- "tableTo": "mysql",
- "columnsFrom": [
- "mysqlId"
- ],
- "columnsTo": [
- "mysqlId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mount_redisId_redis_redisId_fk": {
- "name": "mount_redisId_redis_redisId_fk",
- "tableFrom": "mount",
- "tableTo": "redis",
- "columnsFrom": [
- "redisId"
- ],
- "columnsTo": [
- "redisId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mount_composeId_compose_composeId_fk": {
- "name": "mount_composeId_compose_composeId_fk",
- "tableFrom": "mount",
- "tableTo": "compose",
- "columnsFrom": [
- "composeId"
- ],
- "columnsTo": [
- "composeId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.mysql": {
- "name": "mysql",
- "schema": "",
- "columns": {
- "mysqlId": {
- "name": "mysqlId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "databaseName": {
- "name": "databaseName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databaseUser": {
- "name": "databaseUser",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databasePassword": {
- "name": "databasePassword",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "rootPassword": {
- "name": "rootPassword",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "dockerImage": {
- "name": "dockerImage",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryReservation": {
- "name": "memoryReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryLimit": {
- "name": "memoryLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuReservation": {
- "name": "cpuReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuLimit": {
- "name": "cpuLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "externalPort": {
- "name": "externalPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "applicationStatus": {
- "name": "applicationStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "healthCheckSwarm": {
- "name": "healthCheckSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "restartPolicySwarm": {
- "name": "restartPolicySwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "placementSwarm": {
- "name": "placementSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "updateConfigSwarm": {
- "name": "updateConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "rollbackConfigSwarm": {
- "name": "rollbackConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "modeSwarm": {
- "name": "modeSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "labelsSwarm": {
- "name": "labelsSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "networkSwarm": {
- "name": "networkSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "stopGracePeriodSwarm": {
- "name": "stopGracePeriodSwarm",
- "type": "bigint",
- "primaryKey": false,
- "notNull": false
- },
- "endpointSpecSwarm": {
- "name": "endpointSpecSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "replicas": {
- "name": "replicas",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 1
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "mysql_environmentId_environment_environmentId_fk": {
- "name": "mysql_environmentId_environment_environmentId_fk",
- "tableFrom": "mysql",
- "tableTo": "environment",
- "columnsFrom": [
- "environmentId"
- ],
- "columnsTo": [
- "environmentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mysql_serverId_server_serverId_fk": {
- "name": "mysql_serverId_server_serverId_fk",
- "tableFrom": "mysql",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "mysql_appName_unique": {
- "name": "mysql_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.discord": {
- "name": "discord",
- "schema": "",
- "columns": {
- "discordId": {
- "name": "discordId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "webhookUrl": {
- "name": "webhookUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "decoration": {
- "name": "decoration",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.email": {
- "name": "email",
- "schema": "",
- "columns": {
- "emailId": {
- "name": "emailId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "smtpServer": {
- "name": "smtpServer",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "smtpPort": {
- "name": "smtpPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "username": {
- "name": "username",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "password": {
- "name": "password",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "fromAddress": {
- "name": "fromAddress",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "toAddress": {
- "name": "toAddress",
- "type": "text[]",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.gotify": {
- "name": "gotify",
- "schema": "",
- "columns": {
- "gotifyId": {
- "name": "gotifyId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "serverUrl": {
- "name": "serverUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appToken": {
- "name": "appToken",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "priority": {
- "name": "priority",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 5
- },
- "decoration": {
- "name": "decoration",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.lark": {
- "name": "lark",
- "schema": "",
- "columns": {
- "larkId": {
- "name": "larkId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "webhookUrl": {
- "name": "webhookUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.notification": {
- "name": "notification",
- "schema": "",
- "columns": {
- "notificationId": {
- "name": "notificationId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appDeploy": {
- "name": "appDeploy",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "appBuildError": {
- "name": "appBuildError",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "databaseBackup": {
- "name": "databaseBackup",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "dokployRestart": {
- "name": "dokployRestart",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "dockerCleanup": {
- "name": "dockerCleanup",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "serverThreshold": {
- "name": "serverThreshold",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "notificationType": {
- "name": "notificationType",
- "type": "notificationType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "slackId": {
- "name": "slackId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "telegramId": {
- "name": "telegramId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "discordId": {
- "name": "discordId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "emailId": {
- "name": "emailId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gotifyId": {
- "name": "gotifyId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "ntfyId": {
- "name": "ntfyId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "larkId": {
- "name": "larkId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "notification_slackId_slack_slackId_fk": {
- "name": "notification_slackId_slack_slackId_fk",
- "tableFrom": "notification",
- "tableTo": "slack",
- "columnsFrom": [
- "slackId"
- ],
- "columnsTo": [
- "slackId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "notification_telegramId_telegram_telegramId_fk": {
- "name": "notification_telegramId_telegram_telegramId_fk",
- "tableFrom": "notification",
- "tableTo": "telegram",
- "columnsFrom": [
- "telegramId"
- ],
- "columnsTo": [
- "telegramId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "notification_discordId_discord_discordId_fk": {
- "name": "notification_discordId_discord_discordId_fk",
- "tableFrom": "notification",
- "tableTo": "discord",
- "columnsFrom": [
- "discordId"
- ],
- "columnsTo": [
- "discordId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "notification_emailId_email_emailId_fk": {
- "name": "notification_emailId_email_emailId_fk",
- "tableFrom": "notification",
- "tableTo": "email",
- "columnsFrom": [
- "emailId"
- ],
- "columnsTo": [
- "emailId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "notification_gotifyId_gotify_gotifyId_fk": {
- "name": "notification_gotifyId_gotify_gotifyId_fk",
- "tableFrom": "notification",
- "tableTo": "gotify",
- "columnsFrom": [
- "gotifyId"
- ],
- "columnsTo": [
- "gotifyId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "notification_ntfyId_ntfy_ntfyId_fk": {
- "name": "notification_ntfyId_ntfy_ntfyId_fk",
- "tableFrom": "notification",
- "tableTo": "ntfy",
- "columnsFrom": [
- "ntfyId"
- ],
- "columnsTo": [
- "ntfyId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "notification_larkId_lark_larkId_fk": {
- "name": "notification_larkId_lark_larkId_fk",
- "tableFrom": "notification",
- "tableTo": "lark",
- "columnsFrom": [
- "larkId"
- ],
- "columnsTo": [
- "larkId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "notification_organizationId_organization_id_fk": {
- "name": "notification_organizationId_organization_id_fk",
- "tableFrom": "notification",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.ntfy": {
- "name": "ntfy",
- "schema": "",
- "columns": {
- "ntfyId": {
- "name": "ntfyId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "serverUrl": {
- "name": "serverUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "topic": {
- "name": "topic",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "accessToken": {
- "name": "accessToken",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "priority": {
- "name": "priority",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 3
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.slack": {
- "name": "slack",
- "schema": "",
- "columns": {
- "slackId": {
- "name": "slackId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "webhookUrl": {
- "name": "webhookUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "channel": {
- "name": "channel",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.telegram": {
- "name": "telegram",
- "schema": "",
- "columns": {
- "telegramId": {
- "name": "telegramId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "botToken": {
- "name": "botToken",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "chatId": {
- "name": "chatId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "messageThreadId": {
- "name": "messageThreadId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.port": {
- "name": "port",
- "schema": "",
- "columns": {
- "portId": {
- "name": "portId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "publishedPort": {
- "name": "publishedPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "publishMode": {
- "name": "publishMode",
- "type": "publishModeType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'host'"
- },
- "targetPort": {
- "name": "targetPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "protocol": {
- "name": "protocol",
- "type": "protocolType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "port_applicationId_application_applicationId_fk": {
- "name": "port_applicationId_application_applicationId_fk",
- "tableFrom": "port",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.postgres": {
- "name": "postgres",
- "schema": "",
- "columns": {
- "postgresId": {
- "name": "postgresId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databaseName": {
- "name": "databaseName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databaseUser": {
- "name": "databaseUser",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databasePassword": {
- "name": "databasePassword",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "dockerImage": {
- "name": "dockerImage",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryReservation": {
- "name": "memoryReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "externalPort": {
- "name": "externalPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "memoryLimit": {
- "name": "memoryLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuReservation": {
- "name": "cpuReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuLimit": {
- "name": "cpuLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "applicationStatus": {
- "name": "applicationStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "healthCheckSwarm": {
- "name": "healthCheckSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "restartPolicySwarm": {
- "name": "restartPolicySwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "placementSwarm": {
- "name": "placementSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "updateConfigSwarm": {
- "name": "updateConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "rollbackConfigSwarm": {
- "name": "rollbackConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "modeSwarm": {
- "name": "modeSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "labelsSwarm": {
- "name": "labelsSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "networkSwarm": {
- "name": "networkSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "stopGracePeriodSwarm": {
- "name": "stopGracePeriodSwarm",
- "type": "bigint",
- "primaryKey": false,
- "notNull": false
- },
- "endpointSpecSwarm": {
- "name": "endpointSpecSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "replicas": {
- "name": "replicas",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 1
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "postgres_environmentId_environment_environmentId_fk": {
- "name": "postgres_environmentId_environment_environmentId_fk",
- "tableFrom": "postgres",
- "tableTo": "environment",
- "columnsFrom": [
- "environmentId"
- ],
- "columnsTo": [
- "environmentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "postgres_serverId_server_serverId_fk": {
- "name": "postgres_serverId_server_serverId_fk",
- "tableFrom": "postgres",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "postgres_appName_unique": {
- "name": "postgres_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.preview_deployments": {
- "name": "preview_deployments",
- "schema": "",
- "columns": {
- "previewDeploymentId": {
- "name": "previewDeploymentId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "branch": {
- "name": "branch",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "pullRequestId": {
- "name": "pullRequestId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "pullRequestNumber": {
- "name": "pullRequestNumber",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "pullRequestURL": {
- "name": "pullRequestURL",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "pullRequestTitle": {
- "name": "pullRequestTitle",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "pullRequestCommentId": {
- "name": "pullRequestCommentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "previewStatus": {
- "name": "previewStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "domainId": {
- "name": "domainId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "expiresAt": {
- "name": "expiresAt",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "preview_deployments_applicationId_application_applicationId_fk": {
- "name": "preview_deployments_applicationId_application_applicationId_fk",
- "tableFrom": "preview_deployments",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "preview_deployments_domainId_domain_domainId_fk": {
- "name": "preview_deployments_domainId_domain_domainId_fk",
- "tableFrom": "preview_deployments",
- "tableTo": "domain",
- "columnsFrom": [
- "domainId"
- ],
- "columnsTo": [
- "domainId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "preview_deployments_appName_unique": {
- "name": "preview_deployments_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.project": {
- "name": "project",
- "schema": "",
- "columns": {
- "projectId": {
- "name": "projectId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- }
- },
- "indexes": {},
- "foreignKeys": {
- "project_organizationId_organization_id_fk": {
- "name": "project_organizationId_organization_id_fk",
- "tableFrom": "project",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.redirect": {
- "name": "redirect",
- "schema": "",
- "columns": {
- "redirectId": {
- "name": "redirectId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "regex": {
- "name": "regex",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "replacement": {
- "name": "replacement",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "permanent": {
- "name": "permanent",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "uniqueConfigKey": {
- "name": "uniqueConfigKey",
- "type": "serial",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "redirect_applicationId_application_applicationId_fk": {
- "name": "redirect_applicationId_application_applicationId_fk",
- "tableFrom": "redirect",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.redis": {
- "name": "redis",
- "schema": "",
- "columns": {
- "redisId": {
- "name": "redisId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "password": {
- "name": "password",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "dockerImage": {
- "name": "dockerImage",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryReservation": {
- "name": "memoryReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryLimit": {
- "name": "memoryLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuReservation": {
- "name": "cpuReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuLimit": {
- "name": "cpuLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "externalPort": {
- "name": "externalPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "applicationStatus": {
- "name": "applicationStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "healthCheckSwarm": {
- "name": "healthCheckSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "restartPolicySwarm": {
- "name": "restartPolicySwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "placementSwarm": {
- "name": "placementSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "updateConfigSwarm": {
- "name": "updateConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "rollbackConfigSwarm": {
- "name": "rollbackConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "modeSwarm": {
- "name": "modeSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "labelsSwarm": {
- "name": "labelsSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "networkSwarm": {
- "name": "networkSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "stopGracePeriodSwarm": {
- "name": "stopGracePeriodSwarm",
- "type": "bigint",
- "primaryKey": false,
- "notNull": false
- },
- "endpointSpecSwarm": {
- "name": "endpointSpecSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "replicas": {
- "name": "replicas",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 1
- },
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "redis_environmentId_environment_environmentId_fk": {
- "name": "redis_environmentId_environment_environmentId_fk",
- "tableFrom": "redis",
- "tableTo": "environment",
- "columnsFrom": [
- "environmentId"
- ],
- "columnsTo": [
- "environmentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "redis_serverId_server_serverId_fk": {
- "name": "redis_serverId_server_serverId_fk",
- "tableFrom": "redis",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "redis_appName_unique": {
- "name": "redis_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.registry": {
- "name": "registry",
- "schema": "",
- "columns": {
- "registryId": {
- "name": "registryId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "registryName": {
- "name": "registryName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "imagePrefix": {
- "name": "imagePrefix",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "username": {
- "name": "username",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "password": {
- "name": "password",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "registryUrl": {
- "name": "registryUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "selfHosted": {
- "name": "selfHosted",
- "type": "RegistryType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'cloud'"
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "registry_organizationId_organization_id_fk": {
- "name": "registry_organizationId_organization_id_fk",
- "tableFrom": "registry",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.rollback": {
- "name": "rollback",
- "schema": "",
- "columns": {
- "rollbackId": {
- "name": "rollbackId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "deploymentId": {
- "name": "deploymentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "version": {
- "name": "version",
- "type": "serial",
- "primaryKey": false,
- "notNull": true
- },
- "image": {
- "name": "image",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "fullContext": {
- "name": "fullContext",
- "type": "jsonb",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "rollback_deploymentId_deployment_deploymentId_fk": {
- "name": "rollback_deploymentId_deployment_deploymentId_fk",
- "tableFrom": "rollback",
- "tableTo": "deployment",
- "columnsFrom": [
- "deploymentId"
- ],
- "columnsTo": [
- "deploymentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.schedule": {
- "name": "schedule",
- "schema": "",
- "columns": {
- "scheduleId": {
- "name": "scheduleId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "cronExpression": {
- "name": "cronExpression",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serviceName": {
- "name": "serviceName",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "shellType": {
- "name": "shellType",
- "type": "shellType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'bash'"
- },
- "scheduleType": {
- "name": "scheduleType",
- "type": "scheduleType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'application'"
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "script": {
- "name": "script",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "composeId": {
- "name": "composeId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "userId": {
- "name": "userId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "enabled": {
- "name": "enabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "schedule_applicationId_application_applicationId_fk": {
- "name": "schedule_applicationId_application_applicationId_fk",
- "tableFrom": "schedule",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "schedule_composeId_compose_composeId_fk": {
- "name": "schedule_composeId_compose_composeId_fk",
- "tableFrom": "schedule",
- "tableTo": "compose",
- "columnsFrom": [
- "composeId"
- ],
- "columnsTo": [
- "composeId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "schedule_serverId_server_serverId_fk": {
- "name": "schedule_serverId_server_serverId_fk",
- "tableFrom": "schedule",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "schedule_userId_user_id_fk": {
- "name": "schedule_userId_user_id_fk",
- "tableFrom": "schedule",
- "tableTo": "user",
- "columnsFrom": [
- "userId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.security": {
- "name": "security",
- "schema": "",
- "columns": {
- "securityId": {
- "name": "securityId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "username": {
- "name": "username",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "password": {
- "name": "password",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "security_applicationId_application_applicationId_fk": {
- "name": "security_applicationId_application_applicationId_fk",
- "tableFrom": "security",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "security_username_applicationId_unique": {
- "name": "security_username_applicationId_unique",
- "nullsNotDistinct": false,
- "columns": [
- "username",
- "applicationId"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.server": {
- "name": "server",
- "schema": "",
- "columns": {
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "ipAddress": {
- "name": "ipAddress",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "port": {
- "name": "port",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "username": {
- "name": "username",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "'root'"
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "enableDockerCleanup": {
- "name": "enableDockerCleanup",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serverStatus": {
- "name": "serverStatus",
- "type": "serverStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'active'"
- },
- "serverType": {
- "name": "serverType",
- "type": "serverType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'deploy'"
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "sshKeyId": {
- "name": "sshKeyId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "metricsConfig": {
- "name": "metricsConfig",
- "type": "jsonb",
- "primaryKey": false,
- "notNull": true,
- "default": "'{\"server\":{\"type\":\"Remote\",\"refreshRate\":60,\"port\":4500,\"token\":\"\",\"urlCallback\":\"\",\"cronJob\":\"\",\"retentionDays\":2,\"thresholds\":{\"cpu\":0,\"memory\":0}},\"containers\":{\"refreshRate\":60,\"services\":{\"include\":[],\"exclude\":[]}}}'::jsonb"
- }
- },
- "indexes": {},
- "foreignKeys": {
- "server_organizationId_organization_id_fk": {
- "name": "server_organizationId_organization_id_fk",
- "tableFrom": "server",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "server_sshKeyId_ssh-key_sshKeyId_fk": {
- "name": "server_sshKeyId_ssh-key_sshKeyId_fk",
- "tableFrom": "server",
- "tableTo": "ssh-key",
- "columnsFrom": [
- "sshKeyId"
- ],
- "columnsTo": [
- "sshKeyId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.session_temp": {
- "name": "session_temp",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "expires_at": {
- "name": "expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "token": {
- "name": "token",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "ip_address": {
- "name": "ip_address",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "user_agent": {
- "name": "user_agent",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "user_id": {
- "name": "user_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "impersonated_by": {
- "name": "impersonated_by",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "active_organization_id": {
- "name": "active_organization_id",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "session_temp_user_id_user_id_fk": {
- "name": "session_temp_user_id_user_id_fk",
- "tableFrom": "session_temp",
- "tableTo": "user",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "session_temp_token_unique": {
- "name": "session_temp_token_unique",
- "nullsNotDistinct": false,
- "columns": [
- "token"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.ssh-key": {
- "name": "ssh-key",
- "schema": "",
- "columns": {
- "sshKeyId": {
- "name": "sshKeyId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "privateKey": {
- "name": "privateKey",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "publicKey": {
- "name": "publicKey",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "lastUsedAt": {
- "name": "lastUsedAt",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "ssh-key_organizationId_organization_id_fk": {
- "name": "ssh-key_organizationId_organization_id_fk",
- "tableFrom": "ssh-key",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.user": {
- "name": "user",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "isRegistered": {
- "name": "isRegistered",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "expirationDate": {
- "name": "expirationDate",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false,
- "default": "now()"
- },
- "two_factor_enabled": {
- "name": "two_factor_enabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "email": {
- "name": "email",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "email_verified": {
- "name": "email_verified",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true
- },
- "image": {
- "name": "image",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "banned": {
- "name": "banned",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "ban_reason": {
- "name": "ban_reason",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "ban_expires": {
- "name": "ban_expires",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "serverIp": {
- "name": "serverIp",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "certificateType": {
- "name": "certificateType",
- "type": "certificateType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'none'"
- },
- "https": {
- "name": "https",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "host": {
- "name": "host",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "letsEncryptEmail": {
- "name": "letsEncryptEmail",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "sshPrivateKey": {
- "name": "sshPrivateKey",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "enableDockerCleanup": {
- "name": "enableDockerCleanup",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "logCleanupCron": {
- "name": "logCleanupCron",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'0 0 * * *'"
- },
- "role": {
- "name": "role",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "'user'"
- },
- "enablePaidFeatures": {
- "name": "enablePaidFeatures",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "allowImpersonation": {
- "name": "allowImpersonation",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "metricsConfig": {
- "name": "metricsConfig",
- "type": "jsonb",
- "primaryKey": false,
- "notNull": true,
- "default": "'{\"server\":{\"type\":\"Dokploy\",\"refreshRate\":60,\"port\":4500,\"token\":\"\",\"retentionDays\":2,\"cronJob\":\"\",\"urlCallback\":\"\",\"thresholds\":{\"cpu\":0,\"memory\":0}},\"containers\":{\"refreshRate\":60,\"services\":{\"include\":[],\"exclude\":[]}}}'::jsonb"
- },
- "cleanupCacheApplications": {
- "name": "cleanupCacheApplications",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "cleanupCacheOnPreviews": {
- "name": "cleanupCacheOnPreviews",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "cleanupCacheOnCompose": {
- "name": "cleanupCacheOnCompose",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "stripeCustomerId": {
- "name": "stripeCustomerId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "stripeSubscriptionId": {
- "name": "stripeSubscriptionId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "serversQuantity": {
- "name": "serversQuantity",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 0
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "user_email_unique": {
- "name": "user_email_unique",
- "nullsNotDistinct": false,
- "columns": [
- "email"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.volume_backup": {
- "name": "volume_backup",
- "schema": "",
- "columns": {
- "volumeBackupId": {
- "name": "volumeBackupId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "volumeName": {
- "name": "volumeName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "prefix": {
- "name": "prefix",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serviceType": {
- "name": "serviceType",
- "type": "serviceType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'application'"
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serviceName": {
- "name": "serviceName",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "turnOff": {
- "name": "turnOff",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "cronExpression": {
- "name": "cronExpression",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "keepLatestCount": {
- "name": "keepLatestCount",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "enabled": {
- "name": "enabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "postgresId": {
- "name": "postgresId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mariadbId": {
- "name": "mariadbId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mongoId": {
- "name": "mongoId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mysqlId": {
- "name": "mysqlId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "redisId": {
- "name": "redisId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "composeId": {
- "name": "composeId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "destinationId": {
- "name": "destinationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "volume_backup_applicationId_application_applicationId_fk": {
- "name": "volume_backup_applicationId_application_applicationId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "volume_backup_postgresId_postgres_postgresId_fk": {
- "name": "volume_backup_postgresId_postgres_postgresId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "postgres",
- "columnsFrom": [
- "postgresId"
- ],
- "columnsTo": [
- "postgresId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "volume_backup_mariadbId_mariadb_mariadbId_fk": {
- "name": "volume_backup_mariadbId_mariadb_mariadbId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "mariadb",
- "columnsFrom": [
- "mariadbId"
- ],
- "columnsTo": [
- "mariadbId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "volume_backup_mongoId_mongo_mongoId_fk": {
- "name": "volume_backup_mongoId_mongo_mongoId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "mongo",
- "columnsFrom": [
- "mongoId"
- ],
- "columnsTo": [
- "mongoId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "volume_backup_mysqlId_mysql_mysqlId_fk": {
- "name": "volume_backup_mysqlId_mysql_mysqlId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "mysql",
- "columnsFrom": [
- "mysqlId"
- ],
- "columnsTo": [
- "mysqlId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "volume_backup_redisId_redis_redisId_fk": {
- "name": "volume_backup_redisId_redis_redisId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "redis",
- "columnsFrom": [
- "redisId"
- ],
- "columnsTo": [
- "redisId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "volume_backup_composeId_compose_composeId_fk": {
- "name": "volume_backup_composeId_compose_composeId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "compose",
- "columnsFrom": [
- "composeId"
- ],
- "columnsTo": [
- "composeId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "volume_backup_destinationId_destination_destinationId_fk": {
- "name": "volume_backup_destinationId_destination_destinationId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "destination",
- "columnsFrom": [
- "destinationId"
- ],
- "columnsTo": [
- "destinationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- }
- },
- "enums": {
- "public.buildType": {
- "name": "buildType",
- "schema": "public",
- "values": [
- "dockerfile",
- "heroku_buildpacks",
- "paketo_buildpacks",
- "nixpacks",
- "static",
- "railpack"
- ]
- },
- "public.sourceType": {
- "name": "sourceType",
- "schema": "public",
- "values": [
- "docker",
- "git",
- "github",
- "gitlab",
- "bitbucket",
- "gitea",
- "drop"
- ]
- },
- "public.backupType": {
- "name": "backupType",
- "schema": "public",
- "values": [
- "database",
- "compose"
- ]
- },
- "public.databaseType": {
- "name": "databaseType",
- "schema": "public",
- "values": [
- "postgres",
- "mariadb",
- "mysql",
- "mongo",
- "web-server"
- ]
- },
- "public.composeType": {
- "name": "composeType",
- "schema": "public",
- "values": [
- "docker-compose",
- "stack"
- ]
- },
- "public.sourceTypeCompose": {
- "name": "sourceTypeCompose",
- "schema": "public",
- "values": [
- "git",
- "github",
- "gitlab",
- "bitbucket",
- "gitea",
- "raw"
- ]
- },
- "public.deploymentStatus": {
- "name": "deploymentStatus",
- "schema": "public",
- "values": [
- "running",
- "done",
- "error",
- "cancelled"
- ]
- },
- "public.domainType": {
- "name": "domainType",
- "schema": "public",
- "values": [
- "compose",
- "application",
- "preview"
- ]
- },
- "public.gitProviderType": {
- "name": "gitProviderType",
- "schema": "public",
- "values": [
- "github",
- "gitlab",
- "bitbucket",
- "gitea"
- ]
- },
- "public.mountType": {
- "name": "mountType",
- "schema": "public",
- "values": [
- "bind",
- "volume",
- "file"
- ]
- },
- "public.serviceType": {
- "name": "serviceType",
- "schema": "public",
- "values": [
- "application",
- "postgres",
- "mysql",
- "mariadb",
- "mongo",
- "redis",
- "compose"
- ]
- },
- "public.notificationType": {
- "name": "notificationType",
- "schema": "public",
- "values": [
- "slack",
- "telegram",
- "discord",
- "email",
- "gotify",
- "ntfy",
- "lark"
- ]
- },
- "public.protocolType": {
- "name": "protocolType",
- "schema": "public",
- "values": [
- "tcp",
- "udp"
- ]
- },
- "public.publishModeType": {
- "name": "publishModeType",
- "schema": "public",
- "values": [
- "ingress",
- "host"
- ]
- },
- "public.RegistryType": {
- "name": "RegistryType",
- "schema": "public",
- "values": [
- "selfHosted",
- "cloud"
- ]
- },
- "public.scheduleType": {
- "name": "scheduleType",
- "schema": "public",
- "values": [
- "application",
- "compose",
- "server",
- "dokploy-server"
- ]
- },
- "public.shellType": {
- "name": "shellType",
- "schema": "public",
- "values": [
- "bash",
- "sh"
- ]
- },
- "public.serverStatus": {
- "name": "serverStatus",
- "schema": "public",
- "values": [
- "active",
- "inactive"
- ]
- },
- "public.serverType": {
- "name": "serverType",
- "schema": "public",
- "values": [
- "deploy",
- "build"
- ]
- },
- "public.applicationStatus": {
- "name": "applicationStatus",
- "schema": "public",
- "values": [
- "idle",
- "running",
- "done",
- "error"
- ]
- },
- "public.certificateType": {
- "name": "certificateType",
- "schema": "public",
- "values": [
- "letsencrypt",
- "none",
- "custom"
- ]
- },
- "public.triggerType": {
- "name": "triggerType",
- "schema": "public",
- "values": [
- "push",
- "tag"
- ]
- }
- },
- "schemas": {},
- "sequences": {},
- "roles": {},
- "policies": {},
- "views": {},
- "_meta": {
- "columns": {},
- "schemas": {},
- "tables": {}
- }
-}
\ No newline at end of file
diff --git a/apps/dokploy/drizzle/meta/0124_snapshot.json b/apps/dokploy/drizzle/meta/0124_snapshot.json
deleted file mode 100644
index 5527d422b..000000000
--- a/apps/dokploy/drizzle/meta/0124_snapshot.json
+++ /dev/null
@@ -1,6795 +0,0 @@
-{
- "id": "9d1b570c-3edc-4669-95e6-6afa49b55b90",
- "prevId": "47a5c430-f9e8-4238-9951-d5dc27a20ca3",
- "version": "7",
- "dialect": "postgresql",
- "tables": {
- "public.account": {
- "name": "account",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "account_id": {
- "name": "account_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "provider_id": {
- "name": "provider_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "user_id": {
- "name": "user_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "access_token": {
- "name": "access_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "refresh_token": {
- "name": "refresh_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "id_token": {
- "name": "id_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "access_token_expires_at": {
- "name": "access_token_expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "refresh_token_expires_at": {
- "name": "refresh_token_expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "scope": {
- "name": "scope",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "password": {
- "name": "password",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "is2FAEnabled": {
- "name": "is2FAEnabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "resetPasswordToken": {
- "name": "resetPasswordToken",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "resetPasswordExpiresAt": {
- "name": "resetPasswordExpiresAt",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "confirmationToken": {
- "name": "confirmationToken",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "confirmationExpiresAt": {
- "name": "confirmationExpiresAt",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "account_user_id_user_id_fk": {
- "name": "account_user_id_user_id_fk",
- "tableFrom": "account",
- "tableTo": "user",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.apikey": {
- "name": "apikey",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "start": {
- "name": "start",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "prefix": {
- "name": "prefix",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "key": {
- "name": "key",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "user_id": {
- "name": "user_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "refill_interval": {
- "name": "refill_interval",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "refill_amount": {
- "name": "refill_amount",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "last_refill_at": {
- "name": "last_refill_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "enabled": {
- "name": "enabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "rate_limit_enabled": {
- "name": "rate_limit_enabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "rate_limit_time_window": {
- "name": "rate_limit_time_window",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "rate_limit_max": {
- "name": "rate_limit_max",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "request_count": {
- "name": "request_count",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "remaining": {
- "name": "remaining",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "last_request": {
- "name": "last_request",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "expires_at": {
- "name": "expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "permissions": {
- "name": "permissions",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "metadata": {
- "name": "metadata",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "apikey_user_id_user_id_fk": {
- "name": "apikey_user_id_user_id_fk",
- "tableFrom": "apikey",
- "tableTo": "user",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.invitation": {
- "name": "invitation",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "organization_id": {
- "name": "organization_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "email": {
- "name": "email",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "role": {
- "name": "role",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "status": {
- "name": "status",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "expires_at": {
- "name": "expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "inviter_id": {
- "name": "inviter_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "team_id": {
- "name": "team_id",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "invitation_organization_id_organization_id_fk": {
- "name": "invitation_organization_id_organization_id_fk",
- "tableFrom": "invitation",
- "tableTo": "organization",
- "columnsFrom": [
- "organization_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "invitation_inviter_id_user_id_fk": {
- "name": "invitation_inviter_id_user_id_fk",
- "tableFrom": "invitation",
- "tableTo": "user",
- "columnsFrom": [
- "inviter_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.member": {
- "name": "member",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "organization_id": {
- "name": "organization_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "user_id": {
- "name": "user_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "role": {
- "name": "role",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "team_id": {
- "name": "team_id",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "is_default": {
- "name": "is_default",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canCreateProjects": {
- "name": "canCreateProjects",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canAccessToSSHKeys": {
- "name": "canAccessToSSHKeys",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canCreateServices": {
- "name": "canCreateServices",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canDeleteProjects": {
- "name": "canDeleteProjects",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canDeleteServices": {
- "name": "canDeleteServices",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canAccessToDocker": {
- "name": "canAccessToDocker",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canAccessToAPI": {
- "name": "canAccessToAPI",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canAccessToGitProviders": {
- "name": "canAccessToGitProviders",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canAccessToTraefikFiles": {
- "name": "canAccessToTraefikFiles",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canDeleteEnvironments": {
- "name": "canDeleteEnvironments",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "canCreateEnvironments": {
- "name": "canCreateEnvironments",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "accesedProjects": {
- "name": "accesedProjects",
- "type": "text[]",
- "primaryKey": false,
- "notNull": true,
- "default": "ARRAY[]::text[]"
- },
- "accessedEnvironments": {
- "name": "accessedEnvironments",
- "type": "text[]",
- "primaryKey": false,
- "notNull": true,
- "default": "ARRAY[]::text[]"
- },
- "accesedServices": {
- "name": "accesedServices",
- "type": "text[]",
- "primaryKey": false,
- "notNull": true,
- "default": "ARRAY[]::text[]"
- }
- },
- "indexes": {},
- "foreignKeys": {
- "member_organization_id_organization_id_fk": {
- "name": "member_organization_id_organization_id_fk",
- "tableFrom": "member",
- "tableTo": "organization",
- "columnsFrom": [
- "organization_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "member_user_id_user_id_fk": {
- "name": "member_user_id_user_id_fk",
- "tableFrom": "member",
- "tableTo": "user",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.organization": {
- "name": "organization",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "slug": {
- "name": "slug",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "logo": {
- "name": "logo",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "metadata": {
- "name": "metadata",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "owner_id": {
- "name": "owner_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "organization_owner_id_user_id_fk": {
- "name": "organization_owner_id_user_id_fk",
- "tableFrom": "organization",
- "tableTo": "user",
- "columnsFrom": [
- "owner_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "organization_slug_unique": {
- "name": "organization_slug_unique",
- "nullsNotDistinct": false,
- "columns": [
- "slug"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.two_factor": {
- "name": "two_factor",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "secret": {
- "name": "secret",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "backup_codes": {
- "name": "backup_codes",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "user_id": {
- "name": "user_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "two_factor_user_id_user_id_fk": {
- "name": "two_factor_user_id_user_id_fk",
- "tableFrom": "two_factor",
- "tableTo": "user",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.verification": {
- "name": "verification",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "identifier": {
- "name": "identifier",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "value": {
- "name": "value",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "expires_at": {
- "name": "expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.ai": {
- "name": "ai",
- "schema": "",
- "columns": {
- "aiId": {
- "name": "aiId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "apiUrl": {
- "name": "apiUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "apiKey": {
- "name": "apiKey",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "model": {
- "name": "model",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "isEnabled": {
- "name": "isEnabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": true
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "ai_organizationId_organization_id_fk": {
- "name": "ai_organizationId_organization_id_fk",
- "tableFrom": "ai",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.application": {
- "name": "application",
- "schema": "",
- "columns": {
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "previewEnv": {
- "name": "previewEnv",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "watchPaths": {
- "name": "watchPaths",
- "type": "text[]",
- "primaryKey": false,
- "notNull": false
- },
- "previewBuildArgs": {
- "name": "previewBuildArgs",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "previewBuildSecrets": {
- "name": "previewBuildSecrets",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "previewLabels": {
- "name": "previewLabels",
- "type": "text[]",
- "primaryKey": false,
- "notNull": false
- },
- "previewWildcard": {
- "name": "previewWildcard",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "previewPort": {
- "name": "previewPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": false,
- "default": 3000
- },
- "previewHttps": {
- "name": "previewHttps",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "previewPath": {
- "name": "previewPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'/'"
- },
- "certificateType": {
- "name": "certificateType",
- "type": "certificateType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'none'"
- },
- "previewCustomCertResolver": {
- "name": "previewCustomCertResolver",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "previewLimit": {
- "name": "previewLimit",
- "type": "integer",
- "primaryKey": false,
- "notNull": false,
- "default": 3
- },
- "isPreviewDeploymentsActive": {
- "name": "isPreviewDeploymentsActive",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false,
- "default": false
- },
- "previewRequireCollaboratorPermissions": {
- "name": "previewRequireCollaboratorPermissions",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false,
- "default": true
- },
- "rollbackActive": {
- "name": "rollbackActive",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false,
- "default": false
- },
- "buildArgs": {
- "name": "buildArgs",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "buildSecrets": {
- "name": "buildSecrets",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryReservation": {
- "name": "memoryReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryLimit": {
- "name": "memoryLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuReservation": {
- "name": "cpuReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuLimit": {
- "name": "cpuLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "title": {
- "name": "title",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "enabled": {
- "name": "enabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "subtitle": {
- "name": "subtitle",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "refreshToken": {
- "name": "refreshToken",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "sourceType": {
- "name": "sourceType",
- "type": "sourceType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'github'"
- },
- "cleanCache": {
- "name": "cleanCache",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false,
- "default": false
- },
- "repository": {
- "name": "repository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "owner": {
- "name": "owner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "branch": {
- "name": "branch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "buildPath": {
- "name": "buildPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'/'"
- },
- "triggerType": {
- "name": "triggerType",
- "type": "triggerType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": false,
- "default": "'push'"
- },
- "autoDeploy": {
- "name": "autoDeploy",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabProjectId": {
- "name": "gitlabProjectId",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabRepository": {
- "name": "gitlabRepository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabOwner": {
- "name": "gitlabOwner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabBranch": {
- "name": "gitlabBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabBuildPath": {
- "name": "gitlabBuildPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'/'"
- },
- "gitlabPathNamespace": {
- "name": "gitlabPathNamespace",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaRepository": {
- "name": "giteaRepository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaOwner": {
- "name": "giteaOwner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaBranch": {
- "name": "giteaBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaBuildPath": {
- "name": "giteaBuildPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'/'"
- },
- "bitbucketRepository": {
- "name": "bitbucketRepository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketOwner": {
- "name": "bitbucketOwner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketBranch": {
- "name": "bitbucketBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketBuildPath": {
- "name": "bitbucketBuildPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'/'"
- },
- "username": {
- "name": "username",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "password": {
- "name": "password",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "dockerImage": {
- "name": "dockerImage",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "registryUrl": {
- "name": "registryUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customGitUrl": {
- "name": "customGitUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customGitBranch": {
- "name": "customGitBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customGitBuildPath": {
- "name": "customGitBuildPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customGitSSHKeyId": {
- "name": "customGitSSHKeyId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "enableSubmodules": {
- "name": "enableSubmodules",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "dockerfile": {
- "name": "dockerfile",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "dockerContextPath": {
- "name": "dockerContextPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "dockerBuildStage": {
- "name": "dockerBuildStage",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "dropBuildPath": {
- "name": "dropBuildPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "healthCheckSwarm": {
- "name": "healthCheckSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "restartPolicySwarm": {
- "name": "restartPolicySwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "placementSwarm": {
- "name": "placementSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "updateConfigSwarm": {
- "name": "updateConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "rollbackConfigSwarm": {
- "name": "rollbackConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "modeSwarm": {
- "name": "modeSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "labelsSwarm": {
- "name": "labelsSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "networkSwarm": {
- "name": "networkSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "stopGracePeriodSwarm": {
- "name": "stopGracePeriodSwarm",
- "type": "bigint",
- "primaryKey": false,
- "notNull": false
- },
- "endpointSpecSwarm": {
- "name": "endpointSpecSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "replicas": {
- "name": "replicas",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 1
- },
- "applicationStatus": {
- "name": "applicationStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "buildType": {
- "name": "buildType",
- "type": "buildType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'nixpacks'"
- },
- "railpackVersion": {
- "name": "railpackVersion",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'0.2.2'"
- },
- "herokuVersion": {
- "name": "herokuVersion",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'24'"
- },
- "publishDirectory": {
- "name": "publishDirectory",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "isStaticSpa": {
- "name": "isStaticSpa",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "registryId": {
- "name": "registryId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "githubId": {
- "name": "githubId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabId": {
- "name": "gitlabId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaId": {
- "name": "giteaId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketId": {
- "name": "bitbucketId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "buildServerId": {
- "name": "buildServerId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "buildRegistryId": {
- "name": "buildRegistryId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "application_customGitSSHKeyId_ssh-key_sshKeyId_fk": {
- "name": "application_customGitSSHKeyId_ssh-key_sshKeyId_fk",
- "tableFrom": "application",
- "tableTo": "ssh-key",
- "columnsFrom": [
- "customGitSSHKeyId"
- ],
- "columnsTo": [
- "sshKeyId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "application_registryId_registry_registryId_fk": {
- "name": "application_registryId_registry_registryId_fk",
- "tableFrom": "application",
- "tableTo": "registry",
- "columnsFrom": [
- "registryId"
- ],
- "columnsTo": [
- "registryId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "application_environmentId_environment_environmentId_fk": {
- "name": "application_environmentId_environment_environmentId_fk",
- "tableFrom": "application",
- "tableTo": "environment",
- "columnsFrom": [
- "environmentId"
- ],
- "columnsTo": [
- "environmentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "application_githubId_github_githubId_fk": {
- "name": "application_githubId_github_githubId_fk",
- "tableFrom": "application",
- "tableTo": "github",
- "columnsFrom": [
- "githubId"
- ],
- "columnsTo": [
- "githubId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "application_gitlabId_gitlab_gitlabId_fk": {
- "name": "application_gitlabId_gitlab_gitlabId_fk",
- "tableFrom": "application",
- "tableTo": "gitlab",
- "columnsFrom": [
- "gitlabId"
- ],
- "columnsTo": [
- "gitlabId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "application_giteaId_gitea_giteaId_fk": {
- "name": "application_giteaId_gitea_giteaId_fk",
- "tableFrom": "application",
- "tableTo": "gitea",
- "columnsFrom": [
- "giteaId"
- ],
- "columnsTo": [
- "giteaId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "application_bitbucketId_bitbucket_bitbucketId_fk": {
- "name": "application_bitbucketId_bitbucket_bitbucketId_fk",
- "tableFrom": "application",
- "tableTo": "bitbucket",
- "columnsFrom": [
- "bitbucketId"
- ],
- "columnsTo": [
- "bitbucketId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "application_serverId_server_serverId_fk": {
- "name": "application_serverId_server_serverId_fk",
- "tableFrom": "application",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "application_buildServerId_server_serverId_fk": {
- "name": "application_buildServerId_server_serverId_fk",
- "tableFrom": "application",
- "tableTo": "server",
- "columnsFrom": [
- "buildServerId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "application_buildRegistryId_registry_registryId_fk": {
- "name": "application_buildRegistryId_registry_registryId_fk",
- "tableFrom": "application",
- "tableTo": "registry",
- "columnsFrom": [
- "buildRegistryId"
- ],
- "columnsTo": [
- "registryId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "application_appName_unique": {
- "name": "application_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.backup": {
- "name": "backup",
- "schema": "",
- "columns": {
- "backupId": {
- "name": "backupId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "schedule": {
- "name": "schedule",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "enabled": {
- "name": "enabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "database": {
- "name": "database",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "prefix": {
- "name": "prefix",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serviceName": {
- "name": "serviceName",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "destinationId": {
- "name": "destinationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "keepLatestCount": {
- "name": "keepLatestCount",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "backupType": {
- "name": "backupType",
- "type": "backupType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'database'"
- },
- "databaseType": {
- "name": "databaseType",
- "type": "databaseType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true
- },
- "composeId": {
- "name": "composeId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "postgresId": {
- "name": "postgresId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mariadbId": {
- "name": "mariadbId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mysqlId": {
- "name": "mysqlId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mongoId": {
- "name": "mongoId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "userId": {
- "name": "userId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "metadata": {
- "name": "metadata",
- "type": "jsonb",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "backup_destinationId_destination_destinationId_fk": {
- "name": "backup_destinationId_destination_destinationId_fk",
- "tableFrom": "backup",
- "tableTo": "destination",
- "columnsFrom": [
- "destinationId"
- ],
- "columnsTo": [
- "destinationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "backup_composeId_compose_composeId_fk": {
- "name": "backup_composeId_compose_composeId_fk",
- "tableFrom": "backup",
- "tableTo": "compose",
- "columnsFrom": [
- "composeId"
- ],
- "columnsTo": [
- "composeId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "backup_postgresId_postgres_postgresId_fk": {
- "name": "backup_postgresId_postgres_postgresId_fk",
- "tableFrom": "backup",
- "tableTo": "postgres",
- "columnsFrom": [
- "postgresId"
- ],
- "columnsTo": [
- "postgresId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "backup_mariadbId_mariadb_mariadbId_fk": {
- "name": "backup_mariadbId_mariadb_mariadbId_fk",
- "tableFrom": "backup",
- "tableTo": "mariadb",
- "columnsFrom": [
- "mariadbId"
- ],
- "columnsTo": [
- "mariadbId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "backup_mysqlId_mysql_mysqlId_fk": {
- "name": "backup_mysqlId_mysql_mysqlId_fk",
- "tableFrom": "backup",
- "tableTo": "mysql",
- "columnsFrom": [
- "mysqlId"
- ],
- "columnsTo": [
- "mysqlId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "backup_mongoId_mongo_mongoId_fk": {
- "name": "backup_mongoId_mongo_mongoId_fk",
- "tableFrom": "backup",
- "tableTo": "mongo",
- "columnsFrom": [
- "mongoId"
- ],
- "columnsTo": [
- "mongoId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "backup_userId_user_id_fk": {
- "name": "backup_userId_user_id_fk",
- "tableFrom": "backup",
- "tableTo": "user",
- "columnsFrom": [
- "userId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "backup_appName_unique": {
- "name": "backup_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.bitbucket": {
- "name": "bitbucket",
- "schema": "",
- "columns": {
- "bitbucketId": {
- "name": "bitbucketId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "bitbucketUsername": {
- "name": "bitbucketUsername",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketEmail": {
- "name": "bitbucketEmail",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "appPassword": {
- "name": "appPassword",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "apiToken": {
- "name": "apiToken",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketWorkspaceName": {
- "name": "bitbucketWorkspaceName",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitProviderId": {
- "name": "gitProviderId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "bitbucket_gitProviderId_git_provider_gitProviderId_fk": {
- "name": "bitbucket_gitProviderId_git_provider_gitProviderId_fk",
- "tableFrom": "bitbucket",
- "tableTo": "git_provider",
- "columnsFrom": [
- "gitProviderId"
- ],
- "columnsTo": [
- "gitProviderId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.certificate": {
- "name": "certificate",
- "schema": "",
- "columns": {
- "certificateId": {
- "name": "certificateId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "certificateData": {
- "name": "certificateData",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "privateKey": {
- "name": "privateKey",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "certificatePath": {
- "name": "certificatePath",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "autoRenew": {
- "name": "autoRenew",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "certificate_organizationId_organization_id_fk": {
- "name": "certificate_organizationId_organization_id_fk",
- "tableFrom": "certificate",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "certificate_serverId_server_serverId_fk": {
- "name": "certificate_serverId_server_serverId_fk",
- "tableFrom": "certificate",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "certificate_certificatePath_unique": {
- "name": "certificate_certificatePath_unique",
- "nullsNotDistinct": false,
- "columns": [
- "certificatePath"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.compose": {
- "name": "compose",
- "schema": "",
- "columns": {
- "composeId": {
- "name": "composeId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "composeFile": {
- "name": "composeFile",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "refreshToken": {
- "name": "refreshToken",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "sourceType": {
- "name": "sourceType",
- "type": "sourceTypeCompose",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'github'"
- },
- "composeType": {
- "name": "composeType",
- "type": "composeType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'docker-compose'"
- },
- "repository": {
- "name": "repository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "owner": {
- "name": "owner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "branch": {
- "name": "branch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "autoDeploy": {
- "name": "autoDeploy",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabProjectId": {
- "name": "gitlabProjectId",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabRepository": {
- "name": "gitlabRepository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabOwner": {
- "name": "gitlabOwner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabBranch": {
- "name": "gitlabBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabPathNamespace": {
- "name": "gitlabPathNamespace",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketRepository": {
- "name": "bitbucketRepository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketOwner": {
- "name": "bitbucketOwner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketBranch": {
- "name": "bitbucketBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaRepository": {
- "name": "giteaRepository",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaOwner": {
- "name": "giteaOwner",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaBranch": {
- "name": "giteaBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customGitUrl": {
- "name": "customGitUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customGitBranch": {
- "name": "customGitBranch",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customGitSSHKeyId": {
- "name": "customGitSSHKeyId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "enableSubmodules": {
- "name": "enableSubmodules",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "composePath": {
- "name": "composePath",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "'./docker-compose.yml'"
- },
- "suffix": {
- "name": "suffix",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "randomize": {
- "name": "randomize",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "isolatedDeployment": {
- "name": "isolatedDeployment",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "isolatedDeploymentsVolume": {
- "name": "isolatedDeploymentsVolume",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "triggerType": {
- "name": "triggerType",
- "type": "triggerType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": false,
- "default": "'push'"
- },
- "composeStatus": {
- "name": "composeStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "watchPaths": {
- "name": "watchPaths",
- "type": "text[]",
- "primaryKey": false,
- "notNull": false
- },
- "githubId": {
- "name": "githubId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitlabId": {
- "name": "gitlabId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "bitbucketId": {
- "name": "bitbucketId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "giteaId": {
- "name": "giteaId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk": {
- "name": "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk",
- "tableFrom": "compose",
- "tableTo": "ssh-key",
- "columnsFrom": [
- "customGitSSHKeyId"
- ],
- "columnsTo": [
- "sshKeyId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "compose_environmentId_environment_environmentId_fk": {
- "name": "compose_environmentId_environment_environmentId_fk",
- "tableFrom": "compose",
- "tableTo": "environment",
- "columnsFrom": [
- "environmentId"
- ],
- "columnsTo": [
- "environmentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "compose_githubId_github_githubId_fk": {
- "name": "compose_githubId_github_githubId_fk",
- "tableFrom": "compose",
- "tableTo": "github",
- "columnsFrom": [
- "githubId"
- ],
- "columnsTo": [
- "githubId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "compose_gitlabId_gitlab_gitlabId_fk": {
- "name": "compose_gitlabId_gitlab_gitlabId_fk",
- "tableFrom": "compose",
- "tableTo": "gitlab",
- "columnsFrom": [
- "gitlabId"
- ],
- "columnsTo": [
- "gitlabId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "compose_bitbucketId_bitbucket_bitbucketId_fk": {
- "name": "compose_bitbucketId_bitbucket_bitbucketId_fk",
- "tableFrom": "compose",
- "tableTo": "bitbucket",
- "columnsFrom": [
- "bitbucketId"
- ],
- "columnsTo": [
- "bitbucketId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "compose_giteaId_gitea_giteaId_fk": {
- "name": "compose_giteaId_gitea_giteaId_fk",
- "tableFrom": "compose",
- "tableTo": "gitea",
- "columnsFrom": [
- "giteaId"
- ],
- "columnsTo": [
- "giteaId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- },
- "compose_serverId_server_serverId_fk": {
- "name": "compose_serverId_server_serverId_fk",
- "tableFrom": "compose",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.deployment": {
- "name": "deployment",
- "schema": "",
- "columns": {
- "deploymentId": {
- "name": "deploymentId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "title": {
- "name": "title",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "status": {
- "name": "status",
- "type": "deploymentStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": false,
- "default": "'running'"
- },
- "logPath": {
- "name": "logPath",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "pid": {
- "name": "pid",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "composeId": {
- "name": "composeId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "isPreviewDeployment": {
- "name": "isPreviewDeployment",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false,
- "default": false
- },
- "previewDeploymentId": {
- "name": "previewDeploymentId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "startedAt": {
- "name": "startedAt",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "finishedAt": {
- "name": "finishedAt",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "errorMessage": {
- "name": "errorMessage",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "scheduleId": {
- "name": "scheduleId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "backupId": {
- "name": "backupId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "rollbackId": {
- "name": "rollbackId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "volumeBackupId": {
- "name": "volumeBackupId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "buildServerId": {
- "name": "buildServerId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "deployment_applicationId_application_applicationId_fk": {
- "name": "deployment_applicationId_application_applicationId_fk",
- "tableFrom": "deployment",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "deployment_composeId_compose_composeId_fk": {
- "name": "deployment_composeId_compose_composeId_fk",
- "tableFrom": "deployment",
- "tableTo": "compose",
- "columnsFrom": [
- "composeId"
- ],
- "columnsTo": [
- "composeId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "deployment_serverId_server_serverId_fk": {
- "name": "deployment_serverId_server_serverId_fk",
- "tableFrom": "deployment",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "deployment_previewDeploymentId_preview_deployments_previewDeploymentId_fk": {
- "name": "deployment_previewDeploymentId_preview_deployments_previewDeploymentId_fk",
- "tableFrom": "deployment",
- "tableTo": "preview_deployments",
- "columnsFrom": [
- "previewDeploymentId"
- ],
- "columnsTo": [
- "previewDeploymentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "deployment_scheduleId_schedule_scheduleId_fk": {
- "name": "deployment_scheduleId_schedule_scheduleId_fk",
- "tableFrom": "deployment",
- "tableTo": "schedule",
- "columnsFrom": [
- "scheduleId"
- ],
- "columnsTo": [
- "scheduleId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "deployment_backupId_backup_backupId_fk": {
- "name": "deployment_backupId_backup_backupId_fk",
- "tableFrom": "deployment",
- "tableTo": "backup",
- "columnsFrom": [
- "backupId"
- ],
- "columnsTo": [
- "backupId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "deployment_rollbackId_rollback_rollbackId_fk": {
- "name": "deployment_rollbackId_rollback_rollbackId_fk",
- "tableFrom": "deployment",
- "tableTo": "rollback",
- "columnsFrom": [
- "rollbackId"
- ],
- "columnsTo": [
- "rollbackId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "deployment_volumeBackupId_volume_backup_volumeBackupId_fk": {
- "name": "deployment_volumeBackupId_volume_backup_volumeBackupId_fk",
- "tableFrom": "deployment",
- "tableTo": "volume_backup",
- "columnsFrom": [
- "volumeBackupId"
- ],
- "columnsTo": [
- "volumeBackupId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "deployment_buildServerId_server_serverId_fk": {
- "name": "deployment_buildServerId_server_serverId_fk",
- "tableFrom": "deployment",
- "tableTo": "server",
- "columnsFrom": [
- "buildServerId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.destination": {
- "name": "destination",
- "schema": "",
- "columns": {
- "destinationId": {
- "name": "destinationId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "provider": {
- "name": "provider",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "accessKey": {
- "name": "accessKey",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "secretAccessKey": {
- "name": "secretAccessKey",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "bucket": {
- "name": "bucket",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "region": {
- "name": "region",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "endpoint": {
- "name": "endpoint",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "default": "now()"
- }
- },
- "indexes": {},
- "foreignKeys": {
- "destination_organizationId_organization_id_fk": {
- "name": "destination_organizationId_organization_id_fk",
- "tableFrom": "destination",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.domain": {
- "name": "domain",
- "schema": "",
- "columns": {
- "domainId": {
- "name": "domainId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "host": {
- "name": "host",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "https": {
- "name": "https",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "port": {
- "name": "port",
- "type": "integer",
- "primaryKey": false,
- "notNull": false,
- "default": 3000
- },
- "path": {
- "name": "path",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'/'"
- },
- "serviceName": {
- "name": "serviceName",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "domainType": {
- "name": "domainType",
- "type": "domainType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": false,
- "default": "'application'"
- },
- "uniqueConfigKey": {
- "name": "uniqueConfigKey",
- "type": "serial",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "composeId": {
- "name": "composeId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "customCertResolver": {
- "name": "customCertResolver",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "previewDeploymentId": {
- "name": "previewDeploymentId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "certificateType": {
- "name": "certificateType",
- "type": "certificateType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'none'"
- },
- "internalPath": {
- "name": "internalPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'/'"
- },
- "stripPath": {
- "name": "stripPath",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "domain_composeId_compose_composeId_fk": {
- "name": "domain_composeId_compose_composeId_fk",
- "tableFrom": "domain",
- "tableTo": "compose",
- "columnsFrom": [
- "composeId"
- ],
- "columnsTo": [
- "composeId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "domain_applicationId_application_applicationId_fk": {
- "name": "domain_applicationId_application_applicationId_fk",
- "tableFrom": "domain",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "domain_previewDeploymentId_preview_deployments_previewDeploymentId_fk": {
- "name": "domain_previewDeploymentId_preview_deployments_previewDeploymentId_fk",
- "tableFrom": "domain",
- "tableTo": "preview_deployments",
- "columnsFrom": [
- "previewDeploymentId"
- ],
- "columnsTo": [
- "previewDeploymentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.environment": {
- "name": "environment",
- "schema": "",
- "columns": {
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "projectId": {
- "name": "projectId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "environment_projectId_project_projectId_fk": {
- "name": "environment_projectId_project_projectId_fk",
- "tableFrom": "environment",
- "tableTo": "project",
- "columnsFrom": [
- "projectId"
- ],
- "columnsTo": [
- "projectId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.git_provider": {
- "name": "git_provider",
- "schema": "",
- "columns": {
- "gitProviderId": {
- "name": "gitProviderId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "providerType": {
- "name": "providerType",
- "type": "gitProviderType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'github'"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "userId": {
- "name": "userId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "git_provider_organizationId_organization_id_fk": {
- "name": "git_provider_organizationId_organization_id_fk",
- "tableFrom": "git_provider",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "git_provider_userId_user_id_fk": {
- "name": "git_provider_userId_user_id_fk",
- "tableFrom": "git_provider",
- "tableTo": "user",
- "columnsFrom": [
- "userId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.gitea": {
- "name": "gitea",
- "schema": "",
- "columns": {
- "giteaId": {
- "name": "giteaId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "giteaUrl": {
- "name": "giteaUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "'https://gitea.com'"
- },
- "redirect_uri": {
- "name": "redirect_uri",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "client_id": {
- "name": "client_id",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "client_secret": {
- "name": "client_secret",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitProviderId": {
- "name": "gitProviderId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "access_token": {
- "name": "access_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "refresh_token": {
- "name": "refresh_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "expires_at": {
- "name": "expires_at",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "scopes": {
- "name": "scopes",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'repo,repo:status,read:user,read:org'"
- },
- "last_authenticated_at": {
- "name": "last_authenticated_at",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "gitea_gitProviderId_git_provider_gitProviderId_fk": {
- "name": "gitea_gitProviderId_git_provider_gitProviderId_fk",
- "tableFrom": "gitea",
- "tableTo": "git_provider",
- "columnsFrom": [
- "gitProviderId"
- ],
- "columnsTo": [
- "gitProviderId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.github": {
- "name": "github",
- "schema": "",
- "columns": {
- "githubId": {
- "name": "githubId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "githubAppName": {
- "name": "githubAppName",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "githubAppId": {
- "name": "githubAppId",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "githubClientId": {
- "name": "githubClientId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "githubClientSecret": {
- "name": "githubClientSecret",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "githubInstallationId": {
- "name": "githubInstallationId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "githubPrivateKey": {
- "name": "githubPrivateKey",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "githubWebhookSecret": {
- "name": "githubWebhookSecret",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gitProviderId": {
- "name": "gitProviderId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "github_gitProviderId_git_provider_gitProviderId_fk": {
- "name": "github_gitProviderId_git_provider_gitProviderId_fk",
- "tableFrom": "github",
- "tableTo": "git_provider",
- "columnsFrom": [
- "gitProviderId"
- ],
- "columnsTo": [
- "gitProviderId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.gitlab": {
- "name": "gitlab",
- "schema": "",
- "columns": {
- "gitlabId": {
- "name": "gitlabId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "gitlabUrl": {
- "name": "gitlabUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "'https://gitlab.com'"
- },
- "application_id": {
- "name": "application_id",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "redirect_uri": {
- "name": "redirect_uri",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "secret": {
- "name": "secret",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "access_token": {
- "name": "access_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "refresh_token": {
- "name": "refresh_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "group_name": {
- "name": "group_name",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "expires_at": {
- "name": "expires_at",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "gitProviderId": {
- "name": "gitProviderId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "gitlab_gitProviderId_git_provider_gitProviderId_fk": {
- "name": "gitlab_gitProviderId_git_provider_gitProviderId_fk",
- "tableFrom": "gitlab",
- "tableTo": "git_provider",
- "columnsFrom": [
- "gitProviderId"
- ],
- "columnsTo": [
- "gitProviderId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.mariadb": {
- "name": "mariadb",
- "schema": "",
- "columns": {
- "mariadbId": {
- "name": "mariadbId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "databaseName": {
- "name": "databaseName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databaseUser": {
- "name": "databaseUser",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databasePassword": {
- "name": "databasePassword",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "rootPassword": {
- "name": "rootPassword",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "dockerImage": {
- "name": "dockerImage",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryReservation": {
- "name": "memoryReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryLimit": {
- "name": "memoryLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuReservation": {
- "name": "cpuReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuLimit": {
- "name": "cpuLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "externalPort": {
- "name": "externalPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "applicationStatus": {
- "name": "applicationStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "healthCheckSwarm": {
- "name": "healthCheckSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "restartPolicySwarm": {
- "name": "restartPolicySwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "placementSwarm": {
- "name": "placementSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "updateConfigSwarm": {
- "name": "updateConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "rollbackConfigSwarm": {
- "name": "rollbackConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "modeSwarm": {
- "name": "modeSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "labelsSwarm": {
- "name": "labelsSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "networkSwarm": {
- "name": "networkSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "stopGracePeriodSwarm": {
- "name": "stopGracePeriodSwarm",
- "type": "bigint",
- "primaryKey": false,
- "notNull": false
- },
- "endpointSpecSwarm": {
- "name": "endpointSpecSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "replicas": {
- "name": "replicas",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 1
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "mariadb_environmentId_environment_environmentId_fk": {
- "name": "mariadb_environmentId_environment_environmentId_fk",
- "tableFrom": "mariadb",
- "tableTo": "environment",
- "columnsFrom": [
- "environmentId"
- ],
- "columnsTo": [
- "environmentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mariadb_serverId_server_serverId_fk": {
- "name": "mariadb_serverId_server_serverId_fk",
- "tableFrom": "mariadb",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "mariadb_appName_unique": {
- "name": "mariadb_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.mongo": {
- "name": "mongo",
- "schema": "",
- "columns": {
- "mongoId": {
- "name": "mongoId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "databaseUser": {
- "name": "databaseUser",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databasePassword": {
- "name": "databasePassword",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "dockerImage": {
- "name": "dockerImage",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryReservation": {
- "name": "memoryReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryLimit": {
- "name": "memoryLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuReservation": {
- "name": "cpuReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuLimit": {
- "name": "cpuLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "externalPort": {
- "name": "externalPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "applicationStatus": {
- "name": "applicationStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "healthCheckSwarm": {
- "name": "healthCheckSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "restartPolicySwarm": {
- "name": "restartPolicySwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "placementSwarm": {
- "name": "placementSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "updateConfigSwarm": {
- "name": "updateConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "rollbackConfigSwarm": {
- "name": "rollbackConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "modeSwarm": {
- "name": "modeSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "labelsSwarm": {
- "name": "labelsSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "networkSwarm": {
- "name": "networkSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "stopGracePeriodSwarm": {
- "name": "stopGracePeriodSwarm",
- "type": "bigint",
- "primaryKey": false,
- "notNull": false
- },
- "endpointSpecSwarm": {
- "name": "endpointSpecSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "replicas": {
- "name": "replicas",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 1
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "replicaSets": {
- "name": "replicaSets",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false,
- "default": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "mongo_environmentId_environment_environmentId_fk": {
- "name": "mongo_environmentId_environment_environmentId_fk",
- "tableFrom": "mongo",
- "tableTo": "environment",
- "columnsFrom": [
- "environmentId"
- ],
- "columnsTo": [
- "environmentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mongo_serverId_server_serverId_fk": {
- "name": "mongo_serverId_server_serverId_fk",
- "tableFrom": "mongo",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "mongo_appName_unique": {
- "name": "mongo_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.mount": {
- "name": "mount",
- "schema": "",
- "columns": {
- "mountId": {
- "name": "mountId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "type": {
- "name": "type",
- "type": "mountType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true
- },
- "hostPath": {
- "name": "hostPath",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "volumeName": {
- "name": "volumeName",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "filePath": {
- "name": "filePath",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "content": {
- "name": "content",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "serviceType": {
- "name": "serviceType",
- "type": "serviceType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'application'"
- },
- "mountPath": {
- "name": "mountPath",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "postgresId": {
- "name": "postgresId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mariadbId": {
- "name": "mariadbId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mongoId": {
- "name": "mongoId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mysqlId": {
- "name": "mysqlId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "redisId": {
- "name": "redisId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "composeId": {
- "name": "composeId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "mount_applicationId_application_applicationId_fk": {
- "name": "mount_applicationId_application_applicationId_fk",
- "tableFrom": "mount",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mount_postgresId_postgres_postgresId_fk": {
- "name": "mount_postgresId_postgres_postgresId_fk",
- "tableFrom": "mount",
- "tableTo": "postgres",
- "columnsFrom": [
- "postgresId"
- ],
- "columnsTo": [
- "postgresId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mount_mariadbId_mariadb_mariadbId_fk": {
- "name": "mount_mariadbId_mariadb_mariadbId_fk",
- "tableFrom": "mount",
- "tableTo": "mariadb",
- "columnsFrom": [
- "mariadbId"
- ],
- "columnsTo": [
- "mariadbId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mount_mongoId_mongo_mongoId_fk": {
- "name": "mount_mongoId_mongo_mongoId_fk",
- "tableFrom": "mount",
- "tableTo": "mongo",
- "columnsFrom": [
- "mongoId"
- ],
- "columnsTo": [
- "mongoId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mount_mysqlId_mysql_mysqlId_fk": {
- "name": "mount_mysqlId_mysql_mysqlId_fk",
- "tableFrom": "mount",
- "tableTo": "mysql",
- "columnsFrom": [
- "mysqlId"
- ],
- "columnsTo": [
- "mysqlId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mount_redisId_redis_redisId_fk": {
- "name": "mount_redisId_redis_redisId_fk",
- "tableFrom": "mount",
- "tableTo": "redis",
- "columnsFrom": [
- "redisId"
- ],
- "columnsTo": [
- "redisId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mount_composeId_compose_composeId_fk": {
- "name": "mount_composeId_compose_composeId_fk",
- "tableFrom": "mount",
- "tableTo": "compose",
- "columnsFrom": [
- "composeId"
- ],
- "columnsTo": [
- "composeId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.mysql": {
- "name": "mysql",
- "schema": "",
- "columns": {
- "mysqlId": {
- "name": "mysqlId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "databaseName": {
- "name": "databaseName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databaseUser": {
- "name": "databaseUser",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databasePassword": {
- "name": "databasePassword",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "rootPassword": {
- "name": "rootPassword",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "dockerImage": {
- "name": "dockerImage",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryReservation": {
- "name": "memoryReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryLimit": {
- "name": "memoryLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuReservation": {
- "name": "cpuReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuLimit": {
- "name": "cpuLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "externalPort": {
- "name": "externalPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "applicationStatus": {
- "name": "applicationStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "healthCheckSwarm": {
- "name": "healthCheckSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "restartPolicySwarm": {
- "name": "restartPolicySwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "placementSwarm": {
- "name": "placementSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "updateConfigSwarm": {
- "name": "updateConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "rollbackConfigSwarm": {
- "name": "rollbackConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "modeSwarm": {
- "name": "modeSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "labelsSwarm": {
- "name": "labelsSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "networkSwarm": {
- "name": "networkSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "stopGracePeriodSwarm": {
- "name": "stopGracePeriodSwarm",
- "type": "bigint",
- "primaryKey": false,
- "notNull": false
- },
- "endpointSpecSwarm": {
- "name": "endpointSpecSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "replicas": {
- "name": "replicas",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 1
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "mysql_environmentId_environment_environmentId_fk": {
- "name": "mysql_environmentId_environment_environmentId_fk",
- "tableFrom": "mysql",
- "tableTo": "environment",
- "columnsFrom": [
- "environmentId"
- ],
- "columnsTo": [
- "environmentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "mysql_serverId_server_serverId_fk": {
- "name": "mysql_serverId_server_serverId_fk",
- "tableFrom": "mysql",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "mysql_appName_unique": {
- "name": "mysql_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.discord": {
- "name": "discord",
- "schema": "",
- "columns": {
- "discordId": {
- "name": "discordId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "webhookUrl": {
- "name": "webhookUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "decoration": {
- "name": "decoration",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.email": {
- "name": "email",
- "schema": "",
- "columns": {
- "emailId": {
- "name": "emailId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "smtpServer": {
- "name": "smtpServer",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "smtpPort": {
- "name": "smtpPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "username": {
- "name": "username",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "password": {
- "name": "password",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "fromAddress": {
- "name": "fromAddress",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "toAddress": {
- "name": "toAddress",
- "type": "text[]",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.gotify": {
- "name": "gotify",
- "schema": "",
- "columns": {
- "gotifyId": {
- "name": "gotifyId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "serverUrl": {
- "name": "serverUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appToken": {
- "name": "appToken",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "priority": {
- "name": "priority",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 5
- },
- "decoration": {
- "name": "decoration",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.lark": {
- "name": "lark",
- "schema": "",
- "columns": {
- "larkId": {
- "name": "larkId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "webhookUrl": {
- "name": "webhookUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.notification": {
- "name": "notification",
- "schema": "",
- "columns": {
- "notificationId": {
- "name": "notificationId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appDeploy": {
- "name": "appDeploy",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "appBuildError": {
- "name": "appBuildError",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "databaseBackup": {
- "name": "databaseBackup",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "dokployRestart": {
- "name": "dokployRestart",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "dockerCleanup": {
- "name": "dockerCleanup",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "serverThreshold": {
- "name": "serverThreshold",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "notificationType": {
- "name": "notificationType",
- "type": "notificationType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "slackId": {
- "name": "slackId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "telegramId": {
- "name": "telegramId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "discordId": {
- "name": "discordId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "emailId": {
- "name": "emailId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "gotifyId": {
- "name": "gotifyId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "ntfyId": {
- "name": "ntfyId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "larkId": {
- "name": "larkId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "notification_slackId_slack_slackId_fk": {
- "name": "notification_slackId_slack_slackId_fk",
- "tableFrom": "notification",
- "tableTo": "slack",
- "columnsFrom": [
- "slackId"
- ],
- "columnsTo": [
- "slackId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "notification_telegramId_telegram_telegramId_fk": {
- "name": "notification_telegramId_telegram_telegramId_fk",
- "tableFrom": "notification",
- "tableTo": "telegram",
- "columnsFrom": [
- "telegramId"
- ],
- "columnsTo": [
- "telegramId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "notification_discordId_discord_discordId_fk": {
- "name": "notification_discordId_discord_discordId_fk",
- "tableFrom": "notification",
- "tableTo": "discord",
- "columnsFrom": [
- "discordId"
- ],
- "columnsTo": [
- "discordId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "notification_emailId_email_emailId_fk": {
- "name": "notification_emailId_email_emailId_fk",
- "tableFrom": "notification",
- "tableTo": "email",
- "columnsFrom": [
- "emailId"
- ],
- "columnsTo": [
- "emailId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "notification_gotifyId_gotify_gotifyId_fk": {
- "name": "notification_gotifyId_gotify_gotifyId_fk",
- "tableFrom": "notification",
- "tableTo": "gotify",
- "columnsFrom": [
- "gotifyId"
- ],
- "columnsTo": [
- "gotifyId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "notification_ntfyId_ntfy_ntfyId_fk": {
- "name": "notification_ntfyId_ntfy_ntfyId_fk",
- "tableFrom": "notification",
- "tableTo": "ntfy",
- "columnsFrom": [
- "ntfyId"
- ],
- "columnsTo": [
- "ntfyId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "notification_larkId_lark_larkId_fk": {
- "name": "notification_larkId_lark_larkId_fk",
- "tableFrom": "notification",
- "tableTo": "lark",
- "columnsFrom": [
- "larkId"
- ],
- "columnsTo": [
- "larkId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "notification_organizationId_organization_id_fk": {
- "name": "notification_organizationId_organization_id_fk",
- "tableFrom": "notification",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.ntfy": {
- "name": "ntfy",
- "schema": "",
- "columns": {
- "ntfyId": {
- "name": "ntfyId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "serverUrl": {
- "name": "serverUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "topic": {
- "name": "topic",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "accessToken": {
- "name": "accessToken",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "priority": {
- "name": "priority",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 3
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.slack": {
- "name": "slack",
- "schema": "",
- "columns": {
- "slackId": {
- "name": "slackId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "webhookUrl": {
- "name": "webhookUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "channel": {
- "name": "channel",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.telegram": {
- "name": "telegram",
- "schema": "",
- "columns": {
- "telegramId": {
- "name": "telegramId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "botToken": {
- "name": "botToken",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "chatId": {
- "name": "chatId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "messageThreadId": {
- "name": "messageThreadId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.port": {
- "name": "port",
- "schema": "",
- "columns": {
- "portId": {
- "name": "portId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "publishedPort": {
- "name": "publishedPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "publishMode": {
- "name": "publishMode",
- "type": "publishModeType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'host'"
- },
- "targetPort": {
- "name": "targetPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "protocol": {
- "name": "protocol",
- "type": "protocolType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "port_applicationId_application_applicationId_fk": {
- "name": "port_applicationId_application_applicationId_fk",
- "tableFrom": "port",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.postgres": {
- "name": "postgres",
- "schema": "",
- "columns": {
- "postgresId": {
- "name": "postgresId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databaseName": {
- "name": "databaseName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databaseUser": {
- "name": "databaseUser",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "databasePassword": {
- "name": "databasePassword",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "dockerImage": {
- "name": "dockerImage",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryReservation": {
- "name": "memoryReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "externalPort": {
- "name": "externalPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "memoryLimit": {
- "name": "memoryLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuReservation": {
- "name": "cpuReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuLimit": {
- "name": "cpuLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "applicationStatus": {
- "name": "applicationStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "healthCheckSwarm": {
- "name": "healthCheckSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "restartPolicySwarm": {
- "name": "restartPolicySwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "placementSwarm": {
- "name": "placementSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "updateConfigSwarm": {
- "name": "updateConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "rollbackConfigSwarm": {
- "name": "rollbackConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "modeSwarm": {
- "name": "modeSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "labelsSwarm": {
- "name": "labelsSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "networkSwarm": {
- "name": "networkSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "stopGracePeriodSwarm": {
- "name": "stopGracePeriodSwarm",
- "type": "bigint",
- "primaryKey": false,
- "notNull": false
- },
- "endpointSpecSwarm": {
- "name": "endpointSpecSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "replicas": {
- "name": "replicas",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 1
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "postgres_environmentId_environment_environmentId_fk": {
- "name": "postgres_environmentId_environment_environmentId_fk",
- "tableFrom": "postgres",
- "tableTo": "environment",
- "columnsFrom": [
- "environmentId"
- ],
- "columnsTo": [
- "environmentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "postgres_serverId_server_serverId_fk": {
- "name": "postgres_serverId_server_serverId_fk",
- "tableFrom": "postgres",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "postgres_appName_unique": {
- "name": "postgres_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.preview_deployments": {
- "name": "preview_deployments",
- "schema": "",
- "columns": {
- "previewDeploymentId": {
- "name": "previewDeploymentId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "branch": {
- "name": "branch",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "pullRequestId": {
- "name": "pullRequestId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "pullRequestNumber": {
- "name": "pullRequestNumber",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "pullRequestURL": {
- "name": "pullRequestURL",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "pullRequestTitle": {
- "name": "pullRequestTitle",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "pullRequestCommentId": {
- "name": "pullRequestCommentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "previewStatus": {
- "name": "previewStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "domainId": {
- "name": "domainId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "expiresAt": {
- "name": "expiresAt",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "preview_deployments_applicationId_application_applicationId_fk": {
- "name": "preview_deployments_applicationId_application_applicationId_fk",
- "tableFrom": "preview_deployments",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "preview_deployments_domainId_domain_domainId_fk": {
- "name": "preview_deployments_domainId_domain_domainId_fk",
- "tableFrom": "preview_deployments",
- "tableTo": "domain",
- "columnsFrom": [
- "domainId"
- ],
- "columnsTo": [
- "domainId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "preview_deployments_appName_unique": {
- "name": "preview_deployments_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.project": {
- "name": "project",
- "schema": "",
- "columns": {
- "projectId": {
- "name": "projectId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- }
- },
- "indexes": {},
- "foreignKeys": {
- "project_organizationId_organization_id_fk": {
- "name": "project_organizationId_organization_id_fk",
- "tableFrom": "project",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.redirect": {
- "name": "redirect",
- "schema": "",
- "columns": {
- "redirectId": {
- "name": "redirectId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "regex": {
- "name": "regex",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "replacement": {
- "name": "replacement",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "permanent": {
- "name": "permanent",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "uniqueConfigKey": {
- "name": "uniqueConfigKey",
- "type": "serial",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "redirect_applicationId_application_applicationId_fk": {
- "name": "redirect_applicationId_application_applicationId_fk",
- "tableFrom": "redirect",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.redis": {
- "name": "redis",
- "schema": "",
- "columns": {
- "redisId": {
- "name": "redisId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "password": {
- "name": "password",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "dockerImage": {
- "name": "dockerImage",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "env": {
- "name": "env",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryReservation": {
- "name": "memoryReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "memoryLimit": {
- "name": "memoryLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuReservation": {
- "name": "cpuReservation",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "cpuLimit": {
- "name": "cpuLimit",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "externalPort": {
- "name": "externalPort",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "applicationStatus": {
- "name": "applicationStatus",
- "type": "applicationStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'idle'"
- },
- "healthCheckSwarm": {
- "name": "healthCheckSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "restartPolicySwarm": {
- "name": "restartPolicySwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "placementSwarm": {
- "name": "placementSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "updateConfigSwarm": {
- "name": "updateConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "rollbackConfigSwarm": {
- "name": "rollbackConfigSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "modeSwarm": {
- "name": "modeSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "labelsSwarm": {
- "name": "labelsSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "networkSwarm": {
- "name": "networkSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "stopGracePeriodSwarm": {
- "name": "stopGracePeriodSwarm",
- "type": "bigint",
- "primaryKey": false,
- "notNull": false
- },
- "endpointSpecSwarm": {
- "name": "endpointSpecSwarm",
- "type": "json",
- "primaryKey": false,
- "notNull": false
- },
- "replicas": {
- "name": "replicas",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 1
- },
- "environmentId": {
- "name": "environmentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "redis_environmentId_environment_environmentId_fk": {
- "name": "redis_environmentId_environment_environmentId_fk",
- "tableFrom": "redis",
- "tableTo": "environment",
- "columnsFrom": [
- "environmentId"
- ],
- "columnsTo": [
- "environmentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "redis_serverId_server_serverId_fk": {
- "name": "redis_serverId_server_serverId_fk",
- "tableFrom": "redis",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "redis_appName_unique": {
- "name": "redis_appName_unique",
- "nullsNotDistinct": false,
- "columns": [
- "appName"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.registry": {
- "name": "registry",
- "schema": "",
- "columns": {
- "registryId": {
- "name": "registryId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "registryName": {
- "name": "registryName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "imagePrefix": {
- "name": "imagePrefix",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "username": {
- "name": "username",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "password": {
- "name": "password",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "registryUrl": {
- "name": "registryUrl",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "selfHosted": {
- "name": "selfHosted",
- "type": "RegistryType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'cloud'"
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "registry_organizationId_organization_id_fk": {
- "name": "registry_organizationId_organization_id_fk",
- "tableFrom": "registry",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.rollback": {
- "name": "rollback",
- "schema": "",
- "columns": {
- "rollbackId": {
- "name": "rollbackId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "deploymentId": {
- "name": "deploymentId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "version": {
- "name": "version",
- "type": "serial",
- "primaryKey": false,
- "notNull": true
- },
- "image": {
- "name": "image",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "fullContext": {
- "name": "fullContext",
- "type": "jsonb",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "rollback_deploymentId_deployment_deploymentId_fk": {
- "name": "rollback_deploymentId_deployment_deploymentId_fk",
- "tableFrom": "rollback",
- "tableTo": "deployment",
- "columnsFrom": [
- "deploymentId"
- ],
- "columnsTo": [
- "deploymentId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.schedule": {
- "name": "schedule",
- "schema": "",
- "columns": {
- "scheduleId": {
- "name": "scheduleId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "cronExpression": {
- "name": "cronExpression",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serviceName": {
- "name": "serviceName",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "shellType": {
- "name": "shellType",
- "type": "shellType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'bash'"
- },
- "scheduleType": {
- "name": "scheduleType",
- "type": "scheduleType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'application'"
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "script": {
- "name": "script",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "composeId": {
- "name": "composeId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "userId": {
- "name": "userId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "enabled": {
- "name": "enabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "schedule_applicationId_application_applicationId_fk": {
- "name": "schedule_applicationId_application_applicationId_fk",
- "tableFrom": "schedule",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "schedule_composeId_compose_composeId_fk": {
- "name": "schedule_composeId_compose_composeId_fk",
- "tableFrom": "schedule",
- "tableTo": "compose",
- "columnsFrom": [
- "composeId"
- ],
- "columnsTo": [
- "composeId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "schedule_serverId_server_serverId_fk": {
- "name": "schedule_serverId_server_serverId_fk",
- "tableFrom": "schedule",
- "tableTo": "server",
- "columnsFrom": [
- "serverId"
- ],
- "columnsTo": [
- "serverId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "schedule_userId_user_id_fk": {
- "name": "schedule_userId_user_id_fk",
- "tableFrom": "schedule",
- "tableTo": "user",
- "columnsFrom": [
- "userId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.security": {
- "name": "security",
- "schema": "",
- "columns": {
- "securityId": {
- "name": "securityId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "username": {
- "name": "username",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "password": {
- "name": "password",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "security_applicationId_application_applicationId_fk": {
- "name": "security_applicationId_application_applicationId_fk",
- "tableFrom": "security",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "security_username_applicationId_unique": {
- "name": "security_username_applicationId_unique",
- "nullsNotDistinct": false,
- "columns": [
- "username",
- "applicationId"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.server": {
- "name": "server",
- "schema": "",
- "columns": {
- "serverId": {
- "name": "serverId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "ipAddress": {
- "name": "ipAddress",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "port": {
- "name": "port",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "username": {
- "name": "username",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "'root'"
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "enableDockerCleanup": {
- "name": "enableDockerCleanup",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serverStatus": {
- "name": "serverStatus",
- "type": "serverStatus",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'active'"
- },
- "serverType": {
- "name": "serverType",
- "type": "serverType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'deploy'"
- },
- "command": {
- "name": "command",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "sshKeyId": {
- "name": "sshKeyId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "metricsConfig": {
- "name": "metricsConfig",
- "type": "jsonb",
- "primaryKey": false,
- "notNull": true,
- "default": "'{\"server\":{\"type\":\"Remote\",\"refreshRate\":60,\"port\":4500,\"token\":\"\",\"urlCallback\":\"\",\"cronJob\":\"\",\"retentionDays\":2,\"thresholds\":{\"cpu\":0,\"memory\":0}},\"containers\":{\"refreshRate\":60,\"services\":{\"include\":[],\"exclude\":[]}}}'::jsonb"
- }
- },
- "indexes": {},
- "foreignKeys": {
- "server_organizationId_organization_id_fk": {
- "name": "server_organizationId_organization_id_fk",
- "tableFrom": "server",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "server_sshKeyId_ssh-key_sshKeyId_fk": {
- "name": "server_sshKeyId_ssh-key_sshKeyId_fk",
- "tableFrom": "server",
- "tableTo": "ssh-key",
- "columnsFrom": [
- "sshKeyId"
- ],
- "columnsTo": [
- "sshKeyId"
- ],
- "onDelete": "set null",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.session_temp": {
- "name": "session_temp",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "expires_at": {
- "name": "expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "token": {
- "name": "token",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "ip_address": {
- "name": "ip_address",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "user_agent": {
- "name": "user_agent",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "user_id": {
- "name": "user_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "impersonated_by": {
- "name": "impersonated_by",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "active_organization_id": {
- "name": "active_organization_id",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "session_temp_user_id_user_id_fk": {
- "name": "session_temp_user_id_user_id_fk",
- "tableFrom": "session_temp",
- "tableTo": "user",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "session_temp_token_unique": {
- "name": "session_temp_token_unique",
- "nullsNotDistinct": false,
- "columns": [
- "token"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.ssh-key": {
- "name": "ssh-key",
- "schema": "",
- "columns": {
- "sshKeyId": {
- "name": "sshKeyId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "privateKey": {
- "name": "privateKey",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "publicKey": {
- "name": "publicKey",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "lastUsedAt": {
- "name": "lastUsedAt",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "organizationId": {
- "name": "organizationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "ssh-key_organizationId_organization_id_fk": {
- "name": "ssh-key_organizationId_organization_id_fk",
- "tableFrom": "ssh-key",
- "tableTo": "organization",
- "columnsFrom": [
- "organizationId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.user": {
- "name": "user",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "''"
- },
- "isRegistered": {
- "name": "isRegistered",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "expirationDate": {
- "name": "expirationDate",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false,
- "default": "now()"
- },
- "two_factor_enabled": {
- "name": "two_factor_enabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "email": {
- "name": "email",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "email_verified": {
- "name": "email_verified",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true
- },
- "image": {
- "name": "image",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "banned": {
- "name": "banned",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "ban_reason": {
- "name": "ban_reason",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "ban_expires": {
- "name": "ban_expires",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "serverIp": {
- "name": "serverIp",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "certificateType": {
- "name": "certificateType",
- "type": "certificateType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'none'"
- },
- "https": {
- "name": "https",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "host": {
- "name": "host",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "letsEncryptEmail": {
- "name": "letsEncryptEmail",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "sshPrivateKey": {
- "name": "sshPrivateKey",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "enableDockerCleanup": {
- "name": "enableDockerCleanup",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "logCleanupCron": {
- "name": "logCleanupCron",
- "type": "text",
- "primaryKey": false,
- "notNull": false,
- "default": "'0 0 * * *'"
- },
- "role": {
- "name": "role",
- "type": "text",
- "primaryKey": false,
- "notNull": true,
- "default": "'user'"
- },
- "enablePaidFeatures": {
- "name": "enablePaidFeatures",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "allowImpersonation": {
- "name": "allowImpersonation",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "metricsConfig": {
- "name": "metricsConfig",
- "type": "jsonb",
- "primaryKey": false,
- "notNull": true,
- "default": "'{\"server\":{\"type\":\"Dokploy\",\"refreshRate\":60,\"port\":4500,\"token\":\"\",\"retentionDays\":2,\"cronJob\":\"\",\"urlCallback\":\"\",\"thresholds\":{\"cpu\":0,\"memory\":0}},\"containers\":{\"refreshRate\":60,\"services\":{\"include\":[],\"exclude\":[]}}}'::jsonb"
- },
- "cleanupCacheApplications": {
- "name": "cleanupCacheApplications",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "cleanupCacheOnPreviews": {
- "name": "cleanupCacheOnPreviews",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "cleanupCacheOnCompose": {
- "name": "cleanupCacheOnCompose",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "stripeCustomerId": {
- "name": "stripeCustomerId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "stripeSubscriptionId": {
- "name": "stripeSubscriptionId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "serversQuantity": {
- "name": "serversQuantity",
- "type": "integer",
- "primaryKey": false,
- "notNull": true,
- "default": 0
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "user_email_unique": {
- "name": "user_email_unique",
- "nullsNotDistinct": false,
- "columns": [
- "email"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "public.volume_backup": {
- "name": "volume_backup",
- "schema": "",
- "columns": {
- "volumeBackupId": {
- "name": "volumeBackupId",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "volumeName": {
- "name": "volumeName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "prefix": {
- "name": "prefix",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serviceType": {
- "name": "serviceType",
- "type": "serviceType",
- "typeSchema": "public",
- "primaryKey": false,
- "notNull": true,
- "default": "'application'"
- },
- "appName": {
- "name": "appName",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "serviceName": {
- "name": "serviceName",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "turnOff": {
- "name": "turnOff",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true,
- "default": false
- },
- "cronExpression": {
- "name": "cronExpression",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "keepLatestCount": {
- "name": "keepLatestCount",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "enabled": {
- "name": "enabled",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "applicationId": {
- "name": "applicationId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "postgresId": {
- "name": "postgresId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mariadbId": {
- "name": "mariadbId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mongoId": {
- "name": "mongoId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "mysqlId": {
- "name": "mysqlId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "redisId": {
- "name": "redisId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "composeId": {
- "name": "composeId",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "createdAt": {
- "name": "createdAt",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "destinationId": {
- "name": "destinationId",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "volume_backup_applicationId_application_applicationId_fk": {
- "name": "volume_backup_applicationId_application_applicationId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "application",
- "columnsFrom": [
- "applicationId"
- ],
- "columnsTo": [
- "applicationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "volume_backup_postgresId_postgres_postgresId_fk": {
- "name": "volume_backup_postgresId_postgres_postgresId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "postgres",
- "columnsFrom": [
- "postgresId"
- ],
- "columnsTo": [
- "postgresId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "volume_backup_mariadbId_mariadb_mariadbId_fk": {
- "name": "volume_backup_mariadbId_mariadb_mariadbId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "mariadb",
- "columnsFrom": [
- "mariadbId"
- ],
- "columnsTo": [
- "mariadbId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "volume_backup_mongoId_mongo_mongoId_fk": {
- "name": "volume_backup_mongoId_mongo_mongoId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "mongo",
- "columnsFrom": [
- "mongoId"
- ],
- "columnsTo": [
- "mongoId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "volume_backup_mysqlId_mysql_mysqlId_fk": {
- "name": "volume_backup_mysqlId_mysql_mysqlId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "mysql",
- "columnsFrom": [
- "mysqlId"
- ],
- "columnsTo": [
- "mysqlId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "volume_backup_redisId_redis_redisId_fk": {
- "name": "volume_backup_redisId_redis_redisId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "redis",
- "columnsFrom": [
- "redisId"
- ],
- "columnsTo": [
- "redisId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "volume_backup_composeId_compose_composeId_fk": {
- "name": "volume_backup_composeId_compose_composeId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "compose",
- "columnsFrom": [
- "composeId"
- ],
- "columnsTo": [
- "composeId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "volume_backup_destinationId_destination_destinationId_fk": {
- "name": "volume_backup_destinationId_destination_destinationId_fk",
- "tableFrom": "volume_backup",
- "tableTo": "destination",
- "columnsFrom": [
- "destinationId"
- ],
- "columnsTo": [
- "destinationId"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- }
- },
- "enums": {
- "public.buildType": {
- "name": "buildType",
- "schema": "public",
- "values": [
- "dockerfile",
- "heroku_buildpacks",
- "paketo_buildpacks",
- "nixpacks",
- "static",
- "railpack"
- ]
- },
- "public.sourceType": {
- "name": "sourceType",
- "schema": "public",
- "values": [
- "docker",
- "git",
- "github",
- "gitlab",
- "bitbucket",
- "gitea",
- "drop"
- ]
- },
- "public.backupType": {
- "name": "backupType",
- "schema": "public",
- "values": [
- "database",
- "compose"
- ]
- },
- "public.databaseType": {
- "name": "databaseType",
- "schema": "public",
- "values": [
- "postgres",
- "mariadb",
- "mysql",
- "mongo",
- "web-server"
- ]
- },
- "public.composeType": {
- "name": "composeType",
- "schema": "public",
- "values": [
- "docker-compose",
- "stack"
- ]
- },
- "public.sourceTypeCompose": {
- "name": "sourceTypeCompose",
- "schema": "public",
- "values": [
- "git",
- "github",
- "gitlab",
- "bitbucket",
- "gitea",
- "raw"
- ]
- },
- "public.deploymentStatus": {
- "name": "deploymentStatus",
- "schema": "public",
- "values": [
- "running",
- "done",
- "error",
- "cancelled"
- ]
- },
- "public.domainType": {
- "name": "domainType",
- "schema": "public",
- "values": [
- "compose",
- "application",
- "preview"
- ]
- },
- "public.gitProviderType": {
- "name": "gitProviderType",
- "schema": "public",
- "values": [
- "github",
- "gitlab",
- "bitbucket",
- "gitea"
- ]
- },
- "public.mountType": {
- "name": "mountType",
- "schema": "public",
- "values": [
- "bind",
- "volume",
- "file"
- ]
- },
- "public.serviceType": {
- "name": "serviceType",
- "schema": "public",
- "values": [
- "application",
- "postgres",
- "mysql",
- "mariadb",
- "mongo",
- "redis",
- "compose"
- ]
- },
- "public.notificationType": {
- "name": "notificationType",
- "schema": "public",
- "values": [
- "slack",
- "telegram",
- "discord",
- "email",
- "gotify",
- "ntfy",
- "lark"
- ]
- },
- "public.protocolType": {
- "name": "protocolType",
- "schema": "public",
- "values": [
- "tcp",
- "udp"
- ]
- },
- "public.publishModeType": {
- "name": "publishModeType",
- "schema": "public",
- "values": [
- "ingress",
- "host"
- ]
- },
- "public.RegistryType": {
- "name": "RegistryType",
- "schema": "public",
- "values": [
- "selfHosted",
- "cloud"
- ]
- },
- "public.scheduleType": {
- "name": "scheduleType",
- "schema": "public",
- "values": [
- "application",
- "compose",
- "server",
- "dokploy-server"
- ]
- },
- "public.shellType": {
- "name": "shellType",
- "schema": "public",
- "values": [
- "bash",
- "sh"
- ]
- },
- "public.serverStatus": {
- "name": "serverStatus",
- "schema": "public",
- "values": [
- "active",
- "inactive"
- ]
- },
- "public.serverType": {
- "name": "serverType",
- "schema": "public",
- "values": [
- "deploy",
- "build"
- ]
- },
- "public.applicationStatus": {
- "name": "applicationStatus",
- "schema": "public",
- "values": [
- "idle",
- "running",
- "done",
- "error"
- ]
- },
- "public.certificateType": {
- "name": "certificateType",
- "schema": "public",
- "values": [
- "letsencrypt",
- "none",
- "custom"
- ]
- },
- "public.triggerType": {
- "name": "triggerType",
- "schema": "public",
- "values": [
- "push",
- "tag"
- ]
- }
- },
- "schemas": {},
- "sequences": {},
- "roles": {},
- "policies": {},
- "views": {},
- "_meta": {
- "columns": {},
- "schemas": {},
- "tables": {}
- }
-}
\ No newline at end of file
diff --git a/apps/dokploy/drizzle/meta/_journal.json b/apps/dokploy/drizzle/meta/_journal.json
index 1b6602bbf..323562fd1 100644
--- a/apps/dokploy/drizzle/meta/_journal.json
+++ b/apps/dokploy/drizzle/meta/_journal.json
@@ -855,27 +855,6 @@
"when": 1763755037033,
"tag": "0121_rainy_cargill",
"breakpoints": true
- },
- {
- "idx": 122,
- "version": "7",
- "when": 1764471908821,
- "tag": "0122_cold_ben_parker",
- "breakpoints": true
- },
- {
- "idx": 123,
- "version": "7",
- "when": 1764472942038,
- "tag": "0123_careless_odin",
- "breakpoints": true
- },
- {
- "idx": 124,
- "version": "7",
- "when": 1764474904317,
- "tag": "0124_faulty_synch",
- "breakpoints": true
}
]
}
\ No newline at end of file
From 8cff84ef54f1fae5dcecb24a1bd1aa14fc56c7f9 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sat, 29 Nov 2025 23:09:54 -0600
Subject: [PATCH 24/74] feat: add build server and registry configurations to
database schema
- Created a new SQL file to define the serverType enum and added buildServerId and buildRegistryId columns to the application and deployment tables.
- Established foreign key constraints for buildServerId and buildRegistryId to ensure referential integrity with the server and registry tables.
- Updated the journal and snapshot files to reflect these schema changes, enhancing the overall build server functionality.
---
.../drizzle/0122_absent_frightful_four.sql | 8 +
apps/dokploy/drizzle/meta/0122_snapshot.json | 6795 +++++++++++++++++
apps/dokploy/drizzle/meta/_journal.json | 7 +
3 files changed, 6810 insertions(+)
create mode 100644 apps/dokploy/drizzle/0122_absent_frightful_four.sql
create mode 100644 apps/dokploy/drizzle/meta/0122_snapshot.json
diff --git a/apps/dokploy/drizzle/0122_absent_frightful_four.sql b/apps/dokploy/drizzle/0122_absent_frightful_four.sql
new file mode 100644
index 000000000..74879014f
--- /dev/null
+++ b/apps/dokploy/drizzle/0122_absent_frightful_four.sql
@@ -0,0 +1,8 @@
+CREATE TYPE "public"."serverType" AS ENUM('deploy', 'build');--> statement-breakpoint
+ALTER TABLE "application" ADD COLUMN "buildServerId" text;--> statement-breakpoint
+ALTER TABLE "application" ADD COLUMN "buildRegistryId" text;--> statement-breakpoint
+ALTER TABLE "deployment" ADD COLUMN "buildServerId" text;--> statement-breakpoint
+ALTER TABLE "server" ADD COLUMN "serverType" "serverType" DEFAULT 'deploy' NOT NULL;--> statement-breakpoint
+ALTER TABLE "application" ADD CONSTRAINT "application_buildServerId_server_serverId_fk" FOREIGN KEY ("buildServerId") REFERENCES "public"."server"("serverId") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
+ALTER TABLE "application" ADD CONSTRAINT "application_buildRegistryId_registry_registryId_fk" FOREIGN KEY ("buildRegistryId") REFERENCES "public"."registry"("registryId") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
+ALTER TABLE "deployment" ADD CONSTRAINT "deployment_buildServerId_server_serverId_fk" FOREIGN KEY ("buildServerId") REFERENCES "public"."server"("serverId") ON DELETE cascade ON UPDATE no action;
\ No newline at end of file
diff --git a/apps/dokploy/drizzle/meta/0122_snapshot.json b/apps/dokploy/drizzle/meta/0122_snapshot.json
new file mode 100644
index 000000000..bb1971839
--- /dev/null
+++ b/apps/dokploy/drizzle/meta/0122_snapshot.json
@@ -0,0 +1,6795 @@
+{
+ "id": "777101fe-5db7-4975-b3b9-4afa3cf82364",
+ "prevId": "6d1361fc-3a46-4016-b6db-42351c20393c",
+ "version": "7",
+ "dialect": "postgresql",
+ "tables": {
+ "public.account": {
+ "name": "account",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "account_id": {
+ "name": "account_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "provider_id": {
+ "name": "provider_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "id_token": {
+ "name": "id_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "access_token_expires_at": {
+ "name": "access_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token_expires_at": {
+ "name": "refresh_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scope": {
+ "name": "scope",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "is2FAEnabled": {
+ "name": "is2FAEnabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "resetPasswordToken": {
+ "name": "resetPasswordToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "resetPasswordExpiresAt": {
+ "name": "resetPasswordExpiresAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "confirmationToken": {
+ "name": "confirmationToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "confirmationExpiresAt": {
+ "name": "confirmationExpiresAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "account_user_id_user_id_fk": {
+ "name": "account_user_id_user_id_fk",
+ "tableFrom": "account",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.apikey": {
+ "name": "apikey",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "start": {
+ "name": "start",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "prefix": {
+ "name": "prefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "key": {
+ "name": "key",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "refill_interval": {
+ "name": "refill_interval",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refill_amount": {
+ "name": "refill_amount",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "last_refill_at": {
+ "name": "last_refill_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rate_limit_enabled": {
+ "name": "rate_limit_enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rate_limit_time_window": {
+ "name": "rate_limit_time_window",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rate_limit_max": {
+ "name": "rate_limit_max",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "request_count": {
+ "name": "request_count",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "remaining": {
+ "name": "remaining",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "last_request": {
+ "name": "last_request",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "permissions": {
+ "name": "permissions",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "apikey_user_id_user_id_fk": {
+ "name": "apikey_user_id_user_id_fk",
+ "tableFrom": "apikey",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.invitation": {
+ "name": "invitation",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "status": {
+ "name": "status",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "inviter_id": {
+ "name": "inviter_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "team_id": {
+ "name": "team_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "invitation_organization_id_organization_id_fk": {
+ "name": "invitation_organization_id_organization_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "invitation_inviter_id_user_id_fk": {
+ "name": "invitation_inviter_id_user_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "user",
+ "columnsFrom": [
+ "inviter_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.member": {
+ "name": "member",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "team_id": {
+ "name": "team_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "is_default": {
+ "name": "is_default",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canCreateProjects": {
+ "name": "canCreateProjects",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToSSHKeys": {
+ "name": "canAccessToSSHKeys",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canCreateServices": {
+ "name": "canCreateServices",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canDeleteProjects": {
+ "name": "canDeleteProjects",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canDeleteServices": {
+ "name": "canDeleteServices",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToDocker": {
+ "name": "canAccessToDocker",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToAPI": {
+ "name": "canAccessToAPI",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToGitProviders": {
+ "name": "canAccessToGitProviders",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToTraefikFiles": {
+ "name": "canAccessToTraefikFiles",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canDeleteEnvironments": {
+ "name": "canDeleteEnvironments",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canCreateEnvironments": {
+ "name": "canCreateEnvironments",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "accesedProjects": {
+ "name": "accesedProjects",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "ARRAY[]::text[]"
+ },
+ "accessedEnvironments": {
+ "name": "accessedEnvironments",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "ARRAY[]::text[]"
+ },
+ "accesedServices": {
+ "name": "accesedServices",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "ARRAY[]::text[]"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "member_organization_id_organization_id_fk": {
+ "name": "member_organization_id_organization_id_fk",
+ "tableFrom": "member",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "member_user_id_user_id_fk": {
+ "name": "member_user_id_user_id_fk",
+ "tableFrom": "member",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.organization": {
+ "name": "organization",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "slug": {
+ "name": "slug",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "logo": {
+ "name": "logo",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "owner_id": {
+ "name": "owner_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "organization_owner_id_user_id_fk": {
+ "name": "organization_owner_id_user_id_fk",
+ "tableFrom": "organization",
+ "tableTo": "user",
+ "columnsFrom": [
+ "owner_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "organization_slug_unique": {
+ "name": "organization_slug_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "slug"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.two_factor": {
+ "name": "two_factor",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "secret": {
+ "name": "secret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "backup_codes": {
+ "name": "backup_codes",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "two_factor_user_id_user_id_fk": {
+ "name": "two_factor_user_id_user_id_fk",
+ "tableFrom": "two_factor",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.verification": {
+ "name": "verification",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "identifier": {
+ "name": "identifier",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "value": {
+ "name": "value",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ai": {
+ "name": "ai",
+ "schema": "",
+ "columns": {
+ "aiId": {
+ "name": "aiId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "apiUrl": {
+ "name": "apiUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "apiKey": {
+ "name": "apiKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "model": {
+ "name": "model",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "isEnabled": {
+ "name": "isEnabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "ai_organizationId_organization_id_fk": {
+ "name": "ai_organizationId_organization_id_fk",
+ "tableFrom": "ai",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.application": {
+ "name": "application",
+ "schema": "",
+ "columns": {
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewEnv": {
+ "name": "previewEnv",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "watchPaths": {
+ "name": "watchPaths",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewBuildArgs": {
+ "name": "previewBuildArgs",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewBuildSecrets": {
+ "name": "previewBuildSecrets",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewLabels": {
+ "name": "previewLabels",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewWildcard": {
+ "name": "previewWildcard",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewPort": {
+ "name": "previewPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false,
+ "default": 3000
+ },
+ "previewHttps": {
+ "name": "previewHttps",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "previewPath": {
+ "name": "previewPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "certificateType": {
+ "name": "certificateType",
+ "type": "certificateType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'none'"
+ },
+ "previewCustomCertResolver": {
+ "name": "previewCustomCertResolver",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewLimit": {
+ "name": "previewLimit",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false,
+ "default": 3
+ },
+ "isPreviewDeploymentsActive": {
+ "name": "isPreviewDeploymentsActive",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "previewRequireCollaboratorPermissions": {
+ "name": "previewRequireCollaboratorPermissions",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": true
+ },
+ "rollbackActive": {
+ "name": "rollbackActive",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "buildArgs": {
+ "name": "buildArgs",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildSecrets": {
+ "name": "buildSecrets",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "title": {
+ "name": "title",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "subtitle": {
+ "name": "subtitle",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refreshToken": {
+ "name": "refreshToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "sourceType": {
+ "name": "sourceType",
+ "type": "sourceType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'github'"
+ },
+ "cleanCache": {
+ "name": "cleanCache",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "repository": {
+ "name": "repository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "owner": {
+ "name": "owner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "branch": {
+ "name": "branch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildPath": {
+ "name": "buildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "triggerType": {
+ "name": "triggerType",
+ "type": "triggerType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'push'"
+ },
+ "autoDeploy": {
+ "name": "autoDeploy",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabProjectId": {
+ "name": "gitlabProjectId",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabRepository": {
+ "name": "gitlabRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabOwner": {
+ "name": "gitlabOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabBranch": {
+ "name": "gitlabBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabBuildPath": {
+ "name": "gitlabBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "gitlabPathNamespace": {
+ "name": "gitlabPathNamespace",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaRepository": {
+ "name": "giteaRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaOwner": {
+ "name": "giteaOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaBranch": {
+ "name": "giteaBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaBuildPath": {
+ "name": "giteaBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "bitbucketRepository": {
+ "name": "bitbucketRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketOwner": {
+ "name": "bitbucketOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketBranch": {
+ "name": "bitbucketBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketBuildPath": {
+ "name": "bitbucketBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "registryUrl": {
+ "name": "registryUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitUrl": {
+ "name": "customGitUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitBranch": {
+ "name": "customGitBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitBuildPath": {
+ "name": "customGitBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitSSHKeyId": {
+ "name": "customGitSSHKeyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enableSubmodules": {
+ "name": "enableSubmodules",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "dockerfile": {
+ "name": "dockerfile",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerContextPath": {
+ "name": "dockerContextPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerBuildStage": {
+ "name": "dockerBuildStage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dropBuildPath": {
+ "name": "dropBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "buildType": {
+ "name": "buildType",
+ "type": "buildType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'nixpacks'"
+ },
+ "railpackVersion": {
+ "name": "railpackVersion",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'0.2.2'"
+ },
+ "herokuVersion": {
+ "name": "herokuVersion",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'24'"
+ },
+ "publishDirectory": {
+ "name": "publishDirectory",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "isStaticSpa": {
+ "name": "isStaticSpa",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "registryId": {
+ "name": "registryId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "githubId": {
+ "name": "githubId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabId": {
+ "name": "gitlabId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaId": {
+ "name": "giteaId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketId": {
+ "name": "bitbucketId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildServerId": {
+ "name": "buildServerId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildRegistryId": {
+ "name": "buildRegistryId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "application_customGitSSHKeyId_ssh-key_sshKeyId_fk": {
+ "name": "application_customGitSSHKeyId_ssh-key_sshKeyId_fk",
+ "tableFrom": "application",
+ "tableTo": "ssh-key",
+ "columnsFrom": [
+ "customGitSSHKeyId"
+ ],
+ "columnsTo": [
+ "sshKeyId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_registryId_registry_registryId_fk": {
+ "name": "application_registryId_registry_registryId_fk",
+ "tableFrom": "application",
+ "tableTo": "registry",
+ "columnsFrom": [
+ "registryId"
+ ],
+ "columnsTo": [
+ "registryId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_environmentId_environment_environmentId_fk": {
+ "name": "application_environmentId_environment_environmentId_fk",
+ "tableFrom": "application",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "application_githubId_github_githubId_fk": {
+ "name": "application_githubId_github_githubId_fk",
+ "tableFrom": "application",
+ "tableTo": "github",
+ "columnsFrom": [
+ "githubId"
+ ],
+ "columnsTo": [
+ "githubId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_gitlabId_gitlab_gitlabId_fk": {
+ "name": "application_gitlabId_gitlab_gitlabId_fk",
+ "tableFrom": "application",
+ "tableTo": "gitlab",
+ "columnsFrom": [
+ "gitlabId"
+ ],
+ "columnsTo": [
+ "gitlabId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_giteaId_gitea_giteaId_fk": {
+ "name": "application_giteaId_gitea_giteaId_fk",
+ "tableFrom": "application",
+ "tableTo": "gitea",
+ "columnsFrom": [
+ "giteaId"
+ ],
+ "columnsTo": [
+ "giteaId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_bitbucketId_bitbucket_bitbucketId_fk": {
+ "name": "application_bitbucketId_bitbucket_bitbucketId_fk",
+ "tableFrom": "application",
+ "tableTo": "bitbucket",
+ "columnsFrom": [
+ "bitbucketId"
+ ],
+ "columnsTo": [
+ "bitbucketId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_serverId_server_serverId_fk": {
+ "name": "application_serverId_server_serverId_fk",
+ "tableFrom": "application",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "application_buildServerId_server_serverId_fk": {
+ "name": "application_buildServerId_server_serverId_fk",
+ "tableFrom": "application",
+ "tableTo": "server",
+ "columnsFrom": [
+ "buildServerId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_buildRegistryId_registry_registryId_fk": {
+ "name": "application_buildRegistryId_registry_registryId_fk",
+ "tableFrom": "application",
+ "tableTo": "registry",
+ "columnsFrom": [
+ "buildRegistryId"
+ ],
+ "columnsTo": [
+ "registryId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "application_appName_unique": {
+ "name": "application_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.backup": {
+ "name": "backup",
+ "schema": "",
+ "columns": {
+ "backupId": {
+ "name": "backupId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "schedule": {
+ "name": "schedule",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "database": {
+ "name": "database",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "prefix": {
+ "name": "prefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "destinationId": {
+ "name": "destinationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "keepLatestCount": {
+ "name": "keepLatestCount",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "backupType": {
+ "name": "backupType",
+ "type": "backupType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'database'"
+ },
+ "databaseType": {
+ "name": "databaseType",
+ "type": "databaseType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "userId": {
+ "name": "userId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "backup_destinationId_destination_destinationId_fk": {
+ "name": "backup_destinationId_destination_destinationId_fk",
+ "tableFrom": "backup",
+ "tableTo": "destination",
+ "columnsFrom": [
+ "destinationId"
+ ],
+ "columnsTo": [
+ "destinationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_composeId_compose_composeId_fk": {
+ "name": "backup_composeId_compose_composeId_fk",
+ "tableFrom": "backup",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_postgresId_postgres_postgresId_fk": {
+ "name": "backup_postgresId_postgres_postgresId_fk",
+ "tableFrom": "backup",
+ "tableTo": "postgres",
+ "columnsFrom": [
+ "postgresId"
+ ],
+ "columnsTo": [
+ "postgresId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_mariadbId_mariadb_mariadbId_fk": {
+ "name": "backup_mariadbId_mariadb_mariadbId_fk",
+ "tableFrom": "backup",
+ "tableTo": "mariadb",
+ "columnsFrom": [
+ "mariadbId"
+ ],
+ "columnsTo": [
+ "mariadbId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_mysqlId_mysql_mysqlId_fk": {
+ "name": "backup_mysqlId_mysql_mysqlId_fk",
+ "tableFrom": "backup",
+ "tableTo": "mysql",
+ "columnsFrom": [
+ "mysqlId"
+ ],
+ "columnsTo": [
+ "mysqlId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_mongoId_mongo_mongoId_fk": {
+ "name": "backup_mongoId_mongo_mongoId_fk",
+ "tableFrom": "backup",
+ "tableTo": "mongo",
+ "columnsFrom": [
+ "mongoId"
+ ],
+ "columnsTo": [
+ "mongoId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_userId_user_id_fk": {
+ "name": "backup_userId_user_id_fk",
+ "tableFrom": "backup",
+ "tableTo": "user",
+ "columnsFrom": [
+ "userId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "backup_appName_unique": {
+ "name": "backup_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.bitbucket": {
+ "name": "bitbucket",
+ "schema": "",
+ "columns": {
+ "bitbucketId": {
+ "name": "bitbucketId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "bitbucketUsername": {
+ "name": "bitbucketUsername",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketEmail": {
+ "name": "bitbucketEmail",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "appPassword": {
+ "name": "appPassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "apiToken": {
+ "name": "apiToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketWorkspaceName": {
+ "name": "bitbucketWorkspaceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "bitbucket_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "bitbucket_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "bitbucket",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.certificate": {
+ "name": "certificate",
+ "schema": "",
+ "columns": {
+ "certificateId": {
+ "name": "certificateId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "certificateData": {
+ "name": "certificateData",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "privateKey": {
+ "name": "privateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "certificatePath": {
+ "name": "certificatePath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "autoRenew": {
+ "name": "autoRenew",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "certificate_organizationId_organization_id_fk": {
+ "name": "certificate_organizationId_organization_id_fk",
+ "tableFrom": "certificate",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "certificate_serverId_server_serverId_fk": {
+ "name": "certificate_serverId_server_serverId_fk",
+ "tableFrom": "certificate",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "certificate_certificatePath_unique": {
+ "name": "certificate_certificatePath_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "certificatePath"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.compose": {
+ "name": "compose",
+ "schema": "",
+ "columns": {
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeFile": {
+ "name": "composeFile",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "refreshToken": {
+ "name": "refreshToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "sourceType": {
+ "name": "sourceType",
+ "type": "sourceTypeCompose",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'github'"
+ },
+ "composeType": {
+ "name": "composeType",
+ "type": "composeType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'docker-compose'"
+ },
+ "repository": {
+ "name": "repository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "owner": {
+ "name": "owner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "branch": {
+ "name": "branch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "autoDeploy": {
+ "name": "autoDeploy",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabProjectId": {
+ "name": "gitlabProjectId",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabRepository": {
+ "name": "gitlabRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabOwner": {
+ "name": "gitlabOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabBranch": {
+ "name": "gitlabBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabPathNamespace": {
+ "name": "gitlabPathNamespace",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketRepository": {
+ "name": "bitbucketRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketOwner": {
+ "name": "bitbucketOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketBranch": {
+ "name": "bitbucketBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaRepository": {
+ "name": "giteaRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaOwner": {
+ "name": "giteaOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaBranch": {
+ "name": "giteaBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitUrl": {
+ "name": "customGitUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitBranch": {
+ "name": "customGitBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitSSHKeyId": {
+ "name": "customGitSSHKeyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "enableSubmodules": {
+ "name": "enableSubmodules",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "composePath": {
+ "name": "composePath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'./docker-compose.yml'"
+ },
+ "suffix": {
+ "name": "suffix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "randomize": {
+ "name": "randomize",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "isolatedDeployment": {
+ "name": "isolatedDeployment",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "isolatedDeploymentsVolume": {
+ "name": "isolatedDeploymentsVolume",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "triggerType": {
+ "name": "triggerType",
+ "type": "triggerType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'push'"
+ },
+ "composeStatus": {
+ "name": "composeStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "watchPaths": {
+ "name": "watchPaths",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubId": {
+ "name": "githubId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabId": {
+ "name": "gitlabId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketId": {
+ "name": "bitbucketId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaId": {
+ "name": "giteaId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk": {
+ "name": "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk",
+ "tableFrom": "compose",
+ "tableTo": "ssh-key",
+ "columnsFrom": [
+ "customGitSSHKeyId"
+ ],
+ "columnsTo": [
+ "sshKeyId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_environmentId_environment_environmentId_fk": {
+ "name": "compose_environmentId_environment_environmentId_fk",
+ "tableFrom": "compose",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "compose_githubId_github_githubId_fk": {
+ "name": "compose_githubId_github_githubId_fk",
+ "tableFrom": "compose",
+ "tableTo": "github",
+ "columnsFrom": [
+ "githubId"
+ ],
+ "columnsTo": [
+ "githubId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_gitlabId_gitlab_gitlabId_fk": {
+ "name": "compose_gitlabId_gitlab_gitlabId_fk",
+ "tableFrom": "compose",
+ "tableTo": "gitlab",
+ "columnsFrom": [
+ "gitlabId"
+ ],
+ "columnsTo": [
+ "gitlabId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_bitbucketId_bitbucket_bitbucketId_fk": {
+ "name": "compose_bitbucketId_bitbucket_bitbucketId_fk",
+ "tableFrom": "compose",
+ "tableTo": "bitbucket",
+ "columnsFrom": [
+ "bitbucketId"
+ ],
+ "columnsTo": [
+ "bitbucketId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_giteaId_gitea_giteaId_fk": {
+ "name": "compose_giteaId_gitea_giteaId_fk",
+ "tableFrom": "compose",
+ "tableTo": "gitea",
+ "columnsFrom": [
+ "giteaId"
+ ],
+ "columnsTo": [
+ "giteaId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_serverId_server_serverId_fk": {
+ "name": "compose_serverId_server_serverId_fk",
+ "tableFrom": "compose",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.deployment": {
+ "name": "deployment",
+ "schema": "",
+ "columns": {
+ "deploymentId": {
+ "name": "deploymentId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "title": {
+ "name": "title",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "status": {
+ "name": "status",
+ "type": "deploymentStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'running'"
+ },
+ "logPath": {
+ "name": "logPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pid": {
+ "name": "pid",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "isPreviewDeployment": {
+ "name": "isPreviewDeployment",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "previewDeploymentId": {
+ "name": "previewDeploymentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "startedAt": {
+ "name": "startedAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "finishedAt": {
+ "name": "finishedAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "errorMessage": {
+ "name": "errorMessage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scheduleId": {
+ "name": "scheduleId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "backupId": {
+ "name": "backupId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackId": {
+ "name": "rollbackId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "volumeBackupId": {
+ "name": "volumeBackupId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildServerId": {
+ "name": "buildServerId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "deployment_applicationId_application_applicationId_fk": {
+ "name": "deployment_applicationId_application_applicationId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_composeId_compose_composeId_fk": {
+ "name": "deployment_composeId_compose_composeId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_serverId_server_serverId_fk": {
+ "name": "deployment_serverId_server_serverId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_previewDeploymentId_preview_deployments_previewDeploymentId_fk": {
+ "name": "deployment_previewDeploymentId_preview_deployments_previewDeploymentId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "preview_deployments",
+ "columnsFrom": [
+ "previewDeploymentId"
+ ],
+ "columnsTo": [
+ "previewDeploymentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_scheduleId_schedule_scheduleId_fk": {
+ "name": "deployment_scheduleId_schedule_scheduleId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "schedule",
+ "columnsFrom": [
+ "scheduleId"
+ ],
+ "columnsTo": [
+ "scheduleId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_backupId_backup_backupId_fk": {
+ "name": "deployment_backupId_backup_backupId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "backup",
+ "columnsFrom": [
+ "backupId"
+ ],
+ "columnsTo": [
+ "backupId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_rollbackId_rollback_rollbackId_fk": {
+ "name": "deployment_rollbackId_rollback_rollbackId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "rollback",
+ "columnsFrom": [
+ "rollbackId"
+ ],
+ "columnsTo": [
+ "rollbackId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_volumeBackupId_volume_backup_volumeBackupId_fk": {
+ "name": "deployment_volumeBackupId_volume_backup_volumeBackupId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "volume_backup",
+ "columnsFrom": [
+ "volumeBackupId"
+ ],
+ "columnsTo": [
+ "volumeBackupId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_buildServerId_server_serverId_fk": {
+ "name": "deployment_buildServerId_server_serverId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "server",
+ "columnsFrom": [
+ "buildServerId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.destination": {
+ "name": "destination",
+ "schema": "",
+ "columns": {
+ "destinationId": {
+ "name": "destinationId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "provider": {
+ "name": "provider",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "accessKey": {
+ "name": "accessKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "secretAccessKey": {
+ "name": "secretAccessKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "bucket": {
+ "name": "bucket",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "region": {
+ "name": "region",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "endpoint": {
+ "name": "endpoint",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "destination_organizationId_organization_id_fk": {
+ "name": "destination_organizationId_organization_id_fk",
+ "tableFrom": "destination",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.domain": {
+ "name": "domain",
+ "schema": "",
+ "columns": {
+ "domainId": {
+ "name": "domainId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "host": {
+ "name": "host",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "https": {
+ "name": "https",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "port": {
+ "name": "port",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false,
+ "default": 3000
+ },
+ "path": {
+ "name": "path",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "domainType": {
+ "name": "domainType",
+ "type": "domainType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'application'"
+ },
+ "uniqueConfigKey": {
+ "name": "uniqueConfigKey",
+ "type": "serial",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customCertResolver": {
+ "name": "customCertResolver",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewDeploymentId": {
+ "name": "previewDeploymentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "certificateType": {
+ "name": "certificateType",
+ "type": "certificateType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'none'"
+ },
+ "internalPath": {
+ "name": "internalPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "stripPath": {
+ "name": "stripPath",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "domain_composeId_compose_composeId_fk": {
+ "name": "domain_composeId_compose_composeId_fk",
+ "tableFrom": "domain",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "domain_applicationId_application_applicationId_fk": {
+ "name": "domain_applicationId_application_applicationId_fk",
+ "tableFrom": "domain",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "domain_previewDeploymentId_preview_deployments_previewDeploymentId_fk": {
+ "name": "domain_previewDeploymentId_preview_deployments_previewDeploymentId_fk",
+ "tableFrom": "domain",
+ "tableTo": "preview_deployments",
+ "columnsFrom": [
+ "previewDeploymentId"
+ ],
+ "columnsTo": [
+ "previewDeploymentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.environment": {
+ "name": "environment",
+ "schema": "",
+ "columns": {
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "projectId": {
+ "name": "projectId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "environment_projectId_project_projectId_fk": {
+ "name": "environment_projectId_project_projectId_fk",
+ "tableFrom": "environment",
+ "tableTo": "project",
+ "columnsFrom": [
+ "projectId"
+ ],
+ "columnsTo": [
+ "projectId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.git_provider": {
+ "name": "git_provider",
+ "schema": "",
+ "columns": {
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "providerType": {
+ "name": "providerType",
+ "type": "gitProviderType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'github'"
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "userId": {
+ "name": "userId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "git_provider_organizationId_organization_id_fk": {
+ "name": "git_provider_organizationId_organization_id_fk",
+ "tableFrom": "git_provider",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "git_provider_userId_user_id_fk": {
+ "name": "git_provider_userId_user_id_fk",
+ "tableFrom": "git_provider",
+ "tableTo": "user",
+ "columnsFrom": [
+ "userId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.gitea": {
+ "name": "gitea",
+ "schema": "",
+ "columns": {
+ "giteaId": {
+ "name": "giteaId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "giteaUrl": {
+ "name": "giteaUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'https://gitea.com'"
+ },
+ "redirect_uri": {
+ "name": "redirect_uri",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "client_id": {
+ "name": "client_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "client_secret": {
+ "name": "client_secret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scopes": {
+ "name": "scopes",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'repo,repo:status,read:user,read:org'"
+ },
+ "last_authenticated_at": {
+ "name": "last_authenticated_at",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "gitea_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "gitea_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "gitea",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.github": {
+ "name": "github",
+ "schema": "",
+ "columns": {
+ "githubId": {
+ "name": "githubId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "githubAppName": {
+ "name": "githubAppName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubAppId": {
+ "name": "githubAppId",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubClientId": {
+ "name": "githubClientId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubClientSecret": {
+ "name": "githubClientSecret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubInstallationId": {
+ "name": "githubInstallationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubPrivateKey": {
+ "name": "githubPrivateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubWebhookSecret": {
+ "name": "githubWebhookSecret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "github_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "github_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "github",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.gitlab": {
+ "name": "gitlab",
+ "schema": "",
+ "columns": {
+ "gitlabId": {
+ "name": "gitlabId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "gitlabUrl": {
+ "name": "gitlabUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'https://gitlab.com'"
+ },
+ "application_id": {
+ "name": "application_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "redirect_uri": {
+ "name": "redirect_uri",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "secret": {
+ "name": "secret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "group_name": {
+ "name": "group_name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "gitlab_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "gitlab_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "gitlab",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mariadb": {
+ "name": "mariadb",
+ "schema": "",
+ "columns": {
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "databaseName": {
+ "name": "databaseName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "rootPassword": {
+ "name": "rootPassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mariadb_environmentId_environment_environmentId_fk": {
+ "name": "mariadb_environmentId_environment_environmentId_fk",
+ "tableFrom": "mariadb",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mariadb_serverId_server_serverId_fk": {
+ "name": "mariadb_serverId_server_serverId_fk",
+ "tableFrom": "mariadb",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "mariadb_appName_unique": {
+ "name": "mariadb_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mongo": {
+ "name": "mongo",
+ "schema": "",
+ "columns": {
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicaSets": {
+ "name": "replicaSets",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mongo_environmentId_environment_environmentId_fk": {
+ "name": "mongo_environmentId_environment_environmentId_fk",
+ "tableFrom": "mongo",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mongo_serverId_server_serverId_fk": {
+ "name": "mongo_serverId_server_serverId_fk",
+ "tableFrom": "mongo",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "mongo_appName_unique": {
+ "name": "mongo_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mount": {
+ "name": "mount",
+ "schema": "",
+ "columns": {
+ "mountId": {
+ "name": "mountId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "type": {
+ "name": "type",
+ "type": "mountType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "hostPath": {
+ "name": "hostPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "volumeName": {
+ "name": "volumeName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "filePath": {
+ "name": "filePath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "content": {
+ "name": "content",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serviceType": {
+ "name": "serviceType",
+ "type": "serviceType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'application'"
+ },
+ "mountPath": {
+ "name": "mountPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "redisId": {
+ "name": "redisId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mount_applicationId_application_applicationId_fk": {
+ "name": "mount_applicationId_application_applicationId_fk",
+ "tableFrom": "mount",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_postgresId_postgres_postgresId_fk": {
+ "name": "mount_postgresId_postgres_postgresId_fk",
+ "tableFrom": "mount",
+ "tableTo": "postgres",
+ "columnsFrom": [
+ "postgresId"
+ ],
+ "columnsTo": [
+ "postgresId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_mariadbId_mariadb_mariadbId_fk": {
+ "name": "mount_mariadbId_mariadb_mariadbId_fk",
+ "tableFrom": "mount",
+ "tableTo": "mariadb",
+ "columnsFrom": [
+ "mariadbId"
+ ],
+ "columnsTo": [
+ "mariadbId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_mongoId_mongo_mongoId_fk": {
+ "name": "mount_mongoId_mongo_mongoId_fk",
+ "tableFrom": "mount",
+ "tableTo": "mongo",
+ "columnsFrom": [
+ "mongoId"
+ ],
+ "columnsTo": [
+ "mongoId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_mysqlId_mysql_mysqlId_fk": {
+ "name": "mount_mysqlId_mysql_mysqlId_fk",
+ "tableFrom": "mount",
+ "tableTo": "mysql",
+ "columnsFrom": [
+ "mysqlId"
+ ],
+ "columnsTo": [
+ "mysqlId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_redisId_redis_redisId_fk": {
+ "name": "mount_redisId_redis_redisId_fk",
+ "tableFrom": "mount",
+ "tableTo": "redis",
+ "columnsFrom": [
+ "redisId"
+ ],
+ "columnsTo": [
+ "redisId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_composeId_compose_composeId_fk": {
+ "name": "mount_composeId_compose_composeId_fk",
+ "tableFrom": "mount",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mysql": {
+ "name": "mysql",
+ "schema": "",
+ "columns": {
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "databaseName": {
+ "name": "databaseName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "rootPassword": {
+ "name": "rootPassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mysql_environmentId_environment_environmentId_fk": {
+ "name": "mysql_environmentId_environment_environmentId_fk",
+ "tableFrom": "mysql",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mysql_serverId_server_serverId_fk": {
+ "name": "mysql_serverId_server_serverId_fk",
+ "tableFrom": "mysql",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "mysql_appName_unique": {
+ "name": "mysql_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.discord": {
+ "name": "discord",
+ "schema": "",
+ "columns": {
+ "discordId": {
+ "name": "discordId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "webhookUrl": {
+ "name": "webhookUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "decoration": {
+ "name": "decoration",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.email": {
+ "name": "email",
+ "schema": "",
+ "columns": {
+ "emailId": {
+ "name": "emailId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "smtpServer": {
+ "name": "smtpServer",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "smtpPort": {
+ "name": "smtpPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "fromAddress": {
+ "name": "fromAddress",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "toAddress": {
+ "name": "toAddress",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.gotify": {
+ "name": "gotify",
+ "schema": "",
+ "columns": {
+ "gotifyId": {
+ "name": "gotifyId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "serverUrl": {
+ "name": "serverUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appToken": {
+ "name": "appToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "priority": {
+ "name": "priority",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 5
+ },
+ "decoration": {
+ "name": "decoration",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.lark": {
+ "name": "lark",
+ "schema": "",
+ "columns": {
+ "larkId": {
+ "name": "larkId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "webhookUrl": {
+ "name": "webhookUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.notification": {
+ "name": "notification",
+ "schema": "",
+ "columns": {
+ "notificationId": {
+ "name": "notificationId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appDeploy": {
+ "name": "appDeploy",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "appBuildError": {
+ "name": "appBuildError",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "databaseBackup": {
+ "name": "databaseBackup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "dokployRestart": {
+ "name": "dokployRestart",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "dockerCleanup": {
+ "name": "dockerCleanup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "serverThreshold": {
+ "name": "serverThreshold",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "notificationType": {
+ "name": "notificationType",
+ "type": "notificationType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "slackId": {
+ "name": "slackId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "telegramId": {
+ "name": "telegramId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "discordId": {
+ "name": "discordId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "emailId": {
+ "name": "emailId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gotifyId": {
+ "name": "gotifyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ntfyId": {
+ "name": "ntfyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "larkId": {
+ "name": "larkId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "notification_slackId_slack_slackId_fk": {
+ "name": "notification_slackId_slack_slackId_fk",
+ "tableFrom": "notification",
+ "tableTo": "slack",
+ "columnsFrom": [
+ "slackId"
+ ],
+ "columnsTo": [
+ "slackId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_telegramId_telegram_telegramId_fk": {
+ "name": "notification_telegramId_telegram_telegramId_fk",
+ "tableFrom": "notification",
+ "tableTo": "telegram",
+ "columnsFrom": [
+ "telegramId"
+ ],
+ "columnsTo": [
+ "telegramId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_discordId_discord_discordId_fk": {
+ "name": "notification_discordId_discord_discordId_fk",
+ "tableFrom": "notification",
+ "tableTo": "discord",
+ "columnsFrom": [
+ "discordId"
+ ],
+ "columnsTo": [
+ "discordId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_emailId_email_emailId_fk": {
+ "name": "notification_emailId_email_emailId_fk",
+ "tableFrom": "notification",
+ "tableTo": "email",
+ "columnsFrom": [
+ "emailId"
+ ],
+ "columnsTo": [
+ "emailId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_gotifyId_gotify_gotifyId_fk": {
+ "name": "notification_gotifyId_gotify_gotifyId_fk",
+ "tableFrom": "notification",
+ "tableTo": "gotify",
+ "columnsFrom": [
+ "gotifyId"
+ ],
+ "columnsTo": [
+ "gotifyId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_ntfyId_ntfy_ntfyId_fk": {
+ "name": "notification_ntfyId_ntfy_ntfyId_fk",
+ "tableFrom": "notification",
+ "tableTo": "ntfy",
+ "columnsFrom": [
+ "ntfyId"
+ ],
+ "columnsTo": [
+ "ntfyId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_larkId_lark_larkId_fk": {
+ "name": "notification_larkId_lark_larkId_fk",
+ "tableFrom": "notification",
+ "tableTo": "lark",
+ "columnsFrom": [
+ "larkId"
+ ],
+ "columnsTo": [
+ "larkId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_organizationId_organization_id_fk": {
+ "name": "notification_organizationId_organization_id_fk",
+ "tableFrom": "notification",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ntfy": {
+ "name": "ntfy",
+ "schema": "",
+ "columns": {
+ "ntfyId": {
+ "name": "ntfyId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "serverUrl": {
+ "name": "serverUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "topic": {
+ "name": "topic",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "accessToken": {
+ "name": "accessToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "priority": {
+ "name": "priority",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 3
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.slack": {
+ "name": "slack",
+ "schema": "",
+ "columns": {
+ "slackId": {
+ "name": "slackId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "webhookUrl": {
+ "name": "webhookUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "channel": {
+ "name": "channel",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.telegram": {
+ "name": "telegram",
+ "schema": "",
+ "columns": {
+ "telegramId": {
+ "name": "telegramId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "botToken": {
+ "name": "botToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "chatId": {
+ "name": "chatId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "messageThreadId": {
+ "name": "messageThreadId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.port": {
+ "name": "port",
+ "schema": "",
+ "columns": {
+ "portId": {
+ "name": "portId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "publishedPort": {
+ "name": "publishedPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "publishMode": {
+ "name": "publishMode",
+ "type": "publishModeType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'host'"
+ },
+ "targetPort": {
+ "name": "targetPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "protocol": {
+ "name": "protocol",
+ "type": "protocolType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "port_applicationId_application_applicationId_fk": {
+ "name": "port_applicationId_application_applicationId_fk",
+ "tableFrom": "port",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.postgres": {
+ "name": "postgres",
+ "schema": "",
+ "columns": {
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseName": {
+ "name": "databaseName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "postgres_environmentId_environment_environmentId_fk": {
+ "name": "postgres_environmentId_environment_environmentId_fk",
+ "tableFrom": "postgres",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "postgres_serverId_server_serverId_fk": {
+ "name": "postgres_serverId_server_serverId_fk",
+ "tableFrom": "postgres",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "postgres_appName_unique": {
+ "name": "postgres_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.preview_deployments": {
+ "name": "preview_deployments",
+ "schema": "",
+ "columns": {
+ "previewDeploymentId": {
+ "name": "previewDeploymentId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "branch": {
+ "name": "branch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestId": {
+ "name": "pullRequestId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestNumber": {
+ "name": "pullRequestNumber",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestURL": {
+ "name": "pullRequestURL",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestTitle": {
+ "name": "pullRequestTitle",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestCommentId": {
+ "name": "pullRequestCommentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "previewStatus": {
+ "name": "previewStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "domainId": {
+ "name": "domainId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expiresAt": {
+ "name": "expiresAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "preview_deployments_applicationId_application_applicationId_fk": {
+ "name": "preview_deployments_applicationId_application_applicationId_fk",
+ "tableFrom": "preview_deployments",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "preview_deployments_domainId_domain_domainId_fk": {
+ "name": "preview_deployments_domainId_domain_domainId_fk",
+ "tableFrom": "preview_deployments",
+ "tableTo": "domain",
+ "columnsFrom": [
+ "domainId"
+ ],
+ "columnsTo": [
+ "domainId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "preview_deployments_appName_unique": {
+ "name": "preview_deployments_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.project": {
+ "name": "project",
+ "schema": "",
+ "columns": {
+ "projectId": {
+ "name": "projectId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "project_organizationId_organization_id_fk": {
+ "name": "project_organizationId_organization_id_fk",
+ "tableFrom": "project",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.redirect": {
+ "name": "redirect",
+ "schema": "",
+ "columns": {
+ "redirectId": {
+ "name": "redirectId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "regex": {
+ "name": "regex",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "replacement": {
+ "name": "replacement",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "permanent": {
+ "name": "permanent",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "uniqueConfigKey": {
+ "name": "uniqueConfigKey",
+ "type": "serial",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "redirect_applicationId_application_applicationId_fk": {
+ "name": "redirect_applicationId_application_applicationId_fk",
+ "tableFrom": "redirect",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.redis": {
+ "name": "redis",
+ "schema": "",
+ "columns": {
+ "redisId": {
+ "name": "redisId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "redis_environmentId_environment_environmentId_fk": {
+ "name": "redis_environmentId_environment_environmentId_fk",
+ "tableFrom": "redis",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "redis_serverId_server_serverId_fk": {
+ "name": "redis_serverId_server_serverId_fk",
+ "tableFrom": "redis",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "redis_appName_unique": {
+ "name": "redis_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.registry": {
+ "name": "registry",
+ "schema": "",
+ "columns": {
+ "registryId": {
+ "name": "registryId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "registryName": {
+ "name": "registryName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "imagePrefix": {
+ "name": "imagePrefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "registryUrl": {
+ "name": "registryUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "selfHosted": {
+ "name": "selfHosted",
+ "type": "RegistryType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'cloud'"
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "registry_organizationId_organization_id_fk": {
+ "name": "registry_organizationId_organization_id_fk",
+ "tableFrom": "registry",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.rollback": {
+ "name": "rollback",
+ "schema": "",
+ "columns": {
+ "rollbackId": {
+ "name": "rollbackId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "deploymentId": {
+ "name": "deploymentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "version": {
+ "name": "version",
+ "type": "serial",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "image": {
+ "name": "image",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "fullContext": {
+ "name": "fullContext",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "rollback_deploymentId_deployment_deploymentId_fk": {
+ "name": "rollback_deploymentId_deployment_deploymentId_fk",
+ "tableFrom": "rollback",
+ "tableTo": "deployment",
+ "columnsFrom": [
+ "deploymentId"
+ ],
+ "columnsTo": [
+ "deploymentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.schedule": {
+ "name": "schedule",
+ "schema": "",
+ "columns": {
+ "scheduleId": {
+ "name": "scheduleId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "cronExpression": {
+ "name": "cronExpression",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "shellType": {
+ "name": "shellType",
+ "type": "shellType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'bash'"
+ },
+ "scheduleType": {
+ "name": "scheduleType",
+ "type": "scheduleType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'application'"
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "script": {
+ "name": "script",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "userId": {
+ "name": "userId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "schedule_applicationId_application_applicationId_fk": {
+ "name": "schedule_applicationId_application_applicationId_fk",
+ "tableFrom": "schedule",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "schedule_composeId_compose_composeId_fk": {
+ "name": "schedule_composeId_compose_composeId_fk",
+ "tableFrom": "schedule",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "schedule_serverId_server_serverId_fk": {
+ "name": "schedule_serverId_server_serverId_fk",
+ "tableFrom": "schedule",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "schedule_userId_user_id_fk": {
+ "name": "schedule_userId_user_id_fk",
+ "tableFrom": "schedule",
+ "tableTo": "user",
+ "columnsFrom": [
+ "userId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.security": {
+ "name": "security",
+ "schema": "",
+ "columns": {
+ "securityId": {
+ "name": "securityId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "security_applicationId_application_applicationId_fk": {
+ "name": "security_applicationId_application_applicationId_fk",
+ "tableFrom": "security",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "security_username_applicationId_unique": {
+ "name": "security_username_applicationId_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "username",
+ "applicationId"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.server": {
+ "name": "server",
+ "schema": "",
+ "columns": {
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ipAddress": {
+ "name": "ipAddress",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "port": {
+ "name": "port",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'root'"
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "enableDockerCleanup": {
+ "name": "enableDockerCleanup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverStatus": {
+ "name": "serverStatus",
+ "type": "serverStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'active'"
+ },
+ "serverType": {
+ "name": "serverType",
+ "type": "serverType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'deploy'"
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "sshKeyId": {
+ "name": "sshKeyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "metricsConfig": {
+ "name": "metricsConfig",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'{\"server\":{\"type\":\"Remote\",\"refreshRate\":60,\"port\":4500,\"token\":\"\",\"urlCallback\":\"\",\"cronJob\":\"\",\"retentionDays\":2,\"thresholds\":{\"cpu\":0,\"memory\":0}},\"containers\":{\"refreshRate\":60,\"services\":{\"include\":[],\"exclude\":[]}}}'::jsonb"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "server_organizationId_organization_id_fk": {
+ "name": "server_organizationId_organization_id_fk",
+ "tableFrom": "server",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "server_sshKeyId_ssh-key_sshKeyId_fk": {
+ "name": "server_sshKeyId_ssh-key_sshKeyId_fk",
+ "tableFrom": "server",
+ "tableTo": "ssh-key",
+ "columnsFrom": [
+ "sshKeyId"
+ ],
+ "columnsTo": [
+ "sshKeyId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.session_temp": {
+ "name": "session_temp",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "token": {
+ "name": "token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "ip_address": {
+ "name": "ip_address",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_agent": {
+ "name": "user_agent",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "impersonated_by": {
+ "name": "impersonated_by",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "active_organization_id": {
+ "name": "active_organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "session_temp_user_id_user_id_fk": {
+ "name": "session_temp_user_id_user_id_fk",
+ "tableFrom": "session_temp",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "session_temp_token_unique": {
+ "name": "session_temp_token_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "token"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ssh-key": {
+ "name": "ssh-key",
+ "schema": "",
+ "columns": {
+ "sshKeyId": {
+ "name": "sshKeyId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "privateKey": {
+ "name": "privateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "publicKey": {
+ "name": "publicKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "lastUsedAt": {
+ "name": "lastUsedAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "ssh-key_organizationId_organization_id_fk": {
+ "name": "ssh-key_organizationId_organization_id_fk",
+ "tableFrom": "ssh-key",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.user": {
+ "name": "user",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "isRegistered": {
+ "name": "isRegistered",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "expirationDate": {
+ "name": "expirationDate",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "two_factor_enabled": {
+ "name": "two_factor_enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email_verified": {
+ "name": "email_verified",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "image": {
+ "name": "image",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "banned": {
+ "name": "banned",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ban_reason": {
+ "name": "ban_reason",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ban_expires": {
+ "name": "ban_expires",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverIp": {
+ "name": "serverIp",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "certificateType": {
+ "name": "certificateType",
+ "type": "certificateType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'none'"
+ },
+ "https": {
+ "name": "https",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "host": {
+ "name": "host",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "letsEncryptEmail": {
+ "name": "letsEncryptEmail",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "sshPrivateKey": {
+ "name": "sshPrivateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enableDockerCleanup": {
+ "name": "enableDockerCleanup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "logCleanupCron": {
+ "name": "logCleanupCron",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'0 0 * * *'"
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'user'"
+ },
+ "enablePaidFeatures": {
+ "name": "enablePaidFeatures",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "allowImpersonation": {
+ "name": "allowImpersonation",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "metricsConfig": {
+ "name": "metricsConfig",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'{\"server\":{\"type\":\"Dokploy\",\"refreshRate\":60,\"port\":4500,\"token\":\"\",\"retentionDays\":2,\"cronJob\":\"\",\"urlCallback\":\"\",\"thresholds\":{\"cpu\":0,\"memory\":0}},\"containers\":{\"refreshRate\":60,\"services\":{\"include\":[],\"exclude\":[]}}}'::jsonb"
+ },
+ "cleanupCacheApplications": {
+ "name": "cleanupCacheApplications",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "cleanupCacheOnPreviews": {
+ "name": "cleanupCacheOnPreviews",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "cleanupCacheOnCompose": {
+ "name": "cleanupCacheOnCompose",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "stripeCustomerId": {
+ "name": "stripeCustomerId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stripeSubscriptionId": {
+ "name": "stripeSubscriptionId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serversQuantity": {
+ "name": "serversQuantity",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 0
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "user_email_unique": {
+ "name": "user_email_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "email"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.volume_backup": {
+ "name": "volume_backup",
+ "schema": "",
+ "columns": {
+ "volumeBackupId": {
+ "name": "volumeBackupId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "volumeName": {
+ "name": "volumeName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "prefix": {
+ "name": "prefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceType": {
+ "name": "serviceType",
+ "type": "serviceType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'application'"
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "turnOff": {
+ "name": "turnOff",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "cronExpression": {
+ "name": "cronExpression",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "keepLatestCount": {
+ "name": "keepLatestCount",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "redisId": {
+ "name": "redisId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "destinationId": {
+ "name": "destinationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "volume_backup_applicationId_application_applicationId_fk": {
+ "name": "volume_backup_applicationId_application_applicationId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_postgresId_postgres_postgresId_fk": {
+ "name": "volume_backup_postgresId_postgres_postgresId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "postgres",
+ "columnsFrom": [
+ "postgresId"
+ ],
+ "columnsTo": [
+ "postgresId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_mariadbId_mariadb_mariadbId_fk": {
+ "name": "volume_backup_mariadbId_mariadb_mariadbId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "mariadb",
+ "columnsFrom": [
+ "mariadbId"
+ ],
+ "columnsTo": [
+ "mariadbId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_mongoId_mongo_mongoId_fk": {
+ "name": "volume_backup_mongoId_mongo_mongoId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "mongo",
+ "columnsFrom": [
+ "mongoId"
+ ],
+ "columnsTo": [
+ "mongoId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_mysqlId_mysql_mysqlId_fk": {
+ "name": "volume_backup_mysqlId_mysql_mysqlId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "mysql",
+ "columnsFrom": [
+ "mysqlId"
+ ],
+ "columnsTo": [
+ "mysqlId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_redisId_redis_redisId_fk": {
+ "name": "volume_backup_redisId_redis_redisId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "redis",
+ "columnsFrom": [
+ "redisId"
+ ],
+ "columnsTo": [
+ "redisId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_composeId_compose_composeId_fk": {
+ "name": "volume_backup_composeId_compose_composeId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_destinationId_destination_destinationId_fk": {
+ "name": "volume_backup_destinationId_destination_destinationId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "destination",
+ "columnsFrom": [
+ "destinationId"
+ ],
+ "columnsTo": [
+ "destinationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ }
+ },
+ "enums": {
+ "public.buildType": {
+ "name": "buildType",
+ "schema": "public",
+ "values": [
+ "dockerfile",
+ "heroku_buildpacks",
+ "paketo_buildpacks",
+ "nixpacks",
+ "static",
+ "railpack"
+ ]
+ },
+ "public.sourceType": {
+ "name": "sourceType",
+ "schema": "public",
+ "values": [
+ "docker",
+ "git",
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "drop"
+ ]
+ },
+ "public.backupType": {
+ "name": "backupType",
+ "schema": "public",
+ "values": [
+ "database",
+ "compose"
+ ]
+ },
+ "public.databaseType": {
+ "name": "databaseType",
+ "schema": "public",
+ "values": [
+ "postgres",
+ "mariadb",
+ "mysql",
+ "mongo",
+ "web-server"
+ ]
+ },
+ "public.composeType": {
+ "name": "composeType",
+ "schema": "public",
+ "values": [
+ "docker-compose",
+ "stack"
+ ]
+ },
+ "public.sourceTypeCompose": {
+ "name": "sourceTypeCompose",
+ "schema": "public",
+ "values": [
+ "git",
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "raw"
+ ]
+ },
+ "public.deploymentStatus": {
+ "name": "deploymentStatus",
+ "schema": "public",
+ "values": [
+ "running",
+ "done",
+ "error",
+ "cancelled"
+ ]
+ },
+ "public.domainType": {
+ "name": "domainType",
+ "schema": "public",
+ "values": [
+ "compose",
+ "application",
+ "preview"
+ ]
+ },
+ "public.gitProviderType": {
+ "name": "gitProviderType",
+ "schema": "public",
+ "values": [
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea"
+ ]
+ },
+ "public.mountType": {
+ "name": "mountType",
+ "schema": "public",
+ "values": [
+ "bind",
+ "volume",
+ "file"
+ ]
+ },
+ "public.serviceType": {
+ "name": "serviceType",
+ "schema": "public",
+ "values": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ]
+ },
+ "public.notificationType": {
+ "name": "notificationType",
+ "schema": "public",
+ "values": [
+ "slack",
+ "telegram",
+ "discord",
+ "email",
+ "gotify",
+ "ntfy",
+ "lark"
+ ]
+ },
+ "public.protocolType": {
+ "name": "protocolType",
+ "schema": "public",
+ "values": [
+ "tcp",
+ "udp"
+ ]
+ },
+ "public.publishModeType": {
+ "name": "publishModeType",
+ "schema": "public",
+ "values": [
+ "ingress",
+ "host"
+ ]
+ },
+ "public.RegistryType": {
+ "name": "RegistryType",
+ "schema": "public",
+ "values": [
+ "selfHosted",
+ "cloud"
+ ]
+ },
+ "public.scheduleType": {
+ "name": "scheduleType",
+ "schema": "public",
+ "values": [
+ "application",
+ "compose",
+ "server",
+ "dokploy-server"
+ ]
+ },
+ "public.shellType": {
+ "name": "shellType",
+ "schema": "public",
+ "values": [
+ "bash",
+ "sh"
+ ]
+ },
+ "public.serverStatus": {
+ "name": "serverStatus",
+ "schema": "public",
+ "values": [
+ "active",
+ "inactive"
+ ]
+ },
+ "public.serverType": {
+ "name": "serverType",
+ "schema": "public",
+ "values": [
+ "deploy",
+ "build"
+ ]
+ },
+ "public.applicationStatus": {
+ "name": "applicationStatus",
+ "schema": "public",
+ "values": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "public.certificateType": {
+ "name": "certificateType",
+ "schema": "public",
+ "values": [
+ "letsencrypt",
+ "none",
+ "custom"
+ ]
+ },
+ "public.triggerType": {
+ "name": "triggerType",
+ "schema": "public",
+ "values": [
+ "push",
+ "tag"
+ ]
+ }
+ },
+ "schemas": {},
+ "sequences": {},
+ "roles": {},
+ "policies": {},
+ "views": {},
+ "_meta": {
+ "columns": {},
+ "schemas": {},
+ "tables": {}
+ }
+}
\ No newline at end of file
diff --git a/apps/dokploy/drizzle/meta/_journal.json b/apps/dokploy/drizzle/meta/_journal.json
index 323562fd1..8bf22428a 100644
--- a/apps/dokploy/drizzle/meta/_journal.json
+++ b/apps/dokploy/drizzle/meta/_journal.json
@@ -855,6 +855,13 @@
"when": 1763755037033,
"tag": "0121_rainy_cargill",
"breakpoints": true
+ },
+ {
+ "idx": 122,
+ "version": "7",
+ "when": 1764479387555,
+ "tag": "0122_absent_frightful_four",
+ "breakpoints": true
}
]
}
\ No newline at end of file
From 035f8835cf9483b8b6940073b44516acd2f34181 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sat, 29 Nov 2025 23:25:01 -0600
Subject: [PATCH 25/74] fix: use unified server ID for deployment commands in
rebuildApplication
- Updated the rebuildApplication function to utilize a consistent server ID by incorporating buildServerId where available.
- Refactored deployment command execution to ensure compatibility with the new server ID logic, enhancing deployment reliability.
---
packages/server/src/services/application.ts | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/packages/server/src/services/application.ts b/packages/server/src/services/application.ts
index 3bab17488..c9c0bb765 100644
--- a/packages/server/src/services/application.ts
+++ b/packages/server/src/services/application.ts
@@ -287,6 +287,7 @@ export const rebuildApplication = async ({
descriptionLog: string;
}) => {
const application = await findApplicationById(applicationId);
+ const serverId = application.buildServerId || application.serverId;
const buildLink = `${await getDokployUrl()}/dashboard/project/${application.environment.projectId}/environment/${application.environmentId}/services/application/${application.applicationId}?tab=deployments`;
const deployment = await createDeployment({
@@ -300,8 +301,8 @@ export const rebuildApplication = async ({
// Check case for docker only
command += getBuildCommand(application);
const commandWithLog = `(${command}) >> ${deployment.logPath} 2>&1`;
- if (application.serverId) {
- await execAsyncRemote(application.serverId, commandWithLog);
+ if (serverId) {
+ await execAsyncRemote(serverId, commandWithLog);
} else {
await execAsync(commandWithLog);
}
@@ -340,8 +341,8 @@ export const rebuildApplication = async ({
}
command += `echo "\nError occurred ❌, check the logs for details." >> ${deployment.logPath};`;
- if (application.serverId) {
- await execAsyncRemote(application.serverId, command);
+ if (serverId) {
+ await execAsyncRemote(serverId, command);
} else {
await execAsync(command);
}
From aab982b431991c2d15200ebbca49277a4d536a02 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sun, 30 Nov 2025 00:30:40 -0600
Subject: [PATCH 26/74] feat: add OpenAPI generation script and workflow
- Introduced a new script to generate OpenAPI specifications for the Dokploy API.
- Added a GitHub Actions workflow to automate the generation and syncing of OpenAPI documentation upon changes in the API routers.
- Updated package.json files to include new commands for generating OpenAPI specifications.
- Added openapi.json to .gitignore to prevent accidental commits of generated files.
---
.github/workflows/sync-openapi-docs.yml | 93 ++++++++++++++++
.gitignore | 2 +
apps/dokploy/package.json | 3 +-
apps/dokploy/scripts/generate-openapi.ts | 132 +++++++++++++++++++++++
package.json | 3 +-
5 files changed, 231 insertions(+), 2 deletions(-)
create mode 100644 .github/workflows/sync-openapi-docs.yml
create mode 100644 apps/dokploy/scripts/generate-openapi.ts
diff --git a/.github/workflows/sync-openapi-docs.yml b/.github/workflows/sync-openapi-docs.yml
new file mode 100644
index 000000000..24619619c
--- /dev/null
+++ b/.github/workflows/sync-openapi-docs.yml
@@ -0,0 +1,93 @@
+name: Generate and Sync OpenAPI
+
+on:
+ # Se ejecuta cuando hay cambios en los routers de la API
+ push:
+ branches:
+ - canary
+ paths:
+ - 'apps/dokploy/server/api/routers/**'
+ - 'packages/server/src/services/**'
+ - 'packages/server/src/db/schema/**'
+
+ # Permite ejecución manual
+ workflow_dispatch:
+
+jobs:
+ generate-and-commit:
+ name: Generate OpenAPI and commit to Dokploy repo
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout Dokploy repository
+ uses: actions/checkout@v4
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Setup Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: '20'
+
+ - name: Setup pnpm
+ uses: pnpm/action-setup@v2
+ with:
+ version: 8
+
+ - name: Install dependencies
+ run: pnpm install --frozen-lockfile
+
+ - name: Generate OpenAPI specification
+ run: pnpm generate:openapi
+
+ - name: Commit OpenAPI spec
+ run: |
+ git config user.name "Dokploy Bot"
+ git config user.email "bot@dokploy.com"
+
+ # Verifica si el archivo existe
+ if [ ! -f openapi.json ]; then
+ echo "❌ openapi.json not found"
+ exit 1
+ fi
+
+ # Usa -f para forzar el add de archivos en .gitignore
+ git add -f openapi.json
+
+ # Verifica si hay cambios para commitear
+ if git diff --cached --quiet; then
+ echo "📝 No changes detected in OpenAPI spec"
+ echo "HAS_CHANGES=false" >> $GITHUB_ENV
+ exit 0
+ fi
+
+ echo "HAS_CHANGES=true" >> $GITHUB_ENV
+
+ # Commit los cambios
+ git commit -m "chore: update OpenAPI specification [skip ci]
+
+Generated from commit: ${{ github.sha }}
+Triggered by: ${{ github.event_name }}"
+
+ git push
+
+ echo "✅ OpenAPI spec committed successfully"
+
+ - name: Trigger website sync
+ if: env.HAS_CHANGES == 'true'
+ uses: peter-evans/repository-dispatch@v2
+ with:
+ token: ${{ secrets.DOCS_SYNC_TOKEN }}
+ repository: dokploy/website # Cambia por tu repo de docs
+ event-type: openapi-updated
+ client-payload: '{"commit": "${{ github.sha }}", "timestamp": "${{ github.event.head_commit.timestamp }}"}'
+
+ - name: Create summary
+ run: |
+ echo "## 📊 OpenAPI Generation Summary" >> $GITHUB_STEP_SUMMARY
+ echo "" >> $GITHUB_STEP_SUMMARY
+ echo "- **Repository:** \`${{ github.repository }}\`" >> $GITHUB_STEP_SUMMARY
+ echo "- **Commit:** \`${{ github.sha }}\`" >> $GITHUB_STEP_SUMMARY
+ echo "- **Trigger:** \`${{ github.event_name }}\`" >> $GITHUB_STEP_SUMMARY
+ echo "- **Changes:** \`${{ env.HAS_CHANGES }}\`" >> $GITHUB_STEP_SUMMARY
+ echo "- **Status:** ✅ Success" >> $GITHUB_STEP_SUMMARY
+
diff --git a/.gitignore b/.gitignore
index 5e6e4eb3c..d531bab01 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,6 +13,8 @@ node_modules
.env.test.local
.env.production.local
+openapi.json
+
# Testing
coverage
diff --git a/apps/dokploy/package.json b/apps/dokploy/package.json
index 1301fe91b..800e59b35 100644
--- a/apps/dokploy/package.json
+++ b/apps/dokploy/package.json
@@ -34,7 +34,8 @@
"docker:build:canary": "./docker/build.sh canary",
"docker:push:canary": "./docker/push.sh canary",
"version": "echo $(node -p \"require('./package.json').version\")",
- "test": "vitest --config __test__/vitest.config.ts"
+ "test": "vitest --config __test__/vitest.config.ts",
+ "generate:openapi": "tsx -r dotenv/config scripts/generate-openapi.ts"
},
"dependencies": {
"@ai-sdk/anthropic": "^2.0.5",
diff --git a/apps/dokploy/scripts/generate-openapi.ts b/apps/dokploy/scripts/generate-openapi.ts
new file mode 100644
index 000000000..16f826474
--- /dev/null
+++ b/apps/dokploy/scripts/generate-openapi.ts
@@ -0,0 +1,132 @@
+#!/usr/bin/env tsx
+
+/**
+ * Script to generate OpenAPI specification locally
+ * This runs in CI/CD to generate the openapi.json file
+ * which can then be consumed by the documentation website
+ */
+
+import { writeFileSync } from "node:fs";
+import { dirname, resolve } from "node:path";
+import { fileURLToPath } from "node:url";
+import { generateOpenApiDocument } from "@dokploy/trpc-openapi";
+import { appRouter } from "../server/api/root";
+
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = dirname(__filename);
+
+async function generateOpenAPI() {
+ try {
+ console.log("🔄 Generating OpenAPI specification...");
+
+ const openApiDocument = generateOpenApiDocument(appRouter, {
+ title: "Dokploy API",
+ version: "1.0.0",
+ baseUrl: "https://your-dokploy-instance.com/api",
+ docsUrl: "https://docs.dokploy.com/api",
+ tags: [
+ "admin",
+ "docker",
+ "compose",
+ "registry",
+ "cluster",
+ "user",
+ "domain",
+ "destination",
+ "backup",
+ "deployment",
+ "mounts",
+ "certificates",
+ "settings",
+ "security",
+ "redirects",
+ "port",
+ "project",
+ "application",
+ "mysql",
+ "postgres",
+ "redis",
+ "mongo",
+ "mariadb",
+ "sshRouter",
+ "gitProvider",
+ "bitbucket",
+ "github",
+ "gitlab",
+ "gitea",
+ "server",
+ "swarm",
+ "ai",
+ "organization",
+ "schedule",
+ "rollback",
+ "volumeBackups",
+ "environment",
+ ],
+ });
+
+ // Enhance metadata
+ openApiDocument.info = {
+ title: "Dokploy API",
+ description:
+ "Complete API documentation for Dokploy - Deploy applications, manage databases, and orchestrate your infrastructure. This API allows you to programmatically manage all aspects of your Dokploy instance.",
+ version: "1.0.0",
+ contact: {
+ name: "Dokploy Team",
+ url: "https://dokploy.com",
+ },
+ license: {
+ name: "Apache 2.0",
+ url: "https://github.com/dokploy/dokploy/blob/canary/LICENSE",
+ },
+ };
+
+ // Add security schemes
+ openApiDocument.components = {
+ ...openApiDocument.components,
+ securitySchemes: {
+ apiKey: {
+ type: "apiKey",
+ in: "header",
+ name: "x-api-key",
+ description:
+ "API key authentication. Generate an API key from your Dokploy dashboard under Settings > API Keys.",
+ },
+ },
+ };
+
+ // Apply global security
+ openApiDocument.security = [
+ {
+ apiKey: [],
+ },
+ ];
+
+ // Add external docs
+ openApiDocument.externalDocs = {
+ description: "Full documentation",
+ url: "https://docs.dokploy.com",
+ };
+
+ // Write to root of repo
+ const outputPath = resolve(__dirname, "../../../openapi.json");
+ writeFileSync(
+ outputPath,
+ JSON.stringify(openApiDocument, null, 2),
+ "utf-8",
+ );
+
+ console.log("✅ OpenAPI specification generated successfully!");
+ console.log(`📄 Output: ${outputPath}`);
+ console.log(
+ `📊 Endpoints: ${Object.keys(openApiDocument.paths || {}).length}`,
+ );
+ } catch (error) {
+ console.error("❌ Error generating OpenAPI specification:", error);
+ process.exit(1);
+ } finally {
+ process.exit(0);
+ }
+}
+
+generateOpenAPI();
diff --git a/package.json b/package.json
index 684e40405..4ce1089eb 100644
--- a/package.json
+++ b/package.json
@@ -20,7 +20,8 @@
"build": "pnpm -r run build",
"format-and-lint": "biome check .",
"check": "biome check --write --no-errors-on-unmatched --files-ignore-unknown=true",
- "format-and-lint:fix": "biome check . --write"
+ "format-and-lint:fix": "biome check . --write",
+ "generate:openapi": "pnpm --filter=dokploy run generate:openapi"
},
"devDependencies": {
"@biomejs/biome": "2.1.1",
From 67643fe08831eba277a5659667b669ee6b64c1dd Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sun, 30 Nov 2025 00:31:07 -0600
Subject: [PATCH 27/74] chore: update GitHub Actions workflow branch for
OpenAPI documentation sync
- Changed the branch trigger for the OpenAPI documentation sync workflow from 'canary' to 'feat/sync-open-api-website-docs' to align with the new feature branch naming convention.
---
.github/workflows/sync-openapi-docs.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/sync-openapi-docs.yml b/.github/workflows/sync-openapi-docs.yml
index 24619619c..4856ad9e5 100644
--- a/.github/workflows/sync-openapi-docs.yml
+++ b/.github/workflows/sync-openapi-docs.yml
@@ -4,7 +4,7 @@ on:
# Se ejecuta cuando hay cambios en los routers de la API
push:
branches:
- - canary
+ - feat/sync-open-api-website-docs
paths:
- 'apps/dokploy/server/api/routers/**'
- 'packages/server/src/services/**'
From d8e521e4dcd278c8406819d90a9f59195d72d3ba Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sun, 30 Nov 2025 00:31:50 -0600
Subject: [PATCH 28/74] chore: comment out paths in OpenAPI documentation sync
workflow
- Commented out the paths section in the GitHub Actions workflow for syncing OpenAPI documentation to allow for more flexible triggering without specific path constraints.
---
.github/workflows/sync-openapi-docs.yml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/sync-openapi-docs.yml b/.github/workflows/sync-openapi-docs.yml
index 4856ad9e5..d52d85314 100644
--- a/.github/workflows/sync-openapi-docs.yml
+++ b/.github/workflows/sync-openapi-docs.yml
@@ -5,10 +5,10 @@ on:
push:
branches:
- feat/sync-open-api-website-docs
- paths:
- - 'apps/dokploy/server/api/routers/**'
- - 'packages/server/src/services/**'
- - 'packages/server/src/db/schema/**'
+ # paths:
+ # - 'apps/dokploy/server/api/routers/**'
+ # - 'packages/server/src/services/**'
+ # - 'packages/server/src/db/schema/**'
# Permite ejecución manual
workflow_dispatch:
From ded16f39af801d270a31715c077015466059ccd1 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sun, 30 Nov 2025 00:36:16 -0600
Subject: [PATCH 29/74] chore: remove unnecessary whitespace in OpenAPI
documentation sync workflow
- Eliminated an empty line in the GitHub Actions workflow file for syncing OpenAPI documentation to improve readability and maintain consistency.
---
.github/workflows/sync-openapi-docs.yml | 1 -
1 file changed, 1 deletion(-)
diff --git a/.github/workflows/sync-openapi-docs.yml b/.github/workflows/sync-openapi-docs.yml
index d52d85314..107799faa 100644
--- a/.github/workflows/sync-openapi-docs.yml
+++ b/.github/workflows/sync-openapi-docs.yml
@@ -9,7 +9,6 @@ on:
# - 'apps/dokploy/server/api/routers/**'
# - 'packages/server/src/services/**'
# - 'packages/server/src/db/schema/**'
-
# Permite ejecución manual
workflow_dispatch:
From 96e7b39e3c4b8e94f2402e072160b1167c0c5497 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sun, 30 Nov 2025 00:38:44 -0600
Subject: [PATCH 30/74] chore: trigger OpenAPI sync workflow
From 7d9806a050ce915f78f8adb55c3c5f9202d0d125 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sun, 30 Nov 2025 00:42:23 -0600
Subject: [PATCH 31/74] chore: improve commit message formatting in OpenAPI
sync workflow
- Updated the GitHub Actions workflow to format the commit message for OpenAPI specification updates using multiple `-m` flags for better readability and clarity.
- Added `continue-on-error: true` to the repository dispatch step to ensure the workflow proceeds even if the dispatch fails.
---
.github/workflows/sync-openapi-docs.yml | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/sync-openapi-docs.yml b/.github/workflows/sync-openapi-docs.yml
index 107799faa..1d9ab063c 100644
--- a/.github/workflows/sync-openapi-docs.yml
+++ b/.github/workflows/sync-openapi-docs.yml
@@ -62,10 +62,9 @@ jobs:
echo "HAS_CHANGES=true" >> $GITHUB_ENV
# Commit los cambios
- git commit -m "chore: update OpenAPI specification [skip ci]
-
-Generated from commit: ${{ github.sha }}
-Triggered by: ${{ github.event_name }}"
+ git commit -m "chore: update OpenAPI specification [skip ci]" \
+ -m "Generated from commit: ${{ github.sha }}" \
+ -m "Triggered by: ${{ github.event_name }}"
git push
@@ -76,9 +75,10 @@ Triggered by: ${{ github.event_name }}"
uses: peter-evans/repository-dispatch@v2
with:
token: ${{ secrets.DOCS_SYNC_TOKEN }}
- repository: dokploy/website # Cambia por tu repo de docs
+ repository: dokploy/website
event-type: openapi-updated
client-payload: '{"commit": "${{ github.sha }}", "timestamp": "${{ github.event.head_commit.timestamp }}"}'
+ continue-on-error: true
- name: Create summary
run: |
From c0dec0ed20b3c18839ffa02e4186d1ebf5008d41 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sun, 30 Nov 2025 00:44:25 -0600
Subject: [PATCH 32/74] chore: update Node.js and pnpm setup in OpenAPI sync
workflow
- Upgraded the pnpm action to version 4 for improved performance.
- Specified Node.js version to 20.16.0 and enabled caching for pnpm to optimize dependency installation.
---
.github/workflows/sync-openapi-docs.yml | 13 ++++---------
1 file changed, 4 insertions(+), 9 deletions(-)
diff --git a/.github/workflows/sync-openapi-docs.yml b/.github/workflows/sync-openapi-docs.yml
index 1d9ab063c..fc421c5bc 100644
--- a/.github/workflows/sync-openapi-docs.yml
+++ b/.github/workflows/sync-openapi-docs.yml
@@ -21,16 +21,11 @@ jobs:
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
-
- - name: Setup Node.js
- uses: actions/setup-node@v4
+ - uses: pnpm/action-setup@v4
+ - uses: actions/setup-node@v4
with:
- node-version: '20'
-
- - name: Setup pnpm
- uses: pnpm/action-setup@v2
- with:
- version: 8
+ node-version: 20.16.0
+ cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
From 5c630e7ad77f005fea879b5f2455147d97d2d7f4 Mon Sep 17 00:00:00 2001
From: Dokploy Bot
Date: Sun, 30 Nov 2025 06:45:19 +0000
Subject: [PATCH 33/74] chore: update OpenAPI specification [skip ci]
Generated from commit: c0dec0ed20b3c18839ffa02e4186d1ebf5008d41
Triggered by: push
---
openapi.json | 21555 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 21555 insertions(+)
create mode 100644 openapi.json
diff --git a/openapi.json b/openapi.json
new file mode 100644
index 000000000..399e4a13a
--- /dev/null
+++ b/openapi.json
@@ -0,0 +1,21555 @@
+{
+ "openapi": "3.0.3",
+ "info": {
+ "title": "Dokploy API",
+ "description": "Complete API documentation for Dokploy - Deploy applications, manage databases, and orchestrate your infrastructure. This API allows you to programmatically manage all aspects of your Dokploy instance.",
+ "version": "1.0.0",
+ "contact": {
+ "name": "Dokploy Team",
+ "url": "https://dokploy.com"
+ },
+ "license": {
+ "name": "Apache 2.0",
+ "url": "https://github.com/dokploy/dokploy/blob/canary/LICENSE"
+ }
+ },
+ "servers": [
+ {
+ "url": "https://your-dokploy-instance.com/api"
+ }
+ ],
+ "paths": {
+ "/admin.setupMonitoring": {
+ "post": {
+ "operationId": "admin-setupMonitoring",
+ "tags": [
+ "admin"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "metricsConfig": {
+ "type": "object",
+ "properties": {
+ "server": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number",
+ "minimum": 2
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1
+ },
+ "token": {
+ "type": "string"
+ },
+ "urlCallback": {
+ "type": "string",
+ "format": "uri"
+ },
+ "retentionDays": {
+ "type": "number",
+ "minimum": 1
+ },
+ "cronJob": {
+ "type": "string",
+ "minLength": 1
+ },
+ "thresholds": {
+ "type": "object",
+ "properties": {
+ "cpu": {
+ "type": "number",
+ "minimum": 0
+ },
+ "memory": {
+ "type": "number",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "cpu",
+ "memory"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "refreshRate",
+ "port",
+ "token",
+ "urlCallback",
+ "retentionDays",
+ "cronJob",
+ "thresholds"
+ ],
+ "additionalProperties": false
+ },
+ "containers": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number",
+ "minimum": 2
+ },
+ "services": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "refreshRate",
+ "services"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "server",
+ "containers"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "metricsConfig"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getContainers": {
+ "get": {
+ "operationId": "docker-getContainers",
+ "tags": [
+ "docker"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.restartContainer": {
+ "post": {
+ "operationId": "docker-restartContainer",
+ "tags": [
+ "docker"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "containerId": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ "required": [
+ "containerId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getConfig": {
+ "get": {
+ "operationId": "docker-getConfig",
+ "tags": [
+ "docker"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "containerId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getContainersByAppNameMatch": {
+ "get": {
+ "operationId": "docker-getContainersByAppNameMatch",
+ "tags": [
+ "docker"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appType",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "anyOf": [
+ {
+ "type": "string",
+ "enum": [
+ "stack"
+ ]
+ },
+ {
+ "type": "string",
+ "enum": [
+ "docker-compose"
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getContainersByAppLabel": {
+ "get": {
+ "operationId": "docker-getContainersByAppLabel",
+ "tags": [
+ "docker"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "type",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "enum": [
+ "standalone",
+ "swarm"
+ ]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getStackContainersByAppName": {
+ "get": {
+ "operationId": "docker-getStackContainersByAppName",
+ "tags": [
+ "docker"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getServiceContainersByAppName": {
+ "get": {
+ "operationId": "docker-getServiceContainersByAppName",
+ "tags": [
+ "docker"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.create": {
+ "post": {
+ "operationId": "project-create",
+ "tags": [
+ "project"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.one": {
+ "get": {
+ "operationId": "project-one",
+ "tags": [
+ "project"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.all": {
+ "get": {
+ "operationId": "project-all",
+ "tags": [
+ "project"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.remove": {
+ "post": {
+ "operationId": "project-remove",
+ "tags": [
+ "project"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "projectId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "projectId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.update": {
+ "post": {
+ "operationId": "project-update",
+ "tags": [
+ "project"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "projectId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "organizationId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "projectId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.duplicate": {
+ "post": {
+ "operationId": "project-duplicate",
+ "tags": [
+ "project"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "sourceEnvironmentId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "includeServices": {
+ "type": "boolean",
+ "default": true
+ },
+ "selectedServices": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mariadb",
+ "mongo",
+ "mysql",
+ "redis",
+ "compose"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "duplicateInSameProject": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ "required": [
+ "sourceEnvironmentId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.create": {
+ "post": {
+ "operationId": "application-create",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "environmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.one": {
+ "get": {
+ "operationId": "application-one",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.reload": {
+ "post": {
+ "operationId": "application-reload",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appName": {
+ "type": "string"
+ },
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "appName",
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.delete": {
+ "post": {
+ "operationId": "application-delete",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.stop": {
+ "post": {
+ "operationId": "application-stop",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.start": {
+ "post": {
+ "operationId": "application-start",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.redeploy": {
+ "post": {
+ "operationId": "application-redeploy",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveEnvironment": {
+ "post": {
+ "operationId": "application-saveEnvironment",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildArgs": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildSecrets": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveBuildType": {
+ "post": {
+ "operationId": "application-saveBuildType",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "buildType": {
+ "type": "string",
+ "enum": [
+ "dockerfile",
+ "heroku_buildpacks",
+ "paketo_buildpacks",
+ "nixpacks",
+ "static",
+ "railpack"
+ ]
+ },
+ "dockerfile": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerContextPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerBuildStage": {
+ "type": "string",
+ "nullable": true
+ },
+ "herokuVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "railpackVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "publishDirectory": {
+ "type": "string",
+ "nullable": true
+ },
+ "isStaticSpa": {
+ "type": "boolean",
+ "nullable": true
+ }
+ },
+ "required": [
+ "applicationId",
+ "buildType",
+ "dockerContextPath",
+ "dockerBuildStage"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveGithubProvider": {
+ "post": {
+ "operationId": "application-saveGithubProvider",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "repository": {
+ "type": "string",
+ "nullable": true
+ },
+ "branch": {
+ "type": "string",
+ "nullable": true
+ },
+ "owner": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubId": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ },
+ "triggerType": {
+ "type": "string",
+ "enum": [
+ "push",
+ "tag"
+ ],
+ "default": "push"
+ }
+ },
+ "required": [
+ "applicationId",
+ "owner",
+ "githubId",
+ "enableSubmodules"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveGitlabProvider": {
+ "post": {
+ "operationId": "application-saveGitlabProvider",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "gitlabBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabId": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabProjectId": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitlabPathNamespace": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "applicationId",
+ "gitlabBranch",
+ "gitlabBuildPath",
+ "gitlabOwner",
+ "gitlabRepository",
+ "gitlabId",
+ "gitlabProjectId",
+ "gitlabPathNamespace",
+ "enableSubmodules"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveBitbucketProvider": {
+ "post": {
+ "operationId": "application-saveBitbucketProvider",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "bitbucketBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketId": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "bitbucketBranch",
+ "bitbucketBuildPath",
+ "bitbucketOwner",
+ "bitbucketRepository",
+ "bitbucketId",
+ "applicationId",
+ "enableSubmodules"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveGiteaProvider": {
+ "post": {
+ "operationId": "application-saveGiteaProvider",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "giteaBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaId": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "applicationId",
+ "giteaBranch",
+ "giteaBuildPath",
+ "giteaOwner",
+ "giteaRepository",
+ "giteaId",
+ "enableSubmodules"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveDockerProvider": {
+ "post": {
+ "operationId": "application-saveDockerProvider",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "dockerImage": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string",
+ "nullable": true
+ },
+ "password": {
+ "type": "string",
+ "nullable": true
+ },
+ "registryUrl": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveGitProvider": {
+ "post": {
+ "operationId": "application-saveGitProvider",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "customGitBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "customGitBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ },
+ "customGitSSHKeyId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "applicationId",
+ "enableSubmodules"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.disconnectGitProvider": {
+ "post": {
+ "operationId": "application-disconnectGitProvider",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.markRunning": {
+ "post": {
+ "operationId": "application-markRunning",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.update": {
+ "post": {
+ "operationId": "application-update",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewEnv": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "previewBuildArgs": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewBuildSecrets": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewLabels": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "previewWildcard": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "previewHttps": {
+ "type": "boolean"
+ },
+ "previewPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewCertificateType": {
+ "type": "string",
+ "enum": [
+ "letsencrypt",
+ "none",
+ "custom"
+ ]
+ },
+ "previewCustomCertResolver": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewLimit": {
+ "type": "number",
+ "nullable": true
+ },
+ "isPreviewDeploymentsActive": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "previewRequireCollaboratorPermissions": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "rollbackActive": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "buildArgs": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildSecrets": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "subtitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "refreshToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "sourceType": {
+ "type": "string",
+ "enum": [
+ "github",
+ "docker",
+ "git",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "drop"
+ ]
+ },
+ "cleanCache": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "repository": {
+ "type": "string",
+ "nullable": true
+ },
+ "owner": {
+ "type": "string",
+ "nullable": true
+ },
+ "branch": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "triggerType": {
+ "type": "string",
+ "enum": [
+ "push",
+ "tag"
+ ],
+ "nullable": true
+ },
+ "autoDeploy": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "gitlabProjectId": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitlabRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabPathNamespace": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "username": {
+ "type": "string",
+ "nullable": true
+ },
+ "password": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerImage": {
+ "type": "string",
+ "nullable": true
+ },
+ "registryUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitSSHKeyId": {
+ "type": "string",
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ },
+ "dockerfile": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerContextPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerBuildStage": {
+ "type": "string",
+ "nullable": true
+ },
+ "dropBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "SpreadDescriptor"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "Spread"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Architecture",
+ "OS"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "buildType": {
+ "type": "string",
+ "enum": [
+ "dockerfile",
+ "heroku_buildpacks",
+ "paketo_buildpacks",
+ "nixpacks",
+ "static",
+ "railpack"
+ ]
+ },
+ "railpackVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "herokuVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "publishDirectory": {
+ "type": "string",
+ "nullable": true
+ },
+ "isStaticSpa": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "registryId": {
+ "type": "string",
+ "nullable": true
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "githubId": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabId": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaId": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketId": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildServerId": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildRegistryId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.refreshToken": {
+ "post": {
+ "operationId": "application-refreshToken",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.deploy": {
+ "post": {
+ "operationId": "application-deploy",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.cleanQueues": {
+ "post": {
+ "operationId": "application-cleanQueues",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.killBuild": {
+ "post": {
+ "operationId": "application-killBuild",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.readTraefikConfig": {
+ "get": {
+ "operationId": "application-readTraefikConfig",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.updateTraefikConfig": {
+ "post": {
+ "operationId": "application-updateTraefikConfig",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "traefikConfig": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId",
+ "traefikConfig"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.readAppMonitoring": {
+ "get": {
+ "operationId": "application-readAppMonitoring",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.move": {
+ "post": {
+ "operationId": "application-move",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId",
+ "targetEnvironmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.cancelDeployment": {
+ "post": {
+ "operationId": "application-cancelDeployment",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.create": {
+ "post": {
+ "operationId": "mysql-create",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mysql:8"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "databaseRootPassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "environmentId",
+ "databaseName",
+ "databaseUser",
+ "databasePassword",
+ "databaseRootPassword"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.one": {
+ "get": {
+ "operationId": "mysql-one",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "mysqlId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.start": {
+ "post": {
+ "operationId": "mysql-start",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mysqlId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.stop": {
+ "post": {
+ "operationId": "mysql-stop",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mysqlId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.saveExternalPort": {
+ "post": {
+ "operationId": "mysql-saveExternalPort",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": [
+ "mysqlId",
+ "externalPort"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.deploy": {
+ "post": {
+ "operationId": "mysql-deploy",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mysqlId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.changeStatus": {
+ "post": {
+ "operationId": "mysql-changeStatus",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ }
+ },
+ "required": [
+ "mysqlId",
+ "applicationStatus"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.reload": {
+ "post": {
+ "operationId": "mysql-reload",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "mysqlId",
+ "appName"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.remove": {
+ "post": {
+ "operationId": "mysql-remove",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mysqlId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.saveEnvironment": {
+ "post": {
+ "operationId": "mysql-saveEnvironment",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "mysqlId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.update": {
+ "post": {
+ "operationId": "mysql-update",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "databaseRootPassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mysql:8"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "SpreadDescriptor"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "Spread"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Architecture",
+ "OS"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "environmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mysqlId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.move": {
+ "post": {
+ "operationId": "mysql-move",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mysqlId",
+ "targetEnvironmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.rebuild": {
+ "post": {
+ "operationId": "mysql-rebuild",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mysqlId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.create": {
+ "post": {
+ "operationId": "postgres-create",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "postgres:15"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "databaseName",
+ "databaseUser",
+ "databasePassword",
+ "environmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.one": {
+ "get": {
+ "operationId": "postgres-one",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "postgresId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.start": {
+ "post": {
+ "operationId": "postgres-start",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.stop": {
+ "post": {
+ "operationId": "postgres-stop",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.saveExternalPort": {
+ "post": {
+ "operationId": "postgres-saveExternalPort",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": [
+ "postgresId",
+ "externalPort"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.deploy": {
+ "post": {
+ "operationId": "postgres-deploy",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.changeStatus": {
+ "post": {
+ "operationId": "postgres-changeStatus",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ }
+ },
+ "required": [
+ "postgresId",
+ "applicationStatus"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.remove": {
+ "post": {
+ "operationId": "postgres-remove",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.saveEnvironment": {
+ "post": {
+ "operationId": "postgres-saveEnvironment",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "postgresId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.reload": {
+ "post": {
+ "operationId": "postgres-reload",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId",
+ "appName"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.update": {
+ "post": {
+ "operationId": "postgres-update",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "postgres:15"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "SpreadDescriptor"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "Spread"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Architecture",
+ "OS"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "environmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.move": {
+ "post": {
+ "operationId": "postgres-move",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId",
+ "targetEnvironmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.rebuild": {
+ "post": {
+ "operationId": "postgres-rebuild",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.create": {
+ "post": {
+ "operationId": "redis-create",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "redis:8"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "databasePassword",
+ "environmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.one": {
+ "get": {
+ "operationId": "redis-one",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "redisId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.start": {
+ "post": {
+ "operationId": "redis-start",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "redisId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.reload": {
+ "post": {
+ "operationId": "redis-reload",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "redisId",
+ "appName"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.stop": {
+ "post": {
+ "operationId": "redis-stop",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "redisId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.saveExternalPort": {
+ "post": {
+ "operationId": "redis-saveExternalPort",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": [
+ "redisId",
+ "externalPort"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.deploy": {
+ "post": {
+ "operationId": "redis-deploy",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "redisId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.changeStatus": {
+ "post": {
+ "operationId": "redis-changeStatus",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ }
+ },
+ "required": [
+ "redisId",
+ "applicationStatus"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.remove": {
+ "post": {
+ "operationId": "redis-remove",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "redisId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.saveEnvironment": {
+ "post": {
+ "operationId": "redis-saveEnvironment",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "redisId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.update": {
+ "post": {
+ "operationId": "redis-update",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databasePassword": {
+ "type": "string"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "redis:8"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "SpreadDescriptor"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "Spread"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Architecture",
+ "OS"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "environmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "redisId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.move": {
+ "post": {
+ "operationId": "redis-move",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "redisId",
+ "targetEnvironmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.rebuild": {
+ "post": {
+ "operationId": "redis-rebuild",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "redisId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.create": {
+ "post": {
+ "operationId": "mongo-create",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mongo:15"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ },
+ "replicaSets": {
+ "type": "boolean",
+ "default": false,
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "environmentId",
+ "databaseUser",
+ "databasePassword"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.one": {
+ "get": {
+ "operationId": "mongo-one",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "mongoId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.start": {
+ "post": {
+ "operationId": "mongo-start",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mongoId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.stop": {
+ "post": {
+ "operationId": "mongo-stop",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mongoId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.saveExternalPort": {
+ "post": {
+ "operationId": "mongo-saveExternalPort",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": [
+ "mongoId",
+ "externalPort"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.deploy": {
+ "post": {
+ "operationId": "mongo-deploy",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mongoId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.changeStatus": {
+ "post": {
+ "operationId": "mongo-changeStatus",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ }
+ },
+ "required": [
+ "mongoId",
+ "applicationStatus"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.reload": {
+ "post": {
+ "operationId": "mongo-reload",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "mongoId",
+ "appName"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.remove": {
+ "post": {
+ "operationId": "mongo-remove",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mongoId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.saveEnvironment": {
+ "post": {
+ "operationId": "mongo-saveEnvironment",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "mongoId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.update": {
+ "post": {
+ "operationId": "mongo-update",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mongo:15"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "SpreadDescriptor"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "Spread"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Architecture",
+ "OS"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "replicaSets": {
+ "type": "boolean",
+ "default": false,
+ "nullable": true
+ }
+ },
+ "required": [
+ "mongoId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.move": {
+ "post": {
+ "operationId": "mongo-move",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mongoId",
+ "targetEnvironmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.rebuild": {
+ "post": {
+ "operationId": "mongo-rebuild",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mongoId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.create": {
+ "post": {
+ "operationId": "mariadb-create",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mariadb:6"
+ },
+ "databaseRootPassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "databaseRootPassword",
+ "environmentId",
+ "databaseName",
+ "databaseUser",
+ "databasePassword"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.one": {
+ "get": {
+ "operationId": "mariadb-one",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "mariadbId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.start": {
+ "post": {
+ "operationId": "mariadb-start",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mariadbId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.stop": {
+ "post": {
+ "operationId": "mariadb-stop",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mariadbId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.saveExternalPort": {
+ "post": {
+ "operationId": "mariadb-saveExternalPort",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": [
+ "mariadbId",
+ "externalPort"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.deploy": {
+ "post": {
+ "operationId": "mariadb-deploy",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mariadbId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.changeStatus": {
+ "post": {
+ "operationId": "mariadb-changeStatus",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ }
+ },
+ "required": [
+ "mariadbId",
+ "applicationStatus"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.remove": {
+ "post": {
+ "operationId": "mariadb-remove",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mariadbId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.saveEnvironment": {
+ "post": {
+ "operationId": "mariadb-saveEnvironment",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "mariadbId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.reload": {
+ "post": {
+ "operationId": "mariadb-reload",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "mariadbId",
+ "appName"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.update": {
+ "post": {
+ "operationId": "mariadb-update",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "databaseRootPassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mariadb:6"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "SpreadDescriptor"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "Spread"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Architecture",
+ "OS"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "environmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mariadbId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.move": {
+ "post": {
+ "operationId": "mariadb-move",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mariadbId",
+ "targetEnvironmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.rebuild": {
+ "post": {
+ "operationId": "mariadb-rebuild",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mariadbId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.create": {
+ "post": {
+ "operationId": "compose-create",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "composeType": {
+ "type": "string",
+ "enum": [
+ "docker-compose",
+ "stack"
+ ]
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeFile": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "environmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.one": {
+ "get": {
+ "operationId": "compose-one",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.update": {
+ "post": {
+ "operationId": "compose-update",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeFile": {
+ "type": "string"
+ },
+ "refreshToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "sourceType": {
+ "type": "string",
+ "enum": [
+ "git",
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "raw"
+ ]
+ },
+ "composeType": {
+ "type": "string",
+ "enum": [
+ "docker-compose",
+ "stack"
+ ]
+ },
+ "repository": {
+ "type": "string",
+ "nullable": true
+ },
+ "owner": {
+ "type": "string",
+ "nullable": true
+ },
+ "branch": {
+ "type": "string",
+ "nullable": true
+ },
+ "autoDeploy": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "gitlabProjectId": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitlabRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabPathNamespace": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitSSHKeyId": {
+ "type": "string",
+ "nullable": true
+ },
+ "command": {
+ "type": "string"
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ },
+ "composePath": {
+ "type": "string",
+ "minLength": 1
+ },
+ "suffix": {
+ "type": "string"
+ },
+ "randomize": {
+ "type": "boolean"
+ },
+ "isolatedDeployment": {
+ "type": "boolean"
+ },
+ "isolatedDeploymentsVolume": {
+ "type": "boolean"
+ },
+ "triggerType": {
+ "type": "string",
+ "enum": [
+ "push",
+ "tag"
+ ],
+ "nullable": true
+ },
+ "composeStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "githubId": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabId": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketId": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.delete": {
+ "post": {
+ "operationId": "compose-delete",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "deleteVolumes": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "composeId",
+ "deleteVolumes"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.cleanQueues": {
+ "post": {
+ "operationId": "compose-cleanQueues",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.killBuild": {
+ "post": {
+ "operationId": "compose-killBuild",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.loadServices": {
+ "get": {
+ "operationId": "compose-loadServices",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "type",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "anyOf": [
+ {
+ "not": {}
+ },
+ {
+ "type": "string",
+ "enum": [
+ "fetch",
+ "cache"
+ ]
+ }
+ ],
+ "default": "cache"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.loadMountsByService": {
+ "get": {
+ "operationId": "compose-loadMountsByService",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "serviceName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.fetchSourceType": {
+ "post": {
+ "operationId": "compose-fetchSourceType",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.randomizeCompose": {
+ "post": {
+ "operationId": "compose-randomizeCompose",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "suffix": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.isolatedDeployment": {
+ "post": {
+ "operationId": "compose-isolatedDeployment",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "suffix": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.getConvertedCompose": {
+ "get": {
+ "operationId": "compose-getConvertedCompose",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.deploy": {
+ "post": {
+ "operationId": "compose-deploy",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.redeploy": {
+ "post": {
+ "operationId": "compose-redeploy",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.stop": {
+ "post": {
+ "operationId": "compose-stop",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.start": {
+ "post": {
+ "operationId": "compose-start",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.getDefaultCommand": {
+ "get": {
+ "operationId": "compose-getDefaultCommand",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.refreshToken": {
+ "post": {
+ "operationId": "compose-refreshToken",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.deployTemplate": {
+ "post": {
+ "operationId": "compose-deployTemplate",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "baseUrl": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "environmentId",
+ "id"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.templates": {
+ "get": {
+ "operationId": "compose-templates",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "baseUrl",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.getTags": {
+ "get": {
+ "operationId": "compose-getTags",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "baseUrl",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.disconnectGitProvider": {
+ "post": {
+ "operationId": "compose-disconnectGitProvider",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.move": {
+ "post": {
+ "operationId": "compose-move",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "composeId",
+ "targetEnvironmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.processTemplate": {
+ "post": {
+ "operationId": "compose-processTemplate",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "base64": {
+ "type": "string"
+ },
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "base64",
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.import": {
+ "post": {
+ "operationId": "compose-import",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "base64": {
+ "type": "string"
+ },
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "base64",
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.cancelDeployment": {
+ "post": {
+ "operationId": "compose-cancelDeployment",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.all": {
+ "get": {
+ "operationId": "user-all",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.one": {
+ "get": {
+ "operationId": "user-one",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "userId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.get": {
+ "get": {
+ "operationId": "user-get",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.haveRootAccess": {
+ "get": {
+ "operationId": "user-haveRootAccess",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getBackups": {
+ "get": {
+ "operationId": "user-getBackups",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getServerMetrics": {
+ "get": {
+ "operationId": "user-getServerMetrics",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.update": {
+ "post": {
+ "operationId": "user-update",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string"
+ },
+ "isRegistered": {
+ "type": "boolean"
+ },
+ "expirationDate": {
+ "type": "string"
+ },
+ "createdAt2": {
+ "type": "string"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "twoFactorEnabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "email": {
+ "type": "string",
+ "format": "email",
+ "minLength": 1
+ },
+ "emailVerified": {
+ "type": "boolean"
+ },
+ "image": {
+ "type": "string",
+ "nullable": true
+ },
+ "banned": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "banReason": {
+ "type": "string",
+ "nullable": true
+ },
+ "banExpires": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "updatedAt": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "serverIp": {
+ "type": "string",
+ "nullable": true
+ },
+ "certificateType": {
+ "type": "string",
+ "enum": [
+ "letsencrypt",
+ "none",
+ "custom"
+ ]
+ },
+ "https": {
+ "type": "boolean"
+ },
+ "host": {
+ "type": "string",
+ "nullable": true
+ },
+ "letsEncryptEmail": {
+ "type": "string",
+ "nullable": true
+ },
+ "sshPrivateKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "enableDockerCleanup": {
+ "type": "boolean"
+ },
+ "logCleanupCron": {
+ "type": "string",
+ "nullable": true
+ },
+ "enablePaidFeatures": {
+ "type": "boolean"
+ },
+ "allowImpersonation": {
+ "type": "boolean"
+ },
+ "metricsConfig": {
+ "type": "object",
+ "properties": {
+ "server": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "Dokploy",
+ "Remote"
+ ]
+ },
+ "refreshRate": {
+ "type": "number"
+ },
+ "port": {
+ "type": "number"
+ },
+ "token": {
+ "type": "string"
+ },
+ "urlCallback": {
+ "type": "string"
+ },
+ "retentionDays": {
+ "type": "number"
+ },
+ "cronJob": {
+ "type": "string"
+ },
+ "thresholds": {
+ "type": "object",
+ "properties": {
+ "cpu": {
+ "type": "number"
+ },
+ "memory": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "cpu",
+ "memory"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "type",
+ "refreshRate",
+ "port",
+ "token",
+ "urlCallback",
+ "retentionDays",
+ "cronJob",
+ "thresholds"
+ ],
+ "additionalProperties": false
+ },
+ "containers": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number"
+ },
+ "services": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "include",
+ "exclude"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "refreshRate",
+ "services"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "server",
+ "containers"
+ ],
+ "additionalProperties": false
+ },
+ "cleanupCacheApplications": {
+ "type": "boolean"
+ },
+ "cleanupCacheOnPreviews": {
+ "type": "boolean"
+ },
+ "cleanupCacheOnCompose": {
+ "type": "boolean"
+ },
+ "stripeCustomerId": {
+ "type": "string",
+ "nullable": true
+ },
+ "stripeSubscriptionId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serversQuantity": {
+ "type": "number"
+ },
+ "password": {
+ "type": "string"
+ },
+ "currentPassword": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getUserByToken": {
+ "get": {
+ "operationId": "user-getUserByToken",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "token",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getMetricsToken": {
+ "get": {
+ "operationId": "user-getMetricsToken",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.remove": {
+ "post": {
+ "operationId": "user-remove",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "userId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.assignPermissions": {
+ "post": {
+ "operationId": "user-assignPermissions",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessedProjects": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "accessedEnvironments": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "accessedServices": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "canCreateProjects": {
+ "type": "boolean"
+ },
+ "canCreateServices": {
+ "type": "boolean"
+ },
+ "canDeleteProjects": {
+ "type": "boolean"
+ },
+ "canDeleteServices": {
+ "type": "boolean"
+ },
+ "canAccessToDocker": {
+ "type": "boolean"
+ },
+ "canAccessToTraefikFiles": {
+ "type": "boolean"
+ },
+ "canAccessToAPI": {
+ "type": "boolean"
+ },
+ "canAccessToSSHKeys": {
+ "type": "boolean"
+ },
+ "canAccessToGitProviders": {
+ "type": "boolean"
+ },
+ "canDeleteEnvironments": {
+ "type": "boolean"
+ },
+ "canCreateEnvironments": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "id",
+ "accessedProjects",
+ "accessedEnvironments",
+ "accessedServices",
+ "canCreateProjects",
+ "canCreateServices",
+ "canDeleteProjects",
+ "canDeleteServices",
+ "canAccessToDocker",
+ "canAccessToTraefikFiles",
+ "canAccessToAPI",
+ "canAccessToSSHKeys",
+ "canAccessToGitProviders",
+ "canDeleteEnvironments",
+ "canCreateEnvironments"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getInvitations": {
+ "get": {
+ "operationId": "user-getInvitations",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getContainerMetrics": {
+ "get": {
+ "operationId": "user-getContainerMetrics",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "url",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "token",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "dataPoints",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.generateToken": {
+ "post": {
+ "operationId": "user-generateToken",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.deleteApiKey": {
+ "post": {
+ "operationId": "user-deleteApiKey",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "apiKeyId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "apiKeyId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.createApiKey": {
+ "post": {
+ "operationId": "user-createApiKey",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "prefix": {
+ "type": "string"
+ },
+ "expiresIn": {
+ "type": "number"
+ },
+ "metadata": {
+ "type": "object",
+ "properties": {
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "organizationId"
+ ],
+ "additionalProperties": false
+ },
+ "rateLimitEnabled": {
+ "type": "boolean"
+ },
+ "rateLimitTimeWindow": {
+ "type": "number"
+ },
+ "rateLimitMax": {
+ "type": "number"
+ },
+ "remaining": {
+ "type": "number"
+ },
+ "refillAmount": {
+ "type": "number"
+ },
+ "refillInterval": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "name",
+ "metadata"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.checkUserOrganizations": {
+ "get": {
+ "operationId": "user-checkUserOrganizations",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "userId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.sendInvitation": {
+ "post": {
+ "operationId": "user-sendInvitation",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "invitationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "invitationId",
+ "notificationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.create": {
+ "post": {
+ "operationId": "domain-create",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "minLength": 1
+ },
+ "path": {
+ "type": "string",
+ "minLength": 1,
+ "nullable": true
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1,
+ "maximum": 65535,
+ "nullable": true
+ },
+ "https": {
+ "type": "boolean"
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "certificateType": {
+ "type": "string",
+ "enum": [
+ "letsencrypt",
+ "none",
+ "custom"
+ ]
+ },
+ "customCertResolver": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "domainType": {
+ "type": "string",
+ "enum": [
+ "compose",
+ "application",
+ "preview"
+ ],
+ "nullable": true
+ },
+ "previewDeploymentId": {
+ "type": "string",
+ "nullable": true
+ },
+ "internalPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "stripPath": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "host"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.byApplicationId": {
+ "get": {
+ "operationId": "domain-byApplicationId",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.byComposeId": {
+ "get": {
+ "operationId": "domain-byComposeId",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.generateDomain": {
+ "post": {
+ "operationId": "domain-generateDomain",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appName": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "appName"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.canGenerateTraefikMeDomains": {
+ "get": {
+ "operationId": "domain-canGenerateTraefikMeDomains",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.update": {
+ "post": {
+ "operationId": "domain-update",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "minLength": 1
+ },
+ "path": {
+ "type": "string",
+ "minLength": 1,
+ "nullable": true
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1,
+ "maximum": 65535,
+ "nullable": true
+ },
+ "https": {
+ "type": "boolean"
+ },
+ "certificateType": {
+ "type": "string",
+ "enum": [
+ "letsencrypt",
+ "none",
+ "custom"
+ ]
+ },
+ "customCertResolver": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "domainType": {
+ "type": "string",
+ "enum": [
+ "compose",
+ "application",
+ "preview"
+ ],
+ "nullable": true
+ },
+ "internalPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "stripPath": {
+ "type": "boolean"
+ },
+ "domainId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "host",
+ "domainId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.one": {
+ "get": {
+ "operationId": "domain-one",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "domainId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.delete": {
+ "post": {
+ "operationId": "domain-delete",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "domainId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "domainId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.validateDomain": {
+ "post": {
+ "operationId": "domain-validateDomain",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "domain": {
+ "type": "string"
+ },
+ "serverIp": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "domain"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.create": {
+ "post": {
+ "operationId": "destination-create",
+ "tags": [
+ "destination"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "provider": {
+ "type": "string",
+ "nullable": true
+ },
+ "accessKey": {
+ "type": "string"
+ },
+ "bucket": {
+ "type": "string"
+ },
+ "region": {
+ "type": "string"
+ },
+ "endpoint": {
+ "type": "string"
+ },
+ "secretAccessKey": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "provider",
+ "accessKey",
+ "bucket",
+ "region",
+ "endpoint",
+ "secretAccessKey"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.testConnection": {
+ "post": {
+ "operationId": "destination-testConnection",
+ "tags": [
+ "destination"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "provider": {
+ "type": "string",
+ "nullable": true
+ },
+ "accessKey": {
+ "type": "string"
+ },
+ "bucket": {
+ "type": "string"
+ },
+ "region": {
+ "type": "string"
+ },
+ "endpoint": {
+ "type": "string"
+ },
+ "secretAccessKey": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "provider",
+ "accessKey",
+ "bucket",
+ "region",
+ "endpoint",
+ "secretAccessKey"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.one": {
+ "get": {
+ "operationId": "destination-one",
+ "tags": [
+ "destination"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "destinationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.all": {
+ "get": {
+ "operationId": "destination-all",
+ "tags": [
+ "destination"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.remove": {
+ "post": {
+ "operationId": "destination-remove",
+ "tags": [
+ "destination"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "destinationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "destinationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.update": {
+ "post": {
+ "operationId": "destination-update",
+ "tags": [
+ "destination"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessKey": {
+ "type": "string"
+ },
+ "bucket": {
+ "type": "string"
+ },
+ "region": {
+ "type": "string"
+ },
+ "endpoint": {
+ "type": "string"
+ },
+ "secretAccessKey": {
+ "type": "string"
+ },
+ "destinationId": {
+ "type": "string"
+ },
+ "provider": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "accessKey",
+ "bucket",
+ "region",
+ "endpoint",
+ "secretAccessKey",
+ "destinationId",
+ "provider"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.create": {
+ "post": {
+ "operationId": "backup-create",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "schedule": {
+ "type": "string"
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "prefix": {
+ "type": "string",
+ "minLength": 1
+ },
+ "destinationId": {
+ "type": "string"
+ },
+ "keepLatestCount": {
+ "type": "number",
+ "nullable": true
+ },
+ "database": {
+ "type": "string",
+ "minLength": 1
+ },
+ "mariadbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mysqlId": {
+ "type": "string",
+ "nullable": true
+ },
+ "postgresId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mongoId": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseType": {
+ "type": "string",
+ "enum": [
+ "postgres",
+ "mariadb",
+ "mysql",
+ "mongo",
+ "web-server"
+ ]
+ },
+ "userId": {
+ "type": "string",
+ "nullable": true
+ },
+ "backupType": {
+ "type": "string",
+ "enum": [
+ "database",
+ "compose"
+ ]
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "metadata": {
+ "nullable": true
+ }
+ },
+ "required": [
+ "schedule",
+ "prefix",
+ "destinationId",
+ "database",
+ "databaseType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.one": {
+ "get": {
+ "operationId": "backup-one",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "backupId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.update": {
+ "post": {
+ "operationId": "backup-update",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "schedule": {
+ "type": "string"
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "prefix": {
+ "type": "string",
+ "minLength": 1
+ },
+ "backupId": {
+ "type": "string"
+ },
+ "destinationId": {
+ "type": "string"
+ },
+ "database": {
+ "type": "string",
+ "minLength": 1
+ },
+ "keepLatestCount": {
+ "type": "number",
+ "nullable": true
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "metadata": {
+ "nullable": true
+ },
+ "databaseType": {
+ "type": "string",
+ "enum": [
+ "postgres",
+ "mariadb",
+ "mysql",
+ "mongo",
+ "web-server"
+ ]
+ }
+ },
+ "required": [
+ "schedule",
+ "prefix",
+ "backupId",
+ "destinationId",
+ "database",
+ "serviceName",
+ "databaseType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.remove": {
+ "post": {
+ "operationId": "backup-remove",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "backupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupPostgres": {
+ "post": {
+ "operationId": "backup-manualBackupPostgres",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "backupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupMySql": {
+ "post": {
+ "operationId": "backup-manualBackupMySql",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "backupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupMariadb": {
+ "post": {
+ "operationId": "backup-manualBackupMariadb",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "backupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupCompose": {
+ "post": {
+ "operationId": "backup-manualBackupCompose",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "backupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupMongo": {
+ "post": {
+ "operationId": "backup-manualBackupMongo",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "backupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupWebServer": {
+ "post": {
+ "operationId": "backup-manualBackupWebServer",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "backupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.listBackupFiles": {
+ "get": {
+ "operationId": "backup-listBackupFiles",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "destinationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "search",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.all": {
+ "get": {
+ "operationId": "deployment-all",
+ "tags": [
+ "deployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.allByCompose": {
+ "get": {
+ "operationId": "deployment-allByCompose",
+ "tags": [
+ "deployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.allByServer": {
+ "get": {
+ "operationId": "deployment-allByServer",
+ "tags": [
+ "deployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.allByType": {
+ "get": {
+ "operationId": "deployment-allByType",
+ "tags": [
+ "deployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "type",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "enum": [
+ "application",
+ "compose",
+ "server",
+ "schedule",
+ "previewDeployment",
+ "backup",
+ "volumeBackup"
+ ]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.killProcess": {
+ "post": {
+ "operationId": "deployment-killProcess",
+ "tags": [
+ "deployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "deploymentId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "deploymentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/previewDeployment.all": {
+ "get": {
+ "operationId": "previewDeployment-all",
+ "tags": [
+ "previewDeployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/previewDeployment.delete": {
+ "post": {
+ "operationId": "previewDeployment-delete",
+ "tags": [
+ "previewDeployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "previewDeploymentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "previewDeploymentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/previewDeployment.one": {
+ "get": {
+ "operationId": "previewDeployment-one",
+ "tags": [
+ "previewDeployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "previewDeploymentId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.create": {
+ "post": {
+ "operationId": "mounts-create",
+ "tags": [
+ "mounts"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "bind",
+ "volume",
+ "file"
+ ]
+ },
+ "hostPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "volumeName": {
+ "type": "string",
+ "nullable": true
+ },
+ "content": {
+ "type": "string",
+ "nullable": true
+ },
+ "mountPath": {
+ "type": "string",
+ "minLength": 1
+ },
+ "serviceType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ],
+ "default": "application"
+ },
+ "filePath": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "type",
+ "mountPath",
+ "serviceId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.remove": {
+ "post": {
+ "operationId": "mounts-remove",
+ "tags": [
+ "mounts"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mountId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mountId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.one": {
+ "get": {
+ "operationId": "mounts-one",
+ "tags": [
+ "mounts"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "mountId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.update": {
+ "post": {
+ "operationId": "mounts-update",
+ "tags": [
+ "mounts"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mountId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "bind",
+ "volume",
+ "file"
+ ]
+ },
+ "hostPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "volumeName": {
+ "type": "string",
+ "nullable": true
+ },
+ "filePath": {
+ "type": "string",
+ "nullable": true
+ },
+ "content": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ],
+ "default": "application"
+ },
+ "mountPath": {
+ "type": "string",
+ "minLength": 1
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "postgresId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mariadbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mongoId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mysqlId": {
+ "type": "string",
+ "nullable": true
+ },
+ "redisId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "mountId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.allNamedByApplicationId": {
+ "get": {
+ "operationId": "mounts-allNamedByApplicationId",
+ "tags": [
+ "mounts"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/certificates.create": {
+ "post": {
+ "operationId": "certificates-create",
+ "tags": [
+ "certificates"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "certificateId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "certificateData": {
+ "type": "string",
+ "minLength": 1
+ },
+ "privateKey": {
+ "type": "string",
+ "minLength": 1
+ },
+ "certificatePath": {
+ "type": "string"
+ },
+ "autoRenew": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "organizationId": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "certificateData",
+ "privateKey",
+ "organizationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/certificates.one": {
+ "get": {
+ "operationId": "certificates-one",
+ "tags": [
+ "certificates"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "certificateId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/certificates.remove": {
+ "post": {
+ "operationId": "certificates-remove",
+ "tags": [
+ "certificates"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "certificateId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "certificateId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/certificates.all": {
+ "get": {
+ "operationId": "certificates-all",
+ "tags": [
+ "certificates"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.reloadServer": {
+ "post": {
+ "operationId": "settings-reloadServer",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanRedis": {
+ "post": {
+ "operationId": "settings-cleanRedis",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.reloadRedis": {
+ "post": {
+ "operationId": "settings-reloadRedis",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.reloadTraefik": {
+ "post": {
+ "operationId": "settings-reloadTraefik",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.toggleDashboard": {
+ "post": {
+ "operationId": "settings-toggleDashboard",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "enableDashboard": {
+ "type": "boolean"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanUnusedImages": {
+ "post": {
+ "operationId": "settings-cleanUnusedImages",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanUnusedVolumes": {
+ "post": {
+ "operationId": "settings-cleanUnusedVolumes",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanStoppedContainers": {
+ "post": {
+ "operationId": "settings-cleanStoppedContainers",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanDockerBuilder": {
+ "post": {
+ "operationId": "settings-cleanDockerBuilder",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanDockerPrune": {
+ "post": {
+ "operationId": "settings-cleanDockerPrune",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanAll": {
+ "post": {
+ "operationId": "settings-cleanAll",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanMonitoring": {
+ "post": {
+ "operationId": "settings-cleanMonitoring",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.saveSSHPrivateKey": {
+ "post": {
+ "operationId": "settings-saveSSHPrivateKey",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "sshPrivateKey": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "sshPrivateKey"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.assignDomainServer": {
+ "post": {
+ "operationId": "settings-assignDomainServer",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "nullable": true
+ },
+ "certificateType": {
+ "type": "string",
+ "enum": [
+ "letsencrypt",
+ "none",
+ "custom"
+ ]
+ },
+ "letsEncryptEmail": {
+ "type": "string",
+ "nullable": true
+ },
+ "https": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "host",
+ "certificateType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanSSHPrivateKey": {
+ "post": {
+ "operationId": "settings-cleanSSHPrivateKey",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateDockerCleanup": {
+ "post": {
+ "operationId": "settings-updateDockerCleanup",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "enableDockerCleanup": {
+ "type": "boolean"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "enableDockerCleanup"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readTraefikConfig": {
+ "get": {
+ "operationId": "settings-readTraefikConfig",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateTraefikConfig": {
+ "post": {
+ "operationId": "settings-updateTraefikConfig",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "traefikConfig": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "traefikConfig"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readWebServerTraefikConfig": {
+ "get": {
+ "operationId": "settings-readWebServerTraefikConfig",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateWebServerTraefikConfig": {
+ "post": {
+ "operationId": "settings-updateWebServerTraefikConfig",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "traefikConfig": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "traefikConfig"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readMiddlewareTraefikConfig": {
+ "get": {
+ "operationId": "settings-readMiddlewareTraefikConfig",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateMiddlewareTraefikConfig": {
+ "post": {
+ "operationId": "settings-updateMiddlewareTraefikConfig",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "traefikConfig": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "traefikConfig"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getUpdateData": {
+ "post": {
+ "operationId": "settings-getUpdateData",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateServer": {
+ "post": {
+ "operationId": "settings-updateServer",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getDokployVersion": {
+ "get": {
+ "operationId": "settings-getDokployVersion",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getReleaseTag": {
+ "get": {
+ "operationId": "settings-getReleaseTag",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readDirectories": {
+ "get": {
+ "operationId": "settings-readDirectories",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateTraefikFile": {
+ "post": {
+ "operationId": "settings-updateTraefikFile",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "path": {
+ "type": "string",
+ "minLength": 1
+ },
+ "traefikConfig": {
+ "type": "string",
+ "minLength": 1
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "path",
+ "traefikConfig"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readTraefikFile": {
+ "get": {
+ "operationId": "settings-readTraefikFile",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "path",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getIp": {
+ "get": {
+ "operationId": "settings-getIp",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getOpenApiDocument": {
+ "get": {
+ "operationId": "settings-getOpenApiDocument",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readTraefikEnv": {
+ "get": {
+ "operationId": "settings-readTraefikEnv",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.writeTraefikEnv": {
+ "post": {
+ "operationId": "settings-writeTraefikEnv",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "env": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "env"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.haveTraefikDashboardPortEnabled": {
+ "get": {
+ "operationId": "settings-haveTraefikDashboardPortEnabled",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.haveActivateRequests": {
+ "get": {
+ "operationId": "settings-haveActivateRequests",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.toggleRequests": {
+ "post": {
+ "operationId": "settings-toggleRequests",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "enable": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "enable"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.isCloud": {
+ "get": {
+ "operationId": "settings-isCloud",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.isUserSubscribed": {
+ "get": {
+ "operationId": "settings-isUserSubscribed",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.health": {
+ "get": {
+ "operationId": "settings-health",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.setupGPU": {
+ "post": {
+ "operationId": "settings-setupGPU",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.checkGPUStatus": {
+ "get": {
+ "operationId": "settings-checkGPUStatus",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateTraefikPorts": {
+ "post": {
+ "operationId": "settings-updateTraefikPorts",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ },
+ "additionalPorts": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "targetPort": {
+ "type": "number"
+ },
+ "publishedPort": {
+ "type": "number"
+ },
+ "protocol": {
+ "type": "string",
+ "enum": [
+ "tcp",
+ "udp",
+ "sctp"
+ ]
+ }
+ },
+ "required": [
+ "targetPort",
+ "publishedPort",
+ "protocol"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "required": [
+ "additionalPorts"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getTraefikPorts": {
+ "get": {
+ "operationId": "settings-getTraefikPorts",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateLogCleanup": {
+ "post": {
+ "operationId": "settings-updateLogCleanup",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "cronExpression": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "cronExpression"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getLogCleanupStatus": {
+ "get": {
+ "operationId": "settings-getLogCleanupStatus",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getDokployCloudIps": {
+ "get": {
+ "operationId": "settings-getDokployCloudIps",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/security.create": {
+ "post": {
+ "operationId": "security-create",
+ "tags": [
+ "security"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "applicationId",
+ "username",
+ "password"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/security.one": {
+ "get": {
+ "operationId": "security-one",
+ "tags": [
+ "security"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "securityId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/security.delete": {
+ "post": {
+ "operationId": "security-delete",
+ "tags": [
+ "security"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "securityId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "securityId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/security.update": {
+ "post": {
+ "operationId": "security-update",
+ "tags": [
+ "security"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "securityId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "securityId",
+ "username",
+ "password"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redirects.create": {
+ "post": {
+ "operationId": "redirects-create",
+ "tags": [
+ "redirects"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "regex": {
+ "type": "string",
+ "minLength": 1
+ },
+ "replacement": {
+ "type": "string",
+ "minLength": 1
+ },
+ "permanent": {
+ "type": "boolean"
+ },
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "regex",
+ "replacement",
+ "permanent",
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redirects.one": {
+ "get": {
+ "operationId": "redirects-one",
+ "tags": [
+ "redirects"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "redirectId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redirects.delete": {
+ "post": {
+ "operationId": "redirects-delete",
+ "tags": [
+ "redirects"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redirectId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "redirectId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redirects.update": {
+ "post": {
+ "operationId": "redirects-update",
+ "tags": [
+ "redirects"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redirectId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "regex": {
+ "type": "string",
+ "minLength": 1
+ },
+ "replacement": {
+ "type": "string",
+ "minLength": 1
+ },
+ "permanent": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "redirectId",
+ "regex",
+ "replacement",
+ "permanent"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/port.create": {
+ "post": {
+ "operationId": "port-create",
+ "tags": [
+ "port"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "publishedPort": {
+ "type": "number"
+ },
+ "publishMode": {
+ "type": "string",
+ "enum": [
+ "ingress",
+ "host"
+ ],
+ "default": "ingress"
+ },
+ "targetPort": {
+ "type": "number"
+ },
+ "protocol": {
+ "type": "string",
+ "enum": [
+ "tcp",
+ "udp"
+ ],
+ "default": "tcp"
+ },
+ "applicationId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "publishedPort",
+ "targetPort",
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/port.one": {
+ "get": {
+ "operationId": "port-one",
+ "tags": [
+ "port"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "portId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/port.delete": {
+ "post": {
+ "operationId": "port-delete",
+ "tags": [
+ "port"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "portId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "portId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/port.update": {
+ "post": {
+ "operationId": "port-update",
+ "tags": [
+ "port"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "portId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "publishedPort": {
+ "type": "number"
+ },
+ "publishMode": {
+ "type": "string",
+ "enum": [
+ "ingress",
+ "host"
+ ],
+ "default": "ingress"
+ },
+ "targetPort": {
+ "type": "number"
+ },
+ "protocol": {
+ "type": "string",
+ "enum": [
+ "tcp",
+ "udp"
+ ],
+ "default": "tcp"
+ }
+ },
+ "required": [
+ "portId",
+ "publishedPort",
+ "targetPort"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.create": {
+ "post": {
+ "operationId": "registry-create",
+ "tags": [
+ "registry"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "registryName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "registryUrl": {
+ "type": "string"
+ },
+ "registryType": {
+ "type": "string",
+ "enum": [
+ "cloud"
+ ]
+ },
+ "imagePrefix": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "registryName",
+ "username",
+ "password",
+ "registryUrl",
+ "registryType",
+ "imagePrefix"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.remove": {
+ "post": {
+ "operationId": "registry-remove",
+ "tags": [
+ "registry"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "registryId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "registryId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.update": {
+ "post": {
+ "operationId": "registry-update",
+ "tags": [
+ "registry"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "registryId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "registryName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "imagePrefix": {
+ "type": "string",
+ "nullable": true
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "registryUrl": {
+ "type": "string"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "registryType": {
+ "type": "string",
+ "enum": [
+ "cloud"
+ ]
+ },
+ "organizationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "registryId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.all": {
+ "get": {
+ "operationId": "registry-all",
+ "tags": [
+ "registry"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.one": {
+ "get": {
+ "operationId": "registry-one",
+ "tags": [
+ "registry"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "registryId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.testRegistry": {
+ "post": {
+ "operationId": "registry-testRegistry",
+ "tags": [
+ "registry"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "registryName": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "registryUrl": {
+ "type": "string"
+ },
+ "registryType": {
+ "type": "string",
+ "enum": [
+ "cloud"
+ ]
+ },
+ "imagePrefix": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "username",
+ "password",
+ "registryUrl",
+ "registryType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/cluster.getNodes": {
+ "get": {
+ "operationId": "cluster-getNodes",
+ "tags": [
+ "cluster"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/cluster.removeWorker": {
+ "post": {
+ "operationId": "cluster-removeWorker",
+ "tags": [
+ "cluster"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "nodeId": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "nodeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/cluster.addWorker": {
+ "get": {
+ "operationId": "cluster-addWorker",
+ "tags": [
+ "cluster"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/cluster.addManager": {
+ "get": {
+ "operationId": "cluster-addManager",
+ "tags": [
+ "cluster"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createSlack": {
+ "post": {
+ "operationId": "notification-createSlack",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "channel": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "webhookUrl",
+ "channel"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateSlack": {
+ "post": {
+ "operationId": "notification-updateSlack",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "channel": {
+ "type": "string"
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "slackId": {
+ "type": "string"
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId",
+ "slackId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testSlackConnection": {
+ "post": {
+ "operationId": "notification-testSlackConnection",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "channel": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "webhookUrl",
+ "channel"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createTelegram": {
+ "post": {
+ "operationId": "notification-createTelegram",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "botToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "chatId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "messageThreadId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "botToken",
+ "chatId",
+ "messageThreadId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateTelegram": {
+ "post": {
+ "operationId": "notification-updateTelegram",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "botToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "chatId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "messageThreadId": {
+ "type": "string"
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "telegramId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId",
+ "telegramId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testTelegramConnection": {
+ "post": {
+ "operationId": "notification-testTelegramConnection",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "botToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "chatId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "messageThreadId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "botToken",
+ "chatId",
+ "messageThreadId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createDiscord": {
+ "post": {
+ "operationId": "notification-createDiscord",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "webhookUrl",
+ "decoration"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateDiscord": {
+ "post": {
+ "operationId": "notification-updateDiscord",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "discordId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId",
+ "discordId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testDiscordConnection": {
+ "post": {
+ "operationId": "notification-testDiscordConnection",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "webhookUrl"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createEmail": {
+ "post": {
+ "operationId": "notification-createEmail",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "smtpServer": {
+ "type": "string",
+ "minLength": 1
+ },
+ "smtpPort": {
+ "type": "number",
+ "minimum": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "fromAddress": {
+ "type": "string",
+ "minLength": 1
+ },
+ "toAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "smtpServer",
+ "smtpPort",
+ "username",
+ "password",
+ "fromAddress",
+ "toAddresses"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateEmail": {
+ "post": {
+ "operationId": "notification-updateEmail",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "smtpServer": {
+ "type": "string",
+ "minLength": 1
+ },
+ "smtpPort": {
+ "type": "number",
+ "minimum": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "fromAddress": {
+ "type": "string",
+ "minLength": 1
+ },
+ "toAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "emailId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId",
+ "emailId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testEmailConnection": {
+ "post": {
+ "operationId": "notification-testEmailConnection",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "smtpServer": {
+ "type": "string",
+ "minLength": 1
+ },
+ "smtpPort": {
+ "type": "number",
+ "minimum": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "toAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1
+ },
+ "fromAddress": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "smtpServer",
+ "smtpPort",
+ "username",
+ "password",
+ "toAddresses",
+ "fromAddress"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.remove": {
+ "post": {
+ "operationId": "notification-remove",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "notificationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.one": {
+ "get": {
+ "operationId": "notification-one",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "notificationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.all": {
+ "get": {
+ "operationId": "notification-all",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.receiveNotification": {
+ "post": {
+ "operationId": "notification-receiveNotification",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "ServerType": {
+ "type": "string",
+ "enum": [
+ "Dokploy",
+ "Remote"
+ ],
+ "default": "Dokploy"
+ },
+ "Type": {
+ "type": "string",
+ "enum": [
+ "Memory",
+ "CPU"
+ ]
+ },
+ "Value": {
+ "type": "number"
+ },
+ "Threshold": {
+ "type": "number"
+ },
+ "Message": {
+ "type": "string"
+ },
+ "Timestamp": {
+ "type": "string"
+ },
+ "Token": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Type",
+ "Value",
+ "Threshold",
+ "Message",
+ "Timestamp",
+ "Token"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createGotify": {
+ "post": {
+ "operationId": "notification-createGotify",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverUrl",
+ "appToken",
+ "priority",
+ "decoration"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateGotify": {
+ "post": {
+ "operationId": "notification-updateGotify",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "gotifyId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId",
+ "gotifyId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testGotifyConnection": {
+ "post": {
+ "operationId": "notification-testGotifyConnection",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "serverUrl",
+ "appToken",
+ "priority"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createNtfy": {
+ "post": {
+ "operationId": "notification-createNtfy",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "topic": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverUrl",
+ "topic",
+ "accessToken",
+ "priority"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateNtfy": {
+ "post": {
+ "operationId": "notification-updateNtfy",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "topic": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "ntfyId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId",
+ "ntfyId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testNtfyConnection": {
+ "post": {
+ "operationId": "notification-testNtfyConnection",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "topic": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ }
+ },
+ "required": [
+ "serverUrl",
+ "topic",
+ "accessToken",
+ "priority"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createLark": {
+ "post": {
+ "operationId": "notification-createLark",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "webhookUrl"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateLark": {
+ "post": {
+ "operationId": "notification-updateLark",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "larkId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId",
+ "larkId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testLarkConnection": {
+ "post": {
+ "operationId": "notification-testLarkConnection",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "webhookUrl"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.getEmailProviders": {
+ "get": {
+ "operationId": "notification-getEmailProviders",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.create": {
+ "post": {
+ "operationId": "sshKey-create",
+ "tags": [
+ "sshKey"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "privateKey": {
+ "type": "string"
+ },
+ "publicKey": {
+ "type": "string"
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "privateKey",
+ "publicKey",
+ "organizationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.remove": {
+ "post": {
+ "operationId": "sshKey-remove",
+ "tags": [
+ "sshKey"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "sshKeyId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "sshKeyId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.one": {
+ "get": {
+ "operationId": "sshKey-one",
+ "tags": [
+ "sshKey"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "sshKeyId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.all": {
+ "get": {
+ "operationId": "sshKey-all",
+ "tags": [
+ "sshKey"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.generate": {
+ "post": {
+ "operationId": "sshKey-generate",
+ "tags": [
+ "sshKey"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "rsa",
+ "ed25519"
+ ]
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.update": {
+ "post": {
+ "operationId": "sshKey-update",
+ "tags": [
+ "sshKey"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "lastUsedAt": {
+ "type": "string",
+ "nullable": true
+ },
+ "sshKeyId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "sshKeyId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitProvider.getAll": {
+ "get": {
+ "operationId": "gitProvider-getAll",
+ "tags": [
+ "gitProvider"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitProvider.remove": {
+ "post": {
+ "operationId": "gitProvider-remove",
+ "tags": [
+ "gitProvider"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "gitProviderId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "gitProviderId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.create": {
+ "post": {
+ "operationId": "gitea-create",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "giteaId": {
+ "type": "string"
+ },
+ "giteaUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "redirectUri": {
+ "type": "string"
+ },
+ "clientId": {
+ "type": "string"
+ },
+ "clientSecret": {
+ "type": "string"
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "accessToken": {
+ "type": "string"
+ },
+ "refreshToken": {
+ "type": "string"
+ },
+ "expiresAt": {
+ "type": "number"
+ },
+ "scopes": {
+ "type": "string"
+ },
+ "lastAuthenticatedAt": {
+ "type": "number"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "giteaUsername": {
+ "type": "string"
+ },
+ "organizationName": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "giteaUrl",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.one": {
+ "get": {
+ "operationId": "gitea-one",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "giteaId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.giteaProviders": {
+ "get": {
+ "operationId": "gitea-giteaProviders",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.getGiteaRepositories": {
+ "get": {
+ "operationId": "gitea-getGiteaRepositories",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "giteaId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.getGiteaBranches": {
+ "get": {
+ "operationId": "gitea-getGiteaBranches",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "repositoryName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "giteaId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.testConnection": {
+ "post": {
+ "operationId": "gitea-testConnection",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "giteaId": {
+ "type": "string"
+ },
+ "organizationName": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.update": {
+ "post": {
+ "operationId": "gitea-update",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "giteaId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "giteaUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "redirectUri": {
+ "type": "string"
+ },
+ "clientId": {
+ "type": "string"
+ },
+ "clientSecret": {
+ "type": "string"
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "accessToken": {
+ "type": "string"
+ },
+ "refreshToken": {
+ "type": "string"
+ },
+ "expiresAt": {
+ "type": "number"
+ },
+ "scopes": {
+ "type": "string"
+ },
+ "lastAuthenticatedAt": {
+ "type": "number"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "giteaUsername": {
+ "type": "string"
+ },
+ "organizationName": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "giteaId",
+ "giteaUrl",
+ "gitProviderId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.getGiteaUrl": {
+ "get": {
+ "operationId": "gitea-getGiteaUrl",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "giteaId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.create": {
+ "post": {
+ "operationId": "bitbucket-create",
+ "tags": [
+ "bitbucket"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "bitbucketId": {
+ "type": "string"
+ },
+ "bitbucketUsername": {
+ "type": "string"
+ },
+ "bitbucketEmail": {
+ "type": "string",
+ "format": "email"
+ },
+ "appPassword": {
+ "type": "string"
+ },
+ "apiToken": {
+ "type": "string"
+ },
+ "bitbucketWorkspaceName": {
+ "type": "string"
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "authId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "authId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.one": {
+ "get": {
+ "operationId": "bitbucket-one",
+ "tags": [
+ "bitbucket"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "bitbucketId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.bitbucketProviders": {
+ "get": {
+ "operationId": "bitbucket-bitbucketProviders",
+ "tags": [
+ "bitbucket"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.getBitbucketRepositories": {
+ "get": {
+ "operationId": "bitbucket-getBitbucketRepositories",
+ "tags": [
+ "bitbucket"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "bitbucketId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.getBitbucketBranches": {
+ "get": {
+ "operationId": "bitbucket-getBitbucketBranches",
+ "tags": [
+ "bitbucket"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "repo",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "bitbucketId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.testConnection": {
+ "post": {
+ "operationId": "bitbucket-testConnection",
+ "tags": [
+ "bitbucket"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "bitbucketId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "bitbucketUsername": {
+ "type": "string"
+ },
+ "bitbucketEmail": {
+ "type": "string",
+ "format": "email"
+ },
+ "workspaceName": {
+ "type": "string"
+ },
+ "apiToken": {
+ "type": "string"
+ },
+ "appPassword": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "bitbucketId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.update": {
+ "post": {
+ "operationId": "bitbucket-update",
+ "tags": [
+ "bitbucket"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "bitbucketId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "bitbucketUsername": {
+ "type": "string"
+ },
+ "bitbucketEmail": {
+ "type": "string",
+ "format": "email"
+ },
+ "appPassword": {
+ "type": "string"
+ },
+ "apiToken": {
+ "type": "string"
+ },
+ "bitbucketWorkspaceName": {
+ "type": "string"
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "bitbucketId",
+ "gitProviderId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.create": {
+ "post": {
+ "operationId": "gitlab-create",
+ "tags": [
+ "gitlab"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "gitlabId": {
+ "type": "string"
+ },
+ "gitlabUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "redirectUri": {
+ "type": "string"
+ },
+ "secret": {
+ "type": "string"
+ },
+ "accessToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "refreshToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "groupName": {
+ "type": "string"
+ },
+ "expiresAt": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "authId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "gitlabUrl",
+ "authId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.one": {
+ "get": {
+ "operationId": "gitlab-one",
+ "tags": [
+ "gitlab"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "gitlabId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.gitlabProviders": {
+ "get": {
+ "operationId": "gitlab-gitlabProviders",
+ "tags": [
+ "gitlab"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.getGitlabRepositories": {
+ "get": {
+ "operationId": "gitlab-getGitlabRepositories",
+ "tags": [
+ "gitlab"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "gitlabId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.getGitlabBranches": {
+ "get": {
+ "operationId": "gitlab-getGitlabBranches",
+ "tags": [
+ "gitlab"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "number"
+ }
+ },
+ {
+ "name": "owner",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "repo",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "gitlabId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.testConnection": {
+ "post": {
+ "operationId": "gitlab-testConnection",
+ "tags": [
+ "gitlab"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "gitlabId": {
+ "type": "string"
+ },
+ "groupName": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.update": {
+ "post": {
+ "operationId": "gitlab-update",
+ "tags": [
+ "gitlab"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "gitlabId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "gitlabUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "redirectUri": {
+ "type": "string"
+ },
+ "secret": {
+ "type": "string"
+ },
+ "accessToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "refreshToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "groupName": {
+ "type": "string"
+ },
+ "expiresAt": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "gitlabId",
+ "gitlabUrl",
+ "gitProviderId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.one": {
+ "get": {
+ "operationId": "github-one",
+ "tags": [
+ "github"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "githubId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.getGithubRepositories": {
+ "get": {
+ "operationId": "github-getGithubRepositories",
+ "tags": [
+ "github"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "githubId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.getGithubBranches": {
+ "get": {
+ "operationId": "github-getGithubBranches",
+ "tags": [
+ "github"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "repo",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "owner",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "githubId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.githubProviders": {
+ "get": {
+ "operationId": "github-githubProviders",
+ "tags": [
+ "github"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.testConnection": {
+ "post": {
+ "operationId": "github-testConnection",
+ "tags": [
+ "github"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "githubId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "githubId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.update": {
+ "post": {
+ "operationId": "github-update",
+ "tags": [
+ "github"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "githubId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "githubAppName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "githubAppId": {
+ "type": "number",
+ "nullable": true
+ },
+ "githubClientId": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubClientSecret": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubInstallationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubPrivateKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubWebhookSecret": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitProviderId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "githubId",
+ "githubAppName",
+ "gitProviderId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.create": {
+ "post": {
+ "operationId": "server-create",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "ipAddress": {
+ "type": "string"
+ },
+ "port": {
+ "type": "number"
+ },
+ "username": {
+ "type": "string"
+ },
+ "sshKeyId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverType": {
+ "type": "string",
+ "enum": [
+ "deploy",
+ "build"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "ipAddress",
+ "port",
+ "username",
+ "sshKeyId",
+ "serverType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.one": {
+ "get": {
+ "operationId": "server-one",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.getDefaultCommand": {
+ "get": {
+ "operationId": "server-getDefaultCommand",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.all": {
+ "get": {
+ "operationId": "server-all",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.count": {
+ "get": {
+ "operationId": "server-count",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.withSSHKey": {
+ "get": {
+ "operationId": "server-withSSHKey",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.buildServers": {
+ "get": {
+ "operationId": "server-buildServers",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.setup": {
+ "post": {
+ "operationId": "server-setup",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "serverId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.validate": {
+ "get": {
+ "operationId": "server-validate",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.security": {
+ "get": {
+ "operationId": "server-security",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.setupMonitoring": {
+ "post": {
+ "operationId": "server-setupMonitoring",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "metricsConfig": {
+ "type": "object",
+ "properties": {
+ "server": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number",
+ "minimum": 2
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1
+ },
+ "token": {
+ "type": "string"
+ },
+ "urlCallback": {
+ "type": "string",
+ "format": "uri"
+ },
+ "retentionDays": {
+ "type": "number",
+ "minimum": 1
+ },
+ "cronJob": {
+ "type": "string",
+ "minLength": 1
+ },
+ "thresholds": {
+ "type": "object",
+ "properties": {
+ "cpu": {
+ "type": "number",
+ "minimum": 0
+ },
+ "memory": {
+ "type": "number",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "cpu",
+ "memory"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "refreshRate",
+ "port",
+ "token",
+ "urlCallback",
+ "retentionDays",
+ "cronJob",
+ "thresholds"
+ ],
+ "additionalProperties": false
+ },
+ "containers": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number",
+ "minimum": 2
+ },
+ "services": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "refreshRate",
+ "services"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "server",
+ "containers"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "serverId",
+ "metricsConfig"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.remove": {
+ "post": {
+ "operationId": "server-remove",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "serverId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.update": {
+ "post": {
+ "operationId": "server-update",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "ipAddress": {
+ "type": "string"
+ },
+ "port": {
+ "type": "number"
+ },
+ "username": {
+ "type": "string"
+ },
+ "sshKeyId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverType": {
+ "type": "string",
+ "enum": [
+ "deploy",
+ "build"
+ ]
+ },
+ "command": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "serverId",
+ "ipAddress",
+ "port",
+ "username",
+ "sshKeyId",
+ "serverType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.publicIp": {
+ "get": {
+ "operationId": "server-publicIp",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.getServerTime": {
+ "get": {
+ "operationId": "server-getServerTime",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.getServerMetrics": {
+ "get": {
+ "operationId": "server-getServerMetrics",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "url",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "token",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "dataPoints",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/stripe.getProducts": {
+ "get": {
+ "operationId": "stripe-getProducts",
+ "tags": [
+ "stripe"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/stripe.createCheckoutSession": {
+ "post": {
+ "operationId": "stripe-createCheckoutSession",
+ "tags": [
+ "stripe"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "productId": {
+ "type": "string"
+ },
+ "serverQuantity": {
+ "type": "number",
+ "minimum": 1
+ },
+ "isAnnual": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "productId",
+ "serverQuantity",
+ "isAnnual"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/stripe.createCustomerPortalSession": {
+ "post": {
+ "operationId": "stripe-createCustomerPortalSession",
+ "tags": [
+ "stripe"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/stripe.canCreateMoreServers": {
+ "get": {
+ "operationId": "stripe-canCreateMoreServers",
+ "tags": [
+ "stripe"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/swarm.getNodes": {
+ "get": {
+ "operationId": "swarm-getNodes",
+ "tags": [
+ "swarm"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/swarm.getNodeInfo": {
+ "get": {
+ "operationId": "swarm-getNodeInfo",
+ "tags": [
+ "swarm"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "nodeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/swarm.getNodeApps": {
+ "get": {
+ "operationId": "swarm-getNodeApps",
+ "tags": [
+ "swarm"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.one": {
+ "get": {
+ "operationId": "ai-one",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "aiId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.getModels": {
+ "get": {
+ "operationId": "ai-getModels",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "apiUrl",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "apiKey",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.create": {
+ "post": {
+ "operationId": "ai-create",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "apiUrl": {
+ "type": "string",
+ "format": "uri"
+ },
+ "apiKey": {
+ "type": "string"
+ },
+ "model": {
+ "type": "string",
+ "minLength": 1
+ },
+ "isEnabled": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "name",
+ "apiUrl",
+ "apiKey",
+ "model",
+ "isEnabled"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.update": {
+ "post": {
+ "operationId": "ai-update",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "aiId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "apiUrl": {
+ "type": "string",
+ "format": "uri"
+ },
+ "apiKey": {
+ "type": "string"
+ },
+ "model": {
+ "type": "string",
+ "minLength": 1
+ },
+ "isEnabled": {
+ "type": "boolean"
+ },
+ "createdAt": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "aiId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.getAll": {
+ "get": {
+ "operationId": "ai-getAll",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.get": {
+ "get": {
+ "operationId": "ai-get",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "aiId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.delete": {
+ "post": {
+ "operationId": "ai-delete",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "aiId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "aiId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.suggest": {
+ "post": {
+ "operationId": "ai-suggest",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "aiId": {
+ "type": "string"
+ },
+ "input": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "aiId",
+ "input"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.deploy": {
+ "post": {
+ "operationId": "ai-deploy",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "id": {
+ "type": "string",
+ "minLength": 1
+ },
+ "dockerCompose": {
+ "type": "string",
+ "minLength": 1
+ },
+ "envVariables": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string"
+ },
+ "domains": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "minLength": 1
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1
+ },
+ "serviceName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "host",
+ "port",
+ "serviceName"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "configFiles": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "filePath": {
+ "type": "string",
+ "minLength": 1
+ },
+ "content": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "filePath",
+ "content"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "required": [
+ "environmentId",
+ "id",
+ "dockerCompose",
+ "envVariables",
+ "name",
+ "description"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.create": {
+ "post": {
+ "operationId": "organization-create",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "logo": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.all": {
+ "get": {
+ "operationId": "organization-all",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.one": {
+ "get": {
+ "operationId": "organization-one",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "organizationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.update": {
+ "post": {
+ "operationId": "organization-update",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "organizationId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "logo": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "organizationId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.delete": {
+ "post": {
+ "operationId": "organization-delete",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "organizationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.allInvitations": {
+ "get": {
+ "operationId": "organization-allInvitations",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.removeInvitation": {
+ "post": {
+ "operationId": "organization-removeInvitation",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "invitationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "invitationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.setDefault": {
+ "post": {
+ "operationId": "organization-setDefault",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "organizationId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "organizationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.create": {
+ "post": {
+ "operationId": "schedule-create",
+ "tags": [
+ "schedule"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "scheduleId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "cronExpression": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "shellType": {
+ "type": "string",
+ "enum": [
+ "bash",
+ "sh"
+ ]
+ },
+ "scheduleType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "compose",
+ "server",
+ "dokploy-server"
+ ]
+ },
+ "command": {
+ "type": "string"
+ },
+ "script": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ },
+ "userId": {
+ "type": "string",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "createdAt": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "cronExpression",
+ "command"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.update": {
+ "post": {
+ "operationId": "schedule-update",
+ "tags": [
+ "schedule"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "scheduleId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string"
+ },
+ "cronExpression": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "shellType": {
+ "type": "string",
+ "enum": [
+ "bash",
+ "sh"
+ ]
+ },
+ "scheduleType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "compose",
+ "server",
+ "dokploy-server"
+ ]
+ },
+ "command": {
+ "type": "string"
+ },
+ "script": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ },
+ "userId": {
+ "type": "string",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "createdAt": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "scheduleId",
+ "name",
+ "cronExpression",
+ "command"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.delete": {
+ "post": {
+ "operationId": "schedule-delete",
+ "tags": [
+ "schedule"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "scheduleId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "scheduleId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.list": {
+ "get": {
+ "operationId": "schedule-list",
+ "tags": [
+ "schedule"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "scheduleType",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "enum": [
+ "application",
+ "compose",
+ "server",
+ "dokploy-server"
+ ]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.one": {
+ "get": {
+ "operationId": "schedule-one",
+ "tags": [
+ "schedule"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "scheduleId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.runManually": {
+ "post": {
+ "operationId": "schedule-runManually",
+ "tags": [
+ "schedule"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "scheduleId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "scheduleId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/rollback.delete": {
+ "post": {
+ "operationId": "rollback-delete",
+ "tags": [
+ "rollback"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "rollbackId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "rollbackId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/rollback.rollback": {
+ "post": {
+ "operationId": "rollback-rollback",
+ "tags": [
+ "rollback"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "rollbackId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "rollbackId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.list": {
+ "get": {
+ "operationId": "volumeBackups-list",
+ "tags": [
+ "volumeBackups"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "volumeBackupType",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.create": {
+ "post": {
+ "operationId": "volumeBackups-create",
+ "tags": [
+ "volumeBackups"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "volumeName": {
+ "type": "string"
+ },
+ "prefix": {
+ "type": "string"
+ },
+ "serviceType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ]
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "turnOff": {
+ "type": "boolean"
+ },
+ "cronExpression": {
+ "type": "string"
+ },
+ "keepLatestCount": {
+ "type": "number",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "postgresId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mariadbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mongoId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mysqlId": {
+ "type": "string",
+ "nullable": true
+ },
+ "redisId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "destinationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "volumeName",
+ "prefix",
+ "cronExpression",
+ "destinationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.one": {
+ "get": {
+ "operationId": "volumeBackups-one",
+ "tags": [
+ "volumeBackups"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "volumeBackupId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.delete": {
+ "post": {
+ "operationId": "volumeBackups-delete",
+ "tags": [
+ "volumeBackups"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "volumeBackupId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "volumeBackupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.update": {
+ "post": {
+ "operationId": "volumeBackups-update",
+ "tags": [
+ "volumeBackups"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "volumeName": {
+ "type": "string"
+ },
+ "prefix": {
+ "type": "string"
+ },
+ "serviceType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ]
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "turnOff": {
+ "type": "boolean"
+ },
+ "cronExpression": {
+ "type": "string"
+ },
+ "keepLatestCount": {
+ "type": "number",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "postgresId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mariadbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mongoId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mysqlId": {
+ "type": "string",
+ "nullable": true
+ },
+ "redisId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "destinationId": {
+ "type": "string"
+ },
+ "volumeBackupId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "name",
+ "volumeName",
+ "prefix",
+ "cronExpression",
+ "destinationId",
+ "volumeBackupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.runManually": {
+ "post": {
+ "operationId": "volumeBackups-runManually",
+ "tags": [
+ "volumeBackups"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "volumeBackupId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "volumeBackupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.create": {
+ "post": {
+ "operationId": "environment-create",
+ "tags": [
+ "environment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "projectId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "projectId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.one": {
+ "get": {
+ "operationId": "environment-one",
+ "tags": [
+ "environment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "environmentId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.byProjectId": {
+ "get": {
+ "operationId": "environment-byProjectId",
+ "tags": [
+ "environment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.remove": {
+ "post": {
+ "operationId": "environment-remove",
+ "tags": [
+ "environment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "environmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.update": {
+ "post": {
+ "operationId": "environment-update",
+ "tags": [
+ "environment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string"
+ },
+ "projectId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "environmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.duplicate": {
+ "post": {
+ "operationId": "environment-duplicate",
+ "tags": [
+ "environment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "environmentId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ }
+ },
+ "components": {
+ "securitySchemes": {
+ "apiKey": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "x-api-key",
+ "description": "API key authentication. Generate an API key from your Dokploy dashboard under Settings > API Keys."
+ }
+ },
+ "responses": {
+ "error": {
+ "description": "Error response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string"
+ },
+ "code": {
+ "type": "string"
+ },
+ "issues": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "message"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "required": [
+ "message",
+ "code"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ {
+ "name": "admin"
+ },
+ {
+ "name": "docker"
+ },
+ {
+ "name": "compose"
+ },
+ {
+ "name": "registry"
+ },
+ {
+ "name": "cluster"
+ },
+ {
+ "name": "user"
+ },
+ {
+ "name": "domain"
+ },
+ {
+ "name": "destination"
+ },
+ {
+ "name": "backup"
+ },
+ {
+ "name": "deployment"
+ },
+ {
+ "name": "mounts"
+ },
+ {
+ "name": "certificates"
+ },
+ {
+ "name": "settings"
+ },
+ {
+ "name": "security"
+ },
+ {
+ "name": "redirects"
+ },
+ {
+ "name": "port"
+ },
+ {
+ "name": "project"
+ },
+ {
+ "name": "application"
+ },
+ {
+ "name": "mysql"
+ },
+ {
+ "name": "postgres"
+ },
+ {
+ "name": "redis"
+ },
+ {
+ "name": "mongo"
+ },
+ {
+ "name": "mariadb"
+ },
+ {
+ "name": "sshRouter"
+ },
+ {
+ "name": "gitProvider"
+ },
+ {
+ "name": "bitbucket"
+ },
+ {
+ "name": "github"
+ },
+ {
+ "name": "gitlab"
+ },
+ {
+ "name": "gitea"
+ },
+ {
+ "name": "server"
+ },
+ {
+ "name": "swarm"
+ },
+ {
+ "name": "ai"
+ },
+ {
+ "name": "organization"
+ },
+ {
+ "name": "schedule"
+ },
+ {
+ "name": "rollback"
+ },
+ {
+ "name": "volumeBackups"
+ },
+ {
+ "name": "environment"
+ }
+ ],
+ "externalDocs": {
+ "description": "Full documentation",
+ "url": "https://docs.dokploy.com"
+ },
+ "security": [
+ {
+ "apiKey": []
+ }
+ ]
+}
\ No newline at end of file
From 24c216e61a0bade2f3eebd580429db1ea1ba7db8 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sun, 30 Nov 2025 00:50:52 -0600
Subject: [PATCH 34/74] chore: comment out OpenAPI spec commit steps in
workflow
- Commented out the steps related to committing the OpenAPI specification in the GitHub Actions workflow to prevent automatic commits.
- Adjusted the condition for triggering the website sync based on changes detected in the OpenAPI spec.
---
.github/workflows/sync-openapi-docs.yml | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/.github/workflows/sync-openapi-docs.yml b/.github/workflows/sync-openapi-docs.yml
index fc421c5bc..76792f826 100644
--- a/.github/workflows/sync-openapi-docs.yml
+++ b/.github/workflows/sync-openapi-docs.yml
@@ -73,15 +73,4 @@ jobs:
repository: dokploy/website
event-type: openapi-updated
client-payload: '{"commit": "${{ github.sha }}", "timestamp": "${{ github.event.head_commit.timestamp }}"}'
- continue-on-error: true
-
- - name: Create summary
- run: |
- echo "## 📊 OpenAPI Generation Summary" >> $GITHUB_STEP_SUMMARY
- echo "" >> $GITHUB_STEP_SUMMARY
- echo "- **Repository:** \`${{ github.repository }}\`" >> $GITHUB_STEP_SUMMARY
- echo "- **Commit:** \`${{ github.sha }}\`" >> $GITHUB_STEP_SUMMARY
- echo "- **Trigger:** \`${{ github.event_name }}\`" >> $GITHUB_STEP_SUMMARY
- echo "- **Changes:** \`${{ env.HAS_CHANGES }}\`" >> $GITHUB_STEP_SUMMARY
- echo "- **Status:** ✅ Success" >> $GITHUB_STEP_SUMMARY
From c8277f6573c1f71094fdbca2a2d94a1a1c4d33ba Mon Sep 17 00:00:00 2001
From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com>
Date: Sun, 30 Nov 2025 06:51:18 +0000
Subject: [PATCH 35/74] [autofix.ci] apply automated fixes
---
openapi.json | 41557 ++++++++++++++++++++++++-------------------------
1 file changed, 20003 insertions(+), 21554 deletions(-)
diff --git a/openapi.json b/openapi.json
index 399e4a13a..76366bdb2 100644
--- a/openapi.json
+++ b/openapi.json
@@ -1,21555 +1,20004 @@
{
- "openapi": "3.0.3",
- "info": {
- "title": "Dokploy API",
- "description": "Complete API documentation for Dokploy - Deploy applications, manage databases, and orchestrate your infrastructure. This API allows you to programmatically manage all aspects of your Dokploy instance.",
- "version": "1.0.0",
- "contact": {
- "name": "Dokploy Team",
- "url": "https://dokploy.com"
- },
- "license": {
- "name": "Apache 2.0",
- "url": "https://github.com/dokploy/dokploy/blob/canary/LICENSE"
- }
- },
- "servers": [
- {
- "url": "https://your-dokploy-instance.com/api"
- }
- ],
- "paths": {
- "/admin.setupMonitoring": {
- "post": {
- "operationId": "admin-setupMonitoring",
- "tags": [
- "admin"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "metricsConfig": {
- "type": "object",
- "properties": {
- "server": {
- "type": "object",
- "properties": {
- "refreshRate": {
- "type": "number",
- "minimum": 2
- },
- "port": {
- "type": "number",
- "minimum": 1
- },
- "token": {
- "type": "string"
- },
- "urlCallback": {
- "type": "string",
- "format": "uri"
- },
- "retentionDays": {
- "type": "number",
- "minimum": 1
- },
- "cronJob": {
- "type": "string",
- "minLength": 1
- },
- "thresholds": {
- "type": "object",
- "properties": {
- "cpu": {
- "type": "number",
- "minimum": 0
- },
- "memory": {
- "type": "number",
- "minimum": 0
- }
- },
- "required": [
- "cpu",
- "memory"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "refreshRate",
- "port",
- "token",
- "urlCallback",
- "retentionDays",
- "cronJob",
- "thresholds"
- ],
- "additionalProperties": false
- },
- "containers": {
- "type": "object",
- "properties": {
- "refreshRate": {
- "type": "number",
- "minimum": 2
- },
- "services": {
- "type": "object",
- "properties": {
- "include": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "exclude": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- },
- "additionalProperties": false
- }
- },
- "required": [
- "refreshRate",
- "services"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "server",
- "containers"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "metricsConfig"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.getContainers": {
- "get": {
- "operationId": "docker-getContainers",
- "tags": [
- "docker"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.restartContainer": {
- "post": {
- "operationId": "docker-restartContainer",
- "tags": [
- "docker"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "containerId": {
- "type": "string",
- "minLength": 1,
- "pattern": "^[a-zA-Z0-9.\\-_]+$"
- }
- },
- "required": [
- "containerId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.getConfig": {
- "get": {
- "operationId": "docker-getConfig",
- "tags": [
- "docker"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "containerId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1,
- "pattern": "^[a-zA-Z0-9.\\-_]+$"
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.getContainersByAppNameMatch": {
- "get": {
- "operationId": "docker-getContainersByAppNameMatch",
- "tags": [
- "docker"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "appType",
- "in": "query",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "stack"
- ]
- },
- {
- "type": "string",
- "enum": [
- "docker-compose"
- ]
- }
- ]
- }
- },
- {
- "name": "appName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1,
- "pattern": "^[a-zA-Z0-9.\\-_]+$"
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.getContainersByAppLabel": {
- "get": {
- "operationId": "docker-getContainersByAppLabel",
- "tags": [
- "docker"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "appName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1,
- "pattern": "^[a-zA-Z0-9.\\-_]+$"
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "type",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "enum": [
- "standalone",
- "swarm"
- ]
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.getStackContainersByAppName": {
- "get": {
- "operationId": "docker-getStackContainersByAppName",
- "tags": [
- "docker"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "appName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1,
- "pattern": "^[a-zA-Z0-9.\\-_]+$"
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.getServiceContainersByAppName": {
- "get": {
- "operationId": "docker-getServiceContainersByAppName",
- "tags": [
- "docker"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "appName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1,
- "pattern": "^[a-zA-Z0-9.\\-_]+$"
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/project.create": {
- "post": {
- "operationId": "project-create",
- "tags": [
- "project"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string"
- }
- },
- "required": [
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/project.one": {
- "get": {
- "operationId": "project-one",
- "tags": [
- "project"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "projectId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/project.all": {
- "get": {
- "operationId": "project-all",
- "tags": [
- "project"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/project.remove": {
- "post": {
- "operationId": "project-remove",
- "tags": [
- "project"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "projectId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "projectId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/project.update": {
- "post": {
- "operationId": "project-update",
- "tags": [
- "project"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "projectId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "createdAt": {
- "type": "string"
- },
- "organizationId": {
- "type": "string"
- },
- "env": {
- "type": "string"
- }
- },
- "required": [
- "projectId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/project.duplicate": {
- "post": {
- "operationId": "project-duplicate",
- "tags": [
- "project"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "sourceEnvironmentId": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "includeServices": {
- "type": "boolean",
- "default": true
- },
- "selectedServices": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "enum": [
- "application",
- "postgres",
- "mariadb",
- "mongo",
- "mysql",
- "redis",
- "compose"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "additionalProperties": false
- }
- },
- "duplicateInSameProject": {
- "type": "boolean",
- "default": false
- }
- },
- "required": [
- "sourceEnvironmentId",
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.create": {
- "post": {
- "operationId": "application-create",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "environmentId": {
- "type": "string"
- },
- "serverId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "name",
- "environmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.one": {
- "get": {
- "operationId": "application-one",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "applicationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.reload": {
- "post": {
- "operationId": "application-reload",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appName": {
- "type": "string"
- },
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "appName",
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.delete": {
- "post": {
- "operationId": "application-delete",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.stop": {
- "post": {
- "operationId": "application-stop",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.start": {
- "post": {
- "operationId": "application-start",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.redeploy": {
- "post": {
- "operationId": "application-redeploy",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string",
- "minLength": 1
- },
- "title": {
- "type": "string"
- },
- "description": {
- "type": "string"
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveEnvironment": {
- "post": {
- "operationId": "application-saveEnvironment",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "buildArgs": {
- "type": "string",
- "nullable": true
- },
- "buildSecrets": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveBuildType": {
- "post": {
- "operationId": "application-saveBuildType",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "buildType": {
- "type": "string",
- "enum": [
- "dockerfile",
- "heroku_buildpacks",
- "paketo_buildpacks",
- "nixpacks",
- "static",
- "railpack"
- ]
- },
- "dockerfile": {
- "type": "string",
- "nullable": true
- },
- "dockerContextPath": {
- "type": "string",
- "nullable": true
- },
- "dockerBuildStage": {
- "type": "string",
- "nullable": true
- },
- "herokuVersion": {
- "type": "string",
- "nullable": true
- },
- "railpackVersion": {
- "type": "string",
- "nullable": true
- },
- "publishDirectory": {
- "type": "string",
- "nullable": true
- },
- "isStaticSpa": {
- "type": "boolean",
- "nullable": true
- }
- },
- "required": [
- "applicationId",
- "buildType",
- "dockerContextPath",
- "dockerBuildStage"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveGithubProvider": {
- "post": {
- "operationId": "application-saveGithubProvider",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "repository": {
- "type": "string",
- "nullable": true
- },
- "branch": {
- "type": "string",
- "nullable": true
- },
- "owner": {
- "type": "string",
- "nullable": true
- },
- "buildPath": {
- "type": "string",
- "nullable": true
- },
- "githubId": {
- "type": "string",
- "nullable": true
- },
- "watchPaths": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "enableSubmodules": {
- "type": "boolean"
- },
- "triggerType": {
- "type": "string",
- "enum": [
- "push",
- "tag"
- ],
- "default": "push"
- }
- },
- "required": [
- "applicationId",
- "owner",
- "githubId",
- "enableSubmodules"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveGitlabProvider": {
- "post": {
- "operationId": "application-saveGitlabProvider",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "gitlabBranch": {
- "type": "string",
- "nullable": true
- },
- "gitlabBuildPath": {
- "type": "string",
- "nullable": true
- },
- "gitlabOwner": {
- "type": "string",
- "nullable": true
- },
- "gitlabRepository": {
- "type": "string",
- "nullable": true
- },
- "gitlabId": {
- "type": "string",
- "nullable": true
- },
- "gitlabProjectId": {
- "type": "number",
- "nullable": true
- },
- "gitlabPathNamespace": {
- "type": "string",
- "nullable": true
- },
- "watchPaths": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "enableSubmodules": {
- "type": "boolean"
- }
- },
- "required": [
- "applicationId",
- "gitlabBranch",
- "gitlabBuildPath",
- "gitlabOwner",
- "gitlabRepository",
- "gitlabId",
- "gitlabProjectId",
- "gitlabPathNamespace",
- "enableSubmodules"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveBitbucketProvider": {
- "post": {
- "operationId": "application-saveBitbucketProvider",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "bitbucketBranch": {
- "type": "string",
- "nullable": true
- },
- "bitbucketBuildPath": {
- "type": "string",
- "nullable": true
- },
- "bitbucketOwner": {
- "type": "string",
- "nullable": true
- },
- "bitbucketRepository": {
- "type": "string",
- "nullable": true
- },
- "bitbucketId": {
- "type": "string",
- "nullable": true
- },
- "applicationId": {
- "type": "string"
- },
- "watchPaths": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "enableSubmodules": {
- "type": "boolean"
- }
- },
- "required": [
- "bitbucketBranch",
- "bitbucketBuildPath",
- "bitbucketOwner",
- "bitbucketRepository",
- "bitbucketId",
- "applicationId",
- "enableSubmodules"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveGiteaProvider": {
- "post": {
- "operationId": "application-saveGiteaProvider",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "giteaBranch": {
- "type": "string",
- "nullable": true
- },
- "giteaBuildPath": {
- "type": "string",
- "nullable": true
- },
- "giteaOwner": {
- "type": "string",
- "nullable": true
- },
- "giteaRepository": {
- "type": "string",
- "nullable": true
- },
- "giteaId": {
- "type": "string",
- "nullable": true
- },
- "watchPaths": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "enableSubmodules": {
- "type": "boolean"
- }
- },
- "required": [
- "applicationId",
- "giteaBranch",
- "giteaBuildPath",
- "giteaOwner",
- "giteaRepository",
- "giteaId",
- "enableSubmodules"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveDockerProvider": {
- "post": {
- "operationId": "application-saveDockerProvider",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "dockerImage": {
- "type": "string",
- "nullable": true
- },
- "applicationId": {
- "type": "string"
- },
- "username": {
- "type": "string",
- "nullable": true
- },
- "password": {
- "type": "string",
- "nullable": true
- },
- "registryUrl": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveGitProvider": {
- "post": {
- "operationId": "application-saveGitProvider",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "customGitBranch": {
- "type": "string",
- "nullable": true
- },
- "applicationId": {
- "type": "string"
- },
- "customGitBuildPath": {
- "type": "string",
- "nullable": true
- },
- "customGitUrl": {
- "type": "string",
- "nullable": true
- },
- "watchPaths": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "enableSubmodules": {
- "type": "boolean"
- },
- "customGitSSHKeyId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "applicationId",
- "enableSubmodules"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.disconnectGitProvider": {
- "post": {
- "operationId": "application-disconnectGitProvider",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.markRunning": {
- "post": {
- "operationId": "application-markRunning",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.update": {
- "post": {
- "operationId": "application-update",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "previewEnv": {
- "type": "string",
- "nullable": true
- },
- "watchPaths": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "previewBuildArgs": {
- "type": "string",
- "nullable": true
- },
- "previewBuildSecrets": {
- "type": "string",
- "nullable": true
- },
- "previewLabels": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "previewWildcard": {
- "type": "string",
- "nullable": true
- },
- "previewPort": {
- "type": "number",
- "nullable": true
- },
- "previewHttps": {
- "type": "boolean"
- },
- "previewPath": {
- "type": "string",
- "nullable": true
- },
- "previewCertificateType": {
- "type": "string",
- "enum": [
- "letsencrypt",
- "none",
- "custom"
- ]
- },
- "previewCustomCertResolver": {
- "type": "string",
- "nullable": true
- },
- "previewLimit": {
- "type": "number",
- "nullable": true
- },
- "isPreviewDeploymentsActive": {
- "type": "boolean",
- "nullable": true
- },
- "previewRequireCollaboratorPermissions": {
- "type": "boolean",
- "nullable": true
- },
- "rollbackActive": {
- "type": "boolean",
- "nullable": true
- },
- "buildArgs": {
- "type": "string",
- "nullable": true
- },
- "buildSecrets": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "string",
- "nullable": true
- },
- "memoryLimit": {
- "type": "string",
- "nullable": true
- },
- "cpuReservation": {
- "type": "string",
- "nullable": true
- },
- "cpuLimit": {
- "type": "string",
- "nullable": true
- },
- "title": {
- "type": "string",
- "nullable": true
- },
- "enabled": {
- "type": "boolean",
- "nullable": true
- },
- "subtitle": {
- "type": "string",
- "nullable": true
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "refreshToken": {
- "type": "string",
- "nullable": true
- },
- "sourceType": {
- "type": "string",
- "enum": [
- "github",
- "docker",
- "git",
- "gitlab",
- "bitbucket",
- "gitea",
- "drop"
- ]
- },
- "cleanCache": {
- "type": "boolean",
- "nullable": true
- },
- "repository": {
- "type": "string",
- "nullable": true
- },
- "owner": {
- "type": "string",
- "nullable": true
- },
- "branch": {
- "type": "string",
- "nullable": true
- },
- "buildPath": {
- "type": "string",
- "nullable": true
- },
- "triggerType": {
- "type": "string",
- "enum": [
- "push",
- "tag"
- ],
- "nullable": true
- },
- "autoDeploy": {
- "type": "boolean",
- "nullable": true
- },
- "gitlabProjectId": {
- "type": "number",
- "nullable": true
- },
- "gitlabRepository": {
- "type": "string",
- "nullable": true
- },
- "gitlabOwner": {
- "type": "string",
- "nullable": true
- },
- "gitlabBranch": {
- "type": "string",
- "nullable": true
- },
- "gitlabBuildPath": {
- "type": "string",
- "nullable": true
- },
- "gitlabPathNamespace": {
- "type": "string",
- "nullable": true
- },
- "giteaRepository": {
- "type": "string",
- "nullable": true
- },
- "giteaOwner": {
- "type": "string",
- "nullable": true
- },
- "giteaBranch": {
- "type": "string",
- "nullable": true
- },
- "giteaBuildPath": {
- "type": "string",
- "nullable": true
- },
- "bitbucketRepository": {
- "type": "string",
- "nullable": true
- },
- "bitbucketOwner": {
- "type": "string",
- "nullable": true
- },
- "bitbucketBranch": {
- "type": "string",
- "nullable": true
- },
- "bitbucketBuildPath": {
- "type": "string",
- "nullable": true
- },
- "username": {
- "type": "string",
- "nullable": true
- },
- "password": {
- "type": "string",
- "nullable": true
- },
- "dockerImage": {
- "type": "string",
- "nullable": true
- },
- "registryUrl": {
- "type": "string",
- "nullable": true
- },
- "customGitUrl": {
- "type": "string",
- "nullable": true
- },
- "customGitBranch": {
- "type": "string",
- "nullable": true
- },
- "customGitBuildPath": {
- "type": "string",
- "nullable": true
- },
- "customGitSSHKeyId": {
- "type": "string",
- "nullable": true
- },
- "enableSubmodules": {
- "type": "boolean"
- },
- "dockerfile": {
- "type": "string",
- "nullable": true
- },
- "dockerContextPath": {
- "type": "string",
- "nullable": true
- },
- "dockerBuildStage": {
- "type": "string",
- "nullable": true
- },
- "dropBuildPath": {
- "type": "string",
- "nullable": true
- },
- "healthCheckSwarm": {
- "type": "object",
- "properties": {
- "Test": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Interval": {
- "type": "number"
- },
- "Timeout": {
- "type": "number"
- },
- "StartPeriod": {
- "type": "number"
- },
- "Retries": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "restartPolicySwarm": {
- "type": "object",
- "properties": {
- "Condition": {
- "type": "string"
- },
- "Delay": {
- "type": "number"
- },
- "MaxAttempts": {
- "type": "number"
- },
- "Window": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "placementSwarm": {
- "type": "object",
- "properties": {
- "Constraints": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Preferences": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Spread": {
- "type": "object",
- "properties": {
- "SpreadDescriptor": {
- "type": "string"
- }
- },
- "required": [
- "SpreadDescriptor"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "Spread"
- ],
- "additionalProperties": false
- }
- },
- "MaxReplicas": {
- "type": "number"
- },
- "Platforms": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Architecture": {
- "type": "string"
- },
- "OS": {
- "type": "string"
- }
- },
- "required": [
- "Architecture",
- "OS"
- ],
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "updateConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "rollbackConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "modeSwarm": {
- "type": "object",
- "properties": {
- "Replicated": {
- "type": "object",
- "properties": {
- "Replicas": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "Global": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- },
- "ReplicatedJob": {
- "type": "object",
- "properties": {
- "MaxConcurrent": {
- "type": "number"
- },
- "TotalCompletions": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "GlobalJob": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "labelsSwarm": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "nullable": true
- },
- "networkSwarm": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Target": {
- "type": "string"
- },
- "Aliases": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "DriverOpts": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false
- },
- "nullable": true
- },
- "stopGracePeriodSwarm": {
- "type": "integer",
- "nullable": true
- },
- "endpointSpecSwarm": {
- "type": "object",
- "properties": {
- "Mode": {
- "type": "string"
- },
- "Ports": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Protocol": {
- "type": "string"
- },
- "TargetPort": {
- "type": "number"
- },
- "PublishedPort": {
- "type": "number"
- },
- "PublishMode": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "replicas": {
- "type": "number"
- },
- "applicationStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- },
- "buildType": {
- "type": "string",
- "enum": [
- "dockerfile",
- "heroku_buildpacks",
- "paketo_buildpacks",
- "nixpacks",
- "static",
- "railpack"
- ]
- },
- "railpackVersion": {
- "type": "string",
- "nullable": true
- },
- "herokuVersion": {
- "type": "string",
- "nullable": true
- },
- "publishDirectory": {
- "type": "string",
- "nullable": true
- },
- "isStaticSpa": {
- "type": "boolean",
- "nullable": true
- },
- "createdAt": {
- "type": "string"
- },
- "registryId": {
- "type": "string",
- "nullable": true
- },
- "environmentId": {
- "type": "string"
- },
- "githubId": {
- "type": "string",
- "nullable": true
- },
- "gitlabId": {
- "type": "string",
- "nullable": true
- },
- "giteaId": {
- "type": "string",
- "nullable": true
- },
- "bitbucketId": {
- "type": "string",
- "nullable": true
- },
- "buildServerId": {
- "type": "string",
- "nullable": true
- },
- "buildRegistryId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.refreshToken": {
- "post": {
- "operationId": "application-refreshToken",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.deploy": {
- "post": {
- "operationId": "application-deploy",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string",
- "minLength": 1
- },
- "title": {
- "type": "string"
- },
- "description": {
- "type": "string"
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.cleanQueues": {
- "post": {
- "operationId": "application-cleanQueues",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.killBuild": {
- "post": {
- "operationId": "application-killBuild",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.readTraefikConfig": {
- "get": {
- "operationId": "application-readTraefikConfig",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "applicationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.updateTraefikConfig": {
- "post": {
- "operationId": "application-updateTraefikConfig",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "traefikConfig": {
- "type": "string"
- }
- },
- "required": [
- "applicationId",
- "traefikConfig"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.readAppMonitoring": {
- "get": {
- "operationId": "application-readAppMonitoring",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "appName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.move": {
- "post": {
- "operationId": "application-move",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "targetEnvironmentId": {
- "type": "string"
- }
- },
- "required": [
- "applicationId",
- "targetEnvironmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.cancelDeployment": {
- "post": {
- "operationId": "application-cancelDeployment",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.create": {
- "post": {
- "operationId": "mysql-create",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "dockerImage": {
- "type": "string",
- "default": "mysql:8"
- },
- "environmentId": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "databaseRootPassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "serverId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "name",
- "appName",
- "environmentId",
- "databaseName",
- "databaseUser",
- "databasePassword",
- "databaseRootPassword"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.one": {
- "get": {
- "operationId": "mysql-one",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "mysqlId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.start": {
- "post": {
- "operationId": "mysql-start",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- }
- },
- "required": [
- "mysqlId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.stop": {
- "post": {
- "operationId": "mysql-stop",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- }
- },
- "required": [
- "mysqlId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.saveExternalPort": {
- "post": {
- "operationId": "mysql-saveExternalPort",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- }
- },
- "required": [
- "mysqlId",
- "externalPort"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.deploy": {
- "post": {
- "operationId": "mysql-deploy",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- }
- },
- "required": [
- "mysqlId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.changeStatus": {
- "post": {
- "operationId": "mysql-changeStatus",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- }
- },
- "required": [
- "mysqlId",
- "applicationStatus"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.reload": {
- "post": {
- "operationId": "mysql-reload",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- },
- "appName": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "mysqlId",
- "appName"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.remove": {
- "post": {
- "operationId": "mysql-remove",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- }
- },
- "required": [
- "mysqlId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.saveEnvironment": {
- "post": {
- "operationId": "mysql-saveEnvironment",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "mysqlId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.update": {
- "post": {
- "operationId": "mysql-update",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "databaseRootPassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "dockerImage": {
- "type": "string",
- "default": "mysql:8"
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "string",
- "nullable": true
- },
- "memoryLimit": {
- "type": "string",
- "nullable": true
- },
- "cpuReservation": {
- "type": "string",
- "nullable": true
- },
- "cpuLimit": {
- "type": "string",
- "nullable": true
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- },
- "applicationStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- },
- "healthCheckSwarm": {
- "type": "object",
- "properties": {
- "Test": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Interval": {
- "type": "number"
- },
- "Timeout": {
- "type": "number"
- },
- "StartPeriod": {
- "type": "number"
- },
- "Retries": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "restartPolicySwarm": {
- "type": "object",
- "properties": {
- "Condition": {
- "type": "string"
- },
- "Delay": {
- "type": "number"
- },
- "MaxAttempts": {
- "type": "number"
- },
- "Window": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "placementSwarm": {
- "type": "object",
- "properties": {
- "Constraints": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Preferences": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Spread": {
- "type": "object",
- "properties": {
- "SpreadDescriptor": {
- "type": "string"
- }
- },
- "required": [
- "SpreadDescriptor"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "Spread"
- ],
- "additionalProperties": false
- }
- },
- "MaxReplicas": {
- "type": "number"
- },
- "Platforms": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Architecture": {
- "type": "string"
- },
- "OS": {
- "type": "string"
- }
- },
- "required": [
- "Architecture",
- "OS"
- ],
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "updateConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "rollbackConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "modeSwarm": {
- "type": "object",
- "properties": {
- "Replicated": {
- "type": "object",
- "properties": {
- "Replicas": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "Global": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- },
- "ReplicatedJob": {
- "type": "object",
- "properties": {
- "MaxConcurrent": {
- "type": "number"
- },
- "TotalCompletions": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "GlobalJob": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "labelsSwarm": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "nullable": true
- },
- "networkSwarm": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Target": {
- "type": "string"
- },
- "Aliases": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "DriverOpts": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false
- },
- "nullable": true
- },
- "stopGracePeriodSwarm": {
- "type": "integer",
- "nullable": true
- },
- "endpointSpecSwarm": {
- "type": "object",
- "properties": {
- "Mode": {
- "type": "string"
- },
- "Ports": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Protocol": {
- "type": "string"
- },
- "TargetPort": {
- "type": "number"
- },
- "PublishedPort": {
- "type": "number"
- },
- "PublishMode": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "replicas": {
- "type": "number"
- },
- "createdAt": {
- "type": "string"
- },
- "environmentId": {
- "type": "string"
- }
- },
- "required": [
- "mysqlId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.move": {
- "post": {
- "operationId": "mysql-move",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- },
- "targetEnvironmentId": {
- "type": "string"
- }
- },
- "required": [
- "mysqlId",
- "targetEnvironmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.rebuild": {
- "post": {
- "operationId": "mysql-rebuild",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- }
- },
- "required": [
- "mysqlId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.create": {
- "post": {
- "operationId": "postgres-create",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string"
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "dockerImage": {
- "type": "string",
- "default": "postgres:15"
- },
- "environmentId": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "name",
- "appName",
- "databaseName",
- "databaseUser",
- "databasePassword",
- "environmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.one": {
- "get": {
- "operationId": "postgres-one",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "postgresId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.start": {
- "post": {
- "operationId": "postgres-start",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- }
- },
- "required": [
- "postgresId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.stop": {
- "post": {
- "operationId": "postgres-stop",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- }
- },
- "required": [
- "postgresId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.saveExternalPort": {
- "post": {
- "operationId": "postgres-saveExternalPort",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- }
- },
- "required": [
- "postgresId",
- "externalPort"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.deploy": {
- "post": {
- "operationId": "postgres-deploy",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- }
- },
- "required": [
- "postgresId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.changeStatus": {
- "post": {
- "operationId": "postgres-changeStatus",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- }
- },
- "required": [
- "postgresId",
- "applicationStatus"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.remove": {
- "post": {
- "operationId": "postgres-remove",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- }
- },
- "required": [
- "postgresId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.saveEnvironment": {
- "post": {
- "operationId": "postgres-saveEnvironment",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "postgresId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.reload": {
- "post": {
- "operationId": "postgres-reload",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- },
- "appName": {
- "type": "string"
- }
- },
- "required": [
- "postgresId",
- "appName"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.update": {
- "post": {
- "operationId": "postgres-update",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string"
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "dockerImage": {
- "type": "string",
- "default": "postgres:15"
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "string",
- "nullable": true
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- },
- "memoryLimit": {
- "type": "string",
- "nullable": true
- },
- "cpuReservation": {
- "type": "string",
- "nullable": true
- },
- "cpuLimit": {
- "type": "string",
- "nullable": true
- },
- "applicationStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- },
- "healthCheckSwarm": {
- "type": "object",
- "properties": {
- "Test": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Interval": {
- "type": "number"
- },
- "Timeout": {
- "type": "number"
- },
- "StartPeriod": {
- "type": "number"
- },
- "Retries": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "restartPolicySwarm": {
- "type": "object",
- "properties": {
- "Condition": {
- "type": "string"
- },
- "Delay": {
- "type": "number"
- },
- "MaxAttempts": {
- "type": "number"
- },
- "Window": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "placementSwarm": {
- "type": "object",
- "properties": {
- "Constraints": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Preferences": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Spread": {
- "type": "object",
- "properties": {
- "SpreadDescriptor": {
- "type": "string"
- }
- },
- "required": [
- "SpreadDescriptor"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "Spread"
- ],
- "additionalProperties": false
- }
- },
- "MaxReplicas": {
- "type": "number"
- },
- "Platforms": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Architecture": {
- "type": "string"
- },
- "OS": {
- "type": "string"
- }
- },
- "required": [
- "Architecture",
- "OS"
- ],
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "updateConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "rollbackConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "modeSwarm": {
- "type": "object",
- "properties": {
- "Replicated": {
- "type": "object",
- "properties": {
- "Replicas": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "Global": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- },
- "ReplicatedJob": {
- "type": "object",
- "properties": {
- "MaxConcurrent": {
- "type": "number"
- },
- "TotalCompletions": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "GlobalJob": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "labelsSwarm": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "nullable": true
- },
- "networkSwarm": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Target": {
- "type": "string"
- },
- "Aliases": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "DriverOpts": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false
- },
- "nullable": true
- },
- "stopGracePeriodSwarm": {
- "type": "integer",
- "nullable": true
- },
- "endpointSpecSwarm": {
- "type": "object",
- "properties": {
- "Mode": {
- "type": "string"
- },
- "Ports": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Protocol": {
- "type": "string"
- },
- "TargetPort": {
- "type": "number"
- },
- "PublishedPort": {
- "type": "number"
- },
- "PublishMode": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "replicas": {
- "type": "number"
- },
- "createdAt": {
- "type": "string"
- },
- "environmentId": {
- "type": "string"
- }
- },
- "required": [
- "postgresId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.move": {
- "post": {
- "operationId": "postgres-move",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- },
- "targetEnvironmentId": {
- "type": "string"
- }
- },
- "required": [
- "postgresId",
- "targetEnvironmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.rebuild": {
- "post": {
- "operationId": "postgres-rebuild",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- }
- },
- "required": [
- "postgresId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.create": {
- "post": {
- "operationId": "redis-create",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string"
- },
- "dockerImage": {
- "type": "string",
- "default": "redis:8"
- },
- "environmentId": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "name",
- "appName",
- "databasePassword",
- "environmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.one": {
- "get": {
- "operationId": "redis-one",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "redisId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.start": {
- "post": {
- "operationId": "redis-start",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- }
- },
- "required": [
- "redisId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.reload": {
- "post": {
- "operationId": "redis-reload",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- },
- "appName": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "redisId",
- "appName"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.stop": {
- "post": {
- "operationId": "redis-stop",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- }
- },
- "required": [
- "redisId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.saveExternalPort": {
- "post": {
- "operationId": "redis-saveExternalPort",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- }
- },
- "required": [
- "redisId",
- "externalPort"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.deploy": {
- "post": {
- "operationId": "redis-deploy",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- }
- },
- "required": [
- "redisId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.changeStatus": {
- "post": {
- "operationId": "redis-changeStatus",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- }
- },
- "required": [
- "redisId",
- "applicationStatus"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.remove": {
- "post": {
- "operationId": "redis-remove",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- }
- },
- "required": [
- "redisId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.saveEnvironment": {
- "post": {
- "operationId": "redis-saveEnvironment",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "redisId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.update": {
- "post": {
- "operationId": "redis-update",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databasePassword": {
- "type": "string"
- },
- "dockerImage": {
- "type": "string",
- "default": "redis:8"
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "string",
- "nullable": true
- },
- "memoryLimit": {
- "type": "string",
- "nullable": true
- },
- "cpuReservation": {
- "type": "string",
- "nullable": true
- },
- "cpuLimit": {
- "type": "string",
- "nullable": true
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- },
- "createdAt": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- },
- "healthCheckSwarm": {
- "type": "object",
- "properties": {
- "Test": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Interval": {
- "type": "number"
- },
- "Timeout": {
- "type": "number"
- },
- "StartPeriod": {
- "type": "number"
- },
- "Retries": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "restartPolicySwarm": {
- "type": "object",
- "properties": {
- "Condition": {
- "type": "string"
- },
- "Delay": {
- "type": "number"
- },
- "MaxAttempts": {
- "type": "number"
- },
- "Window": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "placementSwarm": {
- "type": "object",
- "properties": {
- "Constraints": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Preferences": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Spread": {
- "type": "object",
- "properties": {
- "SpreadDescriptor": {
- "type": "string"
- }
- },
- "required": [
- "SpreadDescriptor"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "Spread"
- ],
- "additionalProperties": false
- }
- },
- "MaxReplicas": {
- "type": "number"
- },
- "Platforms": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Architecture": {
- "type": "string"
- },
- "OS": {
- "type": "string"
- }
- },
- "required": [
- "Architecture",
- "OS"
- ],
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "updateConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "rollbackConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "modeSwarm": {
- "type": "object",
- "properties": {
- "Replicated": {
- "type": "object",
- "properties": {
- "Replicas": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "Global": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- },
- "ReplicatedJob": {
- "type": "object",
- "properties": {
- "MaxConcurrent": {
- "type": "number"
- },
- "TotalCompletions": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "GlobalJob": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "labelsSwarm": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "nullable": true
- },
- "networkSwarm": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Target": {
- "type": "string"
- },
- "Aliases": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "DriverOpts": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false
- },
- "nullable": true
- },
- "stopGracePeriodSwarm": {
- "type": "integer",
- "nullable": true
- },
- "endpointSpecSwarm": {
- "type": "object",
- "properties": {
- "Mode": {
- "type": "string"
- },
- "Ports": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Protocol": {
- "type": "string"
- },
- "TargetPort": {
- "type": "number"
- },
- "PublishedPort": {
- "type": "number"
- },
- "PublishMode": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "replicas": {
- "type": "number"
- },
- "environmentId": {
- "type": "string"
- }
- },
- "required": [
- "redisId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.move": {
- "post": {
- "operationId": "redis-move",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- },
- "targetEnvironmentId": {
- "type": "string"
- }
- },
- "required": [
- "redisId",
- "targetEnvironmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.rebuild": {
- "post": {
- "operationId": "redis-rebuild",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- }
- },
- "required": [
- "redisId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.create": {
- "post": {
- "operationId": "mongo-create",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "dockerImage": {
- "type": "string",
- "default": "mongo:15"
- },
- "environmentId": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "serverId": {
- "type": "string",
- "nullable": true
- },
- "replicaSets": {
- "type": "boolean",
- "default": false,
- "nullable": true
- }
- },
- "required": [
- "name",
- "appName",
- "environmentId",
- "databaseUser",
- "databasePassword"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.one": {
- "get": {
- "operationId": "mongo-one",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "mongoId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.start": {
- "post": {
- "operationId": "mongo-start",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- }
- },
- "required": [
- "mongoId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.stop": {
- "post": {
- "operationId": "mongo-stop",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- }
- },
- "required": [
- "mongoId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.saveExternalPort": {
- "post": {
- "operationId": "mongo-saveExternalPort",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- }
- },
- "required": [
- "mongoId",
- "externalPort"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.deploy": {
- "post": {
- "operationId": "mongo-deploy",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- }
- },
- "required": [
- "mongoId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.changeStatus": {
- "post": {
- "operationId": "mongo-changeStatus",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- }
- },
- "required": [
- "mongoId",
- "applicationStatus"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.reload": {
- "post": {
- "operationId": "mongo-reload",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- },
- "appName": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "mongoId",
- "appName"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.remove": {
- "post": {
- "operationId": "mongo-remove",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- }
- },
- "required": [
- "mongoId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.saveEnvironment": {
- "post": {
- "operationId": "mongo-saveEnvironment",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "mongoId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.update": {
- "post": {
- "operationId": "mongo-update",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "dockerImage": {
- "type": "string",
- "default": "mongo:15"
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "string",
- "nullable": true
- },
- "memoryLimit": {
- "type": "string",
- "nullable": true
- },
- "cpuReservation": {
- "type": "string",
- "nullable": true
- },
- "cpuLimit": {
- "type": "string",
- "nullable": true
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- },
- "applicationStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- },
- "healthCheckSwarm": {
- "type": "object",
- "properties": {
- "Test": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Interval": {
- "type": "number"
- },
- "Timeout": {
- "type": "number"
- },
- "StartPeriod": {
- "type": "number"
- },
- "Retries": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "restartPolicySwarm": {
- "type": "object",
- "properties": {
- "Condition": {
- "type": "string"
- },
- "Delay": {
- "type": "number"
- },
- "MaxAttempts": {
- "type": "number"
- },
- "Window": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "placementSwarm": {
- "type": "object",
- "properties": {
- "Constraints": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Preferences": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Spread": {
- "type": "object",
- "properties": {
- "SpreadDescriptor": {
- "type": "string"
- }
- },
- "required": [
- "SpreadDescriptor"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "Spread"
- ],
- "additionalProperties": false
- }
- },
- "MaxReplicas": {
- "type": "number"
- },
- "Platforms": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Architecture": {
- "type": "string"
- },
- "OS": {
- "type": "string"
- }
- },
- "required": [
- "Architecture",
- "OS"
- ],
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "updateConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "rollbackConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "modeSwarm": {
- "type": "object",
- "properties": {
- "Replicated": {
- "type": "object",
- "properties": {
- "Replicas": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "Global": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- },
- "ReplicatedJob": {
- "type": "object",
- "properties": {
- "MaxConcurrent": {
- "type": "number"
- },
- "TotalCompletions": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "GlobalJob": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "labelsSwarm": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "nullable": true
- },
- "networkSwarm": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Target": {
- "type": "string"
- },
- "Aliases": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "DriverOpts": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false
- },
- "nullable": true
- },
- "stopGracePeriodSwarm": {
- "type": "integer",
- "nullable": true
- },
- "endpointSpecSwarm": {
- "type": "object",
- "properties": {
- "Mode": {
- "type": "string"
- },
- "Ports": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Protocol": {
- "type": "string"
- },
- "TargetPort": {
- "type": "number"
- },
- "PublishedPort": {
- "type": "number"
- },
- "PublishMode": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "replicas": {
- "type": "number"
- },
- "createdAt": {
- "type": "string"
- },
- "environmentId": {
- "type": "string"
- },
- "replicaSets": {
- "type": "boolean",
- "default": false,
- "nullable": true
- }
- },
- "required": [
- "mongoId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.move": {
- "post": {
- "operationId": "mongo-move",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- },
- "targetEnvironmentId": {
- "type": "string"
- }
- },
- "required": [
- "mongoId",
- "targetEnvironmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.rebuild": {
- "post": {
- "operationId": "mongo-rebuild",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- }
- },
- "required": [
- "mongoId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.create": {
- "post": {
- "operationId": "mariadb-create",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "dockerImage": {
- "type": "string",
- "default": "mariadb:6"
- },
- "databaseRootPassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "environmentId": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "serverId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "name",
- "appName",
- "databaseRootPassword",
- "environmentId",
- "databaseName",
- "databaseUser",
- "databasePassword"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.one": {
- "get": {
- "operationId": "mariadb-one",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "mariadbId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.start": {
- "post": {
- "operationId": "mariadb-start",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- }
- },
- "required": [
- "mariadbId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.stop": {
- "post": {
- "operationId": "mariadb-stop",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- }
- },
- "required": [
- "mariadbId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.saveExternalPort": {
- "post": {
- "operationId": "mariadb-saveExternalPort",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- }
- },
- "required": [
- "mariadbId",
- "externalPort"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.deploy": {
- "post": {
- "operationId": "mariadb-deploy",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- }
- },
- "required": [
- "mariadbId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.changeStatus": {
- "post": {
- "operationId": "mariadb-changeStatus",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- }
- },
- "required": [
- "mariadbId",
- "applicationStatus"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.remove": {
- "post": {
- "operationId": "mariadb-remove",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- }
- },
- "required": [
- "mariadbId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.saveEnvironment": {
- "post": {
- "operationId": "mariadb-saveEnvironment",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "mariadbId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.reload": {
- "post": {
- "operationId": "mariadb-reload",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- },
- "appName": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "mariadbId",
- "appName"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.update": {
- "post": {
- "operationId": "mariadb-update",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "databaseRootPassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "dockerImage": {
- "type": "string",
- "default": "mariadb:6"
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "string",
- "nullable": true
- },
- "memoryLimit": {
- "type": "string",
- "nullable": true
- },
- "cpuReservation": {
- "type": "string",
- "nullable": true
- },
- "cpuLimit": {
- "type": "string",
- "nullable": true
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- },
- "applicationStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- },
- "healthCheckSwarm": {
- "type": "object",
- "properties": {
- "Test": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Interval": {
- "type": "number"
- },
- "Timeout": {
- "type": "number"
- },
- "StartPeriod": {
- "type": "number"
- },
- "Retries": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "restartPolicySwarm": {
- "type": "object",
- "properties": {
- "Condition": {
- "type": "string"
- },
- "Delay": {
- "type": "number"
- },
- "MaxAttempts": {
- "type": "number"
- },
- "Window": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "placementSwarm": {
- "type": "object",
- "properties": {
- "Constraints": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Preferences": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Spread": {
- "type": "object",
- "properties": {
- "SpreadDescriptor": {
- "type": "string"
- }
- },
- "required": [
- "SpreadDescriptor"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "Spread"
- ],
- "additionalProperties": false
- }
- },
- "MaxReplicas": {
- "type": "number"
- },
- "Platforms": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Architecture": {
- "type": "string"
- },
- "OS": {
- "type": "string"
- }
- },
- "required": [
- "Architecture",
- "OS"
- ],
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "updateConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "rollbackConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "modeSwarm": {
- "type": "object",
- "properties": {
- "Replicated": {
- "type": "object",
- "properties": {
- "Replicas": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "Global": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- },
- "ReplicatedJob": {
- "type": "object",
- "properties": {
- "MaxConcurrent": {
- "type": "number"
- },
- "TotalCompletions": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "GlobalJob": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "labelsSwarm": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "nullable": true
- },
- "networkSwarm": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Target": {
- "type": "string"
- },
- "Aliases": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "DriverOpts": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false
- },
- "nullable": true
- },
- "stopGracePeriodSwarm": {
- "type": "integer",
- "nullable": true
- },
- "endpointSpecSwarm": {
- "type": "object",
- "properties": {
- "Mode": {
- "type": "string"
- },
- "Ports": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Protocol": {
- "type": "string"
- },
- "TargetPort": {
- "type": "number"
- },
- "PublishedPort": {
- "type": "number"
- },
- "PublishMode": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "replicas": {
- "type": "number"
- },
- "createdAt": {
- "type": "string"
- },
- "environmentId": {
- "type": "string"
- }
- },
- "required": [
- "mariadbId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.move": {
- "post": {
- "operationId": "mariadb-move",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- },
- "targetEnvironmentId": {
- "type": "string"
- }
- },
- "required": [
- "mariadbId",
- "targetEnvironmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.rebuild": {
- "post": {
- "operationId": "mariadb-rebuild",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- }
- },
- "required": [
- "mariadbId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.create": {
- "post": {
- "operationId": "compose-create",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "environmentId": {
- "type": "string"
- },
- "composeType": {
- "type": "string",
- "enum": [
- "docker-compose",
- "stack"
- ]
- },
- "appName": {
- "type": "string"
- },
- "serverId": {
- "type": "string",
- "nullable": true
- },
- "composeFile": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "environmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.one": {
- "get": {
- "operationId": "compose-one",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.update": {
- "post": {
- "operationId": "compose-update",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string"
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "composeFile": {
- "type": "string"
- },
- "refreshToken": {
- "type": "string",
- "nullable": true
- },
- "sourceType": {
- "type": "string",
- "enum": [
- "git",
- "github",
- "gitlab",
- "bitbucket",
- "gitea",
- "raw"
- ]
- },
- "composeType": {
- "type": "string",
- "enum": [
- "docker-compose",
- "stack"
- ]
- },
- "repository": {
- "type": "string",
- "nullable": true
- },
- "owner": {
- "type": "string",
- "nullable": true
- },
- "branch": {
- "type": "string",
- "nullable": true
- },
- "autoDeploy": {
- "type": "boolean",
- "nullable": true
- },
- "gitlabProjectId": {
- "type": "number",
- "nullable": true
- },
- "gitlabRepository": {
- "type": "string",
- "nullable": true
- },
- "gitlabOwner": {
- "type": "string",
- "nullable": true
- },
- "gitlabBranch": {
- "type": "string",
- "nullable": true
- },
- "gitlabPathNamespace": {
- "type": "string",
- "nullable": true
- },
- "bitbucketRepository": {
- "type": "string",
- "nullable": true
- },
- "bitbucketOwner": {
- "type": "string",
- "nullable": true
- },
- "bitbucketBranch": {
- "type": "string",
- "nullable": true
- },
- "giteaRepository": {
- "type": "string",
- "nullable": true
- },
- "giteaOwner": {
- "type": "string",
- "nullable": true
- },
- "giteaBranch": {
- "type": "string",
- "nullable": true
- },
- "customGitUrl": {
- "type": "string",
- "nullable": true
- },
- "customGitBranch": {
- "type": "string",
- "nullable": true
- },
- "customGitSSHKeyId": {
- "type": "string",
- "nullable": true
- },
- "command": {
- "type": "string"
- },
- "enableSubmodules": {
- "type": "boolean"
- },
- "composePath": {
- "type": "string",
- "minLength": 1
- },
- "suffix": {
- "type": "string"
- },
- "randomize": {
- "type": "boolean"
- },
- "isolatedDeployment": {
- "type": "boolean"
- },
- "isolatedDeploymentsVolume": {
- "type": "boolean"
- },
- "triggerType": {
- "type": "string",
- "enum": [
- "push",
- "tag"
- ],
- "nullable": true
- },
- "composeStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- },
- "environmentId": {
- "type": "string"
- },
- "createdAt": {
- "type": "string"
- },
- "watchPaths": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "githubId": {
- "type": "string",
- "nullable": true
- },
- "gitlabId": {
- "type": "string",
- "nullable": true
- },
- "bitbucketId": {
- "type": "string",
- "nullable": true
- },
- "giteaId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.delete": {
- "post": {
- "operationId": "compose-delete",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- },
- "deleteVolumes": {
- "type": "boolean"
- }
- },
- "required": [
- "composeId",
- "deleteVolumes"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.cleanQueues": {
- "post": {
- "operationId": "compose-cleanQueues",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.killBuild": {
- "post": {
- "operationId": "compose-killBuild",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.loadServices": {
- "get": {
- "operationId": "compose-loadServices",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "type",
- "in": "query",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "not": {}
- },
- {
- "type": "string",
- "enum": [
- "fetch",
- "cache"
- ]
- }
- ],
- "default": "cache"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.loadMountsByService": {
- "get": {
- "operationId": "compose-loadMountsByService",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "serviceName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.fetchSourceType": {
- "post": {
- "operationId": "compose-fetchSourceType",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.randomizeCompose": {
- "post": {
- "operationId": "compose-randomizeCompose",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- },
- "suffix": {
- "type": "string"
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.isolatedDeployment": {
- "post": {
- "operationId": "compose-isolatedDeployment",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- },
- "suffix": {
- "type": "string"
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.getConvertedCompose": {
- "get": {
- "operationId": "compose-getConvertedCompose",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.deploy": {
- "post": {
- "operationId": "compose-deploy",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- },
- "title": {
- "type": "string"
- },
- "description": {
- "type": "string"
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.redeploy": {
- "post": {
- "operationId": "compose-redeploy",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- },
- "title": {
- "type": "string"
- },
- "description": {
- "type": "string"
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.stop": {
- "post": {
- "operationId": "compose-stop",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.start": {
- "post": {
- "operationId": "compose-start",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.getDefaultCommand": {
- "get": {
- "operationId": "compose-getDefaultCommand",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.refreshToken": {
- "post": {
- "operationId": "compose-refreshToken",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.deployTemplate": {
- "post": {
- "operationId": "compose-deployTemplate",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "environmentId": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- },
- "id": {
- "type": "string"
- },
- "baseUrl": {
- "type": "string"
- }
- },
- "required": [
- "environmentId",
- "id"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.templates": {
- "get": {
- "operationId": "compose-templates",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "baseUrl",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.getTags": {
- "get": {
- "operationId": "compose-getTags",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "baseUrl",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.disconnectGitProvider": {
- "post": {
- "operationId": "compose-disconnectGitProvider",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.move": {
- "post": {
- "operationId": "compose-move",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string"
- },
- "targetEnvironmentId": {
- "type": "string"
- }
- },
- "required": [
- "composeId",
- "targetEnvironmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.processTemplate": {
- "post": {
- "operationId": "compose-processTemplate",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "base64": {
- "type": "string"
- },
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "base64",
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.import": {
- "post": {
- "operationId": "compose-import",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "base64": {
- "type": "string"
- },
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "base64",
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.cancelDeployment": {
- "post": {
- "operationId": "compose-cancelDeployment",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.all": {
- "get": {
- "operationId": "user-all",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.one": {
- "get": {
- "operationId": "user-one",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "userId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.get": {
- "get": {
- "operationId": "user-get",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.haveRootAccess": {
- "get": {
- "operationId": "user-haveRootAccess",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.getBackups": {
- "get": {
- "operationId": "user-getBackups",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.getServerMetrics": {
- "get": {
- "operationId": "user-getServerMetrics",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.update": {
- "post": {
- "operationId": "user-update",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string"
- },
- "isRegistered": {
- "type": "boolean"
- },
- "expirationDate": {
- "type": "string"
- },
- "createdAt2": {
- "type": "string"
- },
- "createdAt": {
- "type": "string",
- "format": "date-time",
- "nullable": true
- },
- "twoFactorEnabled": {
- "type": "boolean",
- "nullable": true
- },
- "email": {
- "type": "string",
- "format": "email",
- "minLength": 1
- },
- "emailVerified": {
- "type": "boolean"
- },
- "image": {
- "type": "string",
- "nullable": true
- },
- "banned": {
- "type": "boolean",
- "nullable": true
- },
- "banReason": {
- "type": "string",
- "nullable": true
- },
- "banExpires": {
- "type": "string",
- "format": "date-time",
- "nullable": true
- },
- "updatedAt": {
- "type": "string",
- "format": "date-time"
- },
- "serverIp": {
- "type": "string",
- "nullable": true
- },
- "certificateType": {
- "type": "string",
- "enum": [
- "letsencrypt",
- "none",
- "custom"
- ]
- },
- "https": {
- "type": "boolean"
- },
- "host": {
- "type": "string",
- "nullable": true
- },
- "letsEncryptEmail": {
- "type": "string",
- "nullable": true
- },
- "sshPrivateKey": {
- "type": "string",
- "nullable": true
- },
- "enableDockerCleanup": {
- "type": "boolean"
- },
- "logCleanupCron": {
- "type": "string",
- "nullable": true
- },
- "enablePaidFeatures": {
- "type": "boolean"
- },
- "allowImpersonation": {
- "type": "boolean"
- },
- "metricsConfig": {
- "type": "object",
- "properties": {
- "server": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "enum": [
- "Dokploy",
- "Remote"
- ]
- },
- "refreshRate": {
- "type": "number"
- },
- "port": {
- "type": "number"
- },
- "token": {
- "type": "string"
- },
- "urlCallback": {
- "type": "string"
- },
- "retentionDays": {
- "type": "number"
- },
- "cronJob": {
- "type": "string"
- },
- "thresholds": {
- "type": "object",
- "properties": {
- "cpu": {
- "type": "number"
- },
- "memory": {
- "type": "number"
- }
- },
- "required": [
- "cpu",
- "memory"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "type",
- "refreshRate",
- "port",
- "token",
- "urlCallback",
- "retentionDays",
- "cronJob",
- "thresholds"
- ],
- "additionalProperties": false
- },
- "containers": {
- "type": "object",
- "properties": {
- "refreshRate": {
- "type": "number"
- },
- "services": {
- "type": "object",
- "properties": {
- "include": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "exclude": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- },
- "required": [
- "include",
- "exclude"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "refreshRate",
- "services"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "server",
- "containers"
- ],
- "additionalProperties": false
- },
- "cleanupCacheApplications": {
- "type": "boolean"
- },
- "cleanupCacheOnPreviews": {
- "type": "boolean"
- },
- "cleanupCacheOnCompose": {
- "type": "boolean"
- },
- "stripeCustomerId": {
- "type": "string",
- "nullable": true
- },
- "stripeSubscriptionId": {
- "type": "string",
- "nullable": true
- },
- "serversQuantity": {
- "type": "number"
- },
- "password": {
- "type": "string"
- },
- "currentPassword": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.getUserByToken": {
- "get": {
- "operationId": "user-getUserByToken",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "token",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.getMetricsToken": {
- "get": {
- "operationId": "user-getMetricsToken",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.remove": {
- "post": {
- "operationId": "user-remove",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "userId": {
- "type": "string"
- }
- },
- "required": [
- "userId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.assignPermissions": {
- "post": {
- "operationId": "user-assignPermissions",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string",
- "minLength": 1
- },
- "accessedProjects": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "accessedEnvironments": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "accessedServices": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "canCreateProjects": {
- "type": "boolean"
- },
- "canCreateServices": {
- "type": "boolean"
- },
- "canDeleteProjects": {
- "type": "boolean"
- },
- "canDeleteServices": {
- "type": "boolean"
- },
- "canAccessToDocker": {
- "type": "boolean"
- },
- "canAccessToTraefikFiles": {
- "type": "boolean"
- },
- "canAccessToAPI": {
- "type": "boolean"
- },
- "canAccessToSSHKeys": {
- "type": "boolean"
- },
- "canAccessToGitProviders": {
- "type": "boolean"
- },
- "canDeleteEnvironments": {
- "type": "boolean"
- },
- "canCreateEnvironments": {
- "type": "boolean"
- }
- },
- "required": [
- "id",
- "accessedProjects",
- "accessedEnvironments",
- "accessedServices",
- "canCreateProjects",
- "canCreateServices",
- "canDeleteProjects",
- "canDeleteServices",
- "canAccessToDocker",
- "canAccessToTraefikFiles",
- "canAccessToAPI",
- "canAccessToSSHKeys",
- "canAccessToGitProviders",
- "canDeleteEnvironments",
- "canCreateEnvironments"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.getInvitations": {
- "get": {
- "operationId": "user-getInvitations",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.getContainerMetrics": {
- "get": {
- "operationId": "user-getContainerMetrics",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "url",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "token",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "appName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "dataPoints",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.generateToken": {
- "post": {
- "operationId": "user-generateToken",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.deleteApiKey": {
- "post": {
- "operationId": "user-deleteApiKey",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "apiKeyId": {
- "type": "string"
- }
- },
- "required": [
- "apiKeyId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.createApiKey": {
- "post": {
- "operationId": "user-createApiKey",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "prefix": {
- "type": "string"
- },
- "expiresIn": {
- "type": "number"
- },
- "metadata": {
- "type": "object",
- "properties": {
- "organizationId": {
- "type": "string"
- }
- },
- "required": [
- "organizationId"
- ],
- "additionalProperties": false
- },
- "rateLimitEnabled": {
- "type": "boolean"
- },
- "rateLimitTimeWindow": {
- "type": "number"
- },
- "rateLimitMax": {
- "type": "number"
- },
- "remaining": {
- "type": "number"
- },
- "refillAmount": {
- "type": "number"
- },
- "refillInterval": {
- "type": "number"
- }
- },
- "required": [
- "name",
- "metadata"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.checkUserOrganizations": {
- "get": {
- "operationId": "user-checkUserOrganizations",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "userId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.sendInvitation": {
- "post": {
- "operationId": "user-sendInvitation",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "invitationId": {
- "type": "string",
- "minLength": 1
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "invitationId",
- "notificationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.create": {
- "post": {
- "operationId": "domain-create",
- "tags": [
- "domain"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "host": {
- "type": "string",
- "minLength": 1
- },
- "path": {
- "type": "string",
- "minLength": 1,
- "nullable": true
- },
- "port": {
- "type": "number",
- "minimum": 1,
- "maximum": 65535,
- "nullable": true
- },
- "https": {
- "type": "boolean"
- },
- "applicationId": {
- "type": "string",
- "nullable": true
- },
- "certificateType": {
- "type": "string",
- "enum": [
- "letsencrypt",
- "none",
- "custom"
- ]
- },
- "customCertResolver": {
- "type": "string",
- "nullable": true
- },
- "composeId": {
- "type": "string",
- "nullable": true
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "domainType": {
- "type": "string",
- "enum": [
- "compose",
- "application",
- "preview"
- ],
- "nullable": true
- },
- "previewDeploymentId": {
- "type": "string",
- "nullable": true
- },
- "internalPath": {
- "type": "string",
- "nullable": true
- },
- "stripPath": {
- "type": "boolean"
- }
- },
- "required": [
- "host"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.byApplicationId": {
- "get": {
- "operationId": "domain-byApplicationId",
- "tags": [
- "domain"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "applicationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.byComposeId": {
- "get": {
- "operationId": "domain-byComposeId",
- "tags": [
- "domain"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.generateDomain": {
- "post": {
- "operationId": "domain-generateDomain",
- "tags": [
- "domain"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appName": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "appName"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.canGenerateTraefikMeDomains": {
- "get": {
- "operationId": "domain-canGenerateTraefikMeDomains",
- "tags": [
- "domain"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.update": {
- "post": {
- "operationId": "domain-update",
- "tags": [
- "domain"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "host": {
- "type": "string",
- "minLength": 1
- },
- "path": {
- "type": "string",
- "minLength": 1,
- "nullable": true
- },
- "port": {
- "type": "number",
- "minimum": 1,
- "maximum": 65535,
- "nullable": true
- },
- "https": {
- "type": "boolean"
- },
- "certificateType": {
- "type": "string",
- "enum": [
- "letsencrypt",
- "none",
- "custom"
- ]
- },
- "customCertResolver": {
- "type": "string",
- "nullable": true
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "domainType": {
- "type": "string",
- "enum": [
- "compose",
- "application",
- "preview"
- ],
- "nullable": true
- },
- "internalPath": {
- "type": "string",
- "nullable": true
- },
- "stripPath": {
- "type": "boolean"
- },
- "domainId": {
- "type": "string"
- }
- },
- "required": [
- "host",
- "domainId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.one": {
- "get": {
- "operationId": "domain-one",
- "tags": [
- "domain"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "domainId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.delete": {
- "post": {
- "operationId": "domain-delete",
- "tags": [
- "domain"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "domainId": {
- "type": "string"
- }
- },
- "required": [
- "domainId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.validateDomain": {
- "post": {
- "operationId": "domain-validateDomain",
- "tags": [
- "domain"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "domain": {
- "type": "string"
- },
- "serverIp": {
- "type": "string"
- }
- },
- "required": [
- "domain"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.create": {
- "post": {
- "operationId": "destination-create",
- "tags": [
- "destination"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "provider": {
- "type": "string",
- "nullable": true
- },
- "accessKey": {
- "type": "string"
- },
- "bucket": {
- "type": "string"
- },
- "region": {
- "type": "string"
- },
- "endpoint": {
- "type": "string"
- },
- "secretAccessKey": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "provider",
- "accessKey",
- "bucket",
- "region",
- "endpoint",
- "secretAccessKey"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.testConnection": {
- "post": {
- "operationId": "destination-testConnection",
- "tags": [
- "destination"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "provider": {
- "type": "string",
- "nullable": true
- },
- "accessKey": {
- "type": "string"
- },
- "bucket": {
- "type": "string"
- },
- "region": {
- "type": "string"
- },
- "endpoint": {
- "type": "string"
- },
- "secretAccessKey": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "provider",
- "accessKey",
- "bucket",
- "region",
- "endpoint",
- "secretAccessKey"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.one": {
- "get": {
- "operationId": "destination-one",
- "tags": [
- "destination"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "destinationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.all": {
- "get": {
- "operationId": "destination-all",
- "tags": [
- "destination"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.remove": {
- "post": {
- "operationId": "destination-remove",
- "tags": [
- "destination"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "destinationId": {
- "type": "string"
- }
- },
- "required": [
- "destinationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.update": {
- "post": {
- "operationId": "destination-update",
- "tags": [
- "destination"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "accessKey": {
- "type": "string"
- },
- "bucket": {
- "type": "string"
- },
- "region": {
- "type": "string"
- },
- "endpoint": {
- "type": "string"
- },
- "secretAccessKey": {
- "type": "string"
- },
- "destinationId": {
- "type": "string"
- },
- "provider": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "accessKey",
- "bucket",
- "region",
- "endpoint",
- "secretAccessKey",
- "destinationId",
- "provider"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.create": {
- "post": {
- "operationId": "backup-create",
- "tags": [
- "backup"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "schedule": {
- "type": "string"
- },
- "enabled": {
- "type": "boolean",
- "nullable": true
- },
- "prefix": {
- "type": "string",
- "minLength": 1
- },
- "destinationId": {
- "type": "string"
- },
- "keepLatestCount": {
- "type": "number",
- "nullable": true
- },
- "database": {
- "type": "string",
- "minLength": 1
- },
- "mariadbId": {
- "type": "string",
- "nullable": true
- },
- "mysqlId": {
- "type": "string",
- "nullable": true
- },
- "postgresId": {
- "type": "string",
- "nullable": true
- },
- "mongoId": {
- "type": "string",
- "nullable": true
- },
- "databaseType": {
- "type": "string",
- "enum": [
- "postgres",
- "mariadb",
- "mysql",
- "mongo",
- "web-server"
- ]
- },
- "userId": {
- "type": "string",
- "nullable": true
- },
- "backupType": {
- "type": "string",
- "enum": [
- "database",
- "compose"
- ]
- },
- "composeId": {
- "type": "string",
- "nullable": true
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "metadata": {
- "nullable": true
- }
- },
- "required": [
- "schedule",
- "prefix",
- "destinationId",
- "database",
- "databaseType"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.one": {
- "get": {
- "operationId": "backup-one",
- "tags": [
- "backup"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "backupId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.update": {
- "post": {
- "operationId": "backup-update",
- "tags": [
- "backup"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "schedule": {
- "type": "string"
- },
- "enabled": {
- "type": "boolean",
- "nullable": true
- },
- "prefix": {
- "type": "string",
- "minLength": 1
- },
- "backupId": {
- "type": "string"
- },
- "destinationId": {
- "type": "string"
- },
- "database": {
- "type": "string",
- "minLength": 1
- },
- "keepLatestCount": {
- "type": "number",
- "nullable": true
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "metadata": {
- "nullable": true
- },
- "databaseType": {
- "type": "string",
- "enum": [
- "postgres",
- "mariadb",
- "mysql",
- "mongo",
- "web-server"
- ]
- }
- },
- "required": [
- "schedule",
- "prefix",
- "backupId",
- "destinationId",
- "database",
- "serviceName",
- "databaseType"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.remove": {
- "post": {
- "operationId": "backup-remove",
- "tags": [
- "backup"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": [
- "backupId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.manualBackupPostgres": {
- "post": {
- "operationId": "backup-manualBackupPostgres",
- "tags": [
- "backup"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": [
- "backupId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.manualBackupMySql": {
- "post": {
- "operationId": "backup-manualBackupMySql",
- "tags": [
- "backup"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": [
- "backupId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.manualBackupMariadb": {
- "post": {
- "operationId": "backup-manualBackupMariadb",
- "tags": [
- "backup"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": [
- "backupId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.manualBackupCompose": {
- "post": {
- "operationId": "backup-manualBackupCompose",
- "tags": [
- "backup"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": [
- "backupId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.manualBackupMongo": {
- "post": {
- "operationId": "backup-manualBackupMongo",
- "tags": [
- "backup"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": [
- "backupId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.manualBackupWebServer": {
- "post": {
- "operationId": "backup-manualBackupWebServer",
- "tags": [
- "backup"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": [
- "backupId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.listBackupFiles": {
- "get": {
- "operationId": "backup-listBackupFiles",
- "tags": [
- "backup"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "destinationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "search",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/deployment.all": {
- "get": {
- "operationId": "deployment-all",
- "tags": [
- "deployment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "applicationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/deployment.allByCompose": {
- "get": {
- "operationId": "deployment-allByCompose",
- "tags": [
- "deployment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/deployment.allByServer": {
- "get": {
- "operationId": "deployment-allByServer",
- "tags": [
- "deployment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/deployment.allByType": {
- "get": {
- "operationId": "deployment-allByType",
- "tags": [
- "deployment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "id",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "type",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "enum": [
- "application",
- "compose",
- "server",
- "schedule",
- "previewDeployment",
- "backup",
- "volumeBackup"
- ]
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/deployment.killProcess": {
- "post": {
- "operationId": "deployment-killProcess",
- "tags": [
- "deployment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "deploymentId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "deploymentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/previewDeployment.all": {
- "get": {
- "operationId": "previewDeployment-all",
- "tags": [
- "previewDeployment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "applicationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/previewDeployment.delete": {
- "post": {
- "operationId": "previewDeployment-delete",
- "tags": [
- "previewDeployment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "previewDeploymentId": {
- "type": "string"
- }
- },
- "required": [
- "previewDeploymentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/previewDeployment.one": {
- "get": {
- "operationId": "previewDeployment-one",
- "tags": [
- "previewDeployment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "previewDeploymentId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mounts.create": {
- "post": {
- "operationId": "mounts-create",
- "tags": [
- "mounts"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "enum": [
- "bind",
- "volume",
- "file"
- ]
- },
- "hostPath": {
- "type": "string",
- "nullable": true
- },
- "volumeName": {
- "type": "string",
- "nullable": true
- },
- "content": {
- "type": "string",
- "nullable": true
- },
- "mountPath": {
- "type": "string",
- "minLength": 1
- },
- "serviceType": {
- "type": "string",
- "enum": [
- "application",
- "postgres",
- "mysql",
- "mariadb",
- "mongo",
- "redis",
- "compose"
- ],
- "default": "application"
- },
- "filePath": {
- "type": "string",
- "nullable": true
- },
- "serviceId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "type",
- "mountPath",
- "serviceId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mounts.remove": {
- "post": {
- "operationId": "mounts-remove",
- "tags": [
- "mounts"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mountId": {
- "type": "string"
- }
- },
- "required": [
- "mountId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mounts.one": {
- "get": {
- "operationId": "mounts-one",
- "tags": [
- "mounts"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "mountId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mounts.update": {
- "post": {
- "operationId": "mounts-update",
- "tags": [
- "mounts"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mountId": {
- "type": "string",
- "minLength": 1
- },
- "type": {
- "type": "string",
- "enum": [
- "bind",
- "volume",
- "file"
- ]
- },
- "hostPath": {
- "type": "string",
- "nullable": true
- },
- "volumeName": {
- "type": "string",
- "nullable": true
- },
- "filePath": {
- "type": "string",
- "nullable": true
- },
- "content": {
- "type": "string",
- "nullable": true
- },
- "serviceType": {
- "type": "string",
- "enum": [
- "application",
- "postgres",
- "mysql",
- "mariadb",
- "mongo",
- "redis",
- "compose"
- ],
- "default": "application"
- },
- "mountPath": {
- "type": "string",
- "minLength": 1
- },
- "applicationId": {
- "type": "string",
- "nullable": true
- },
- "postgresId": {
- "type": "string",
- "nullable": true
- },
- "mariadbId": {
- "type": "string",
- "nullable": true
- },
- "mongoId": {
- "type": "string",
- "nullable": true
- },
- "mysqlId": {
- "type": "string",
- "nullable": true
- },
- "redisId": {
- "type": "string",
- "nullable": true
- },
- "composeId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "mountId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mounts.allNamedByApplicationId": {
- "get": {
- "operationId": "mounts-allNamedByApplicationId",
- "tags": [
- "mounts"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "applicationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/certificates.create": {
- "post": {
- "operationId": "certificates-create",
- "tags": [
- "certificates"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "certificateId": {
- "type": "string"
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "certificateData": {
- "type": "string",
- "minLength": 1
- },
- "privateKey": {
- "type": "string",
- "minLength": 1
- },
- "certificatePath": {
- "type": "string"
- },
- "autoRenew": {
- "type": "boolean",
- "nullable": true
- },
- "organizationId": {
- "type": "string"
- },
- "serverId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "name",
- "certificateData",
- "privateKey",
- "organizationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/certificates.one": {
- "get": {
- "operationId": "certificates-one",
- "tags": [
- "certificates"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "certificateId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/certificates.remove": {
- "post": {
- "operationId": "certificates-remove",
- "tags": [
- "certificates"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "certificateId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "certificateId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/certificates.all": {
- "get": {
- "operationId": "certificates-all",
- "tags": [
- "certificates"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.reloadServer": {
- "post": {
- "operationId": "settings-reloadServer",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanRedis": {
- "post": {
- "operationId": "settings-cleanRedis",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.reloadRedis": {
- "post": {
- "operationId": "settings-reloadRedis",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.reloadTraefik": {
- "post": {
- "operationId": "settings-reloadTraefik",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": false,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.toggleDashboard": {
- "post": {
- "operationId": "settings-toggleDashboard",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "enableDashboard": {
- "type": "boolean"
- },
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanUnusedImages": {
- "post": {
- "operationId": "settings-cleanUnusedImages",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": false,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanUnusedVolumes": {
- "post": {
- "operationId": "settings-cleanUnusedVolumes",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": false,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanStoppedContainers": {
- "post": {
- "operationId": "settings-cleanStoppedContainers",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": false,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanDockerBuilder": {
- "post": {
- "operationId": "settings-cleanDockerBuilder",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": false,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanDockerPrune": {
- "post": {
- "operationId": "settings-cleanDockerPrune",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": false,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanAll": {
- "post": {
- "operationId": "settings-cleanAll",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": false,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanMonitoring": {
- "post": {
- "operationId": "settings-cleanMonitoring",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.saveSSHPrivateKey": {
- "post": {
- "operationId": "settings-saveSSHPrivateKey",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "sshPrivateKey": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "sshPrivateKey"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.assignDomainServer": {
- "post": {
- "operationId": "settings-assignDomainServer",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "host": {
- "type": "string",
- "nullable": true
- },
- "certificateType": {
- "type": "string",
- "enum": [
- "letsencrypt",
- "none",
- "custom"
- ]
- },
- "letsEncryptEmail": {
- "type": "string",
- "nullable": true
- },
- "https": {
- "type": "boolean"
- }
- },
- "required": [
- "host",
- "certificateType"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanSSHPrivateKey": {
- "post": {
- "operationId": "settings-cleanSSHPrivateKey",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateDockerCleanup": {
- "post": {
- "operationId": "settings-updateDockerCleanup",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "enableDockerCleanup": {
- "type": "boolean"
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "enableDockerCleanup"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readTraefikConfig": {
- "get": {
- "operationId": "settings-readTraefikConfig",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateTraefikConfig": {
- "post": {
- "operationId": "settings-updateTraefikConfig",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "traefikConfig": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "traefikConfig"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readWebServerTraefikConfig": {
- "get": {
- "operationId": "settings-readWebServerTraefikConfig",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateWebServerTraefikConfig": {
- "post": {
- "operationId": "settings-updateWebServerTraefikConfig",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "traefikConfig": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "traefikConfig"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readMiddlewareTraefikConfig": {
- "get": {
- "operationId": "settings-readMiddlewareTraefikConfig",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateMiddlewareTraefikConfig": {
- "post": {
- "operationId": "settings-updateMiddlewareTraefikConfig",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "traefikConfig": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "traefikConfig"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getUpdateData": {
- "post": {
- "operationId": "settings-getUpdateData",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateServer": {
- "post": {
- "operationId": "settings-updateServer",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getDokployVersion": {
- "get": {
- "operationId": "settings-getDokployVersion",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getReleaseTag": {
- "get": {
- "operationId": "settings-getReleaseTag",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readDirectories": {
- "get": {
- "operationId": "settings-readDirectories",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateTraefikFile": {
- "post": {
- "operationId": "settings-updateTraefikFile",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "path": {
- "type": "string",
- "minLength": 1
- },
- "traefikConfig": {
- "type": "string",
- "minLength": 1
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "path",
- "traefikConfig"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readTraefikFile": {
- "get": {
- "operationId": "settings-readTraefikFile",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "path",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getIp": {
- "get": {
- "operationId": "settings-getIp",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getOpenApiDocument": {
- "get": {
- "operationId": "settings-getOpenApiDocument",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readTraefikEnv": {
- "get": {
- "operationId": "settings-readTraefikEnv",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.writeTraefikEnv": {
- "post": {
- "operationId": "settings-writeTraefikEnv",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "env": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "env"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.haveTraefikDashboardPortEnabled": {
- "get": {
- "operationId": "settings-haveTraefikDashboardPortEnabled",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.haveActivateRequests": {
- "get": {
- "operationId": "settings-haveActivateRequests",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.toggleRequests": {
- "post": {
- "operationId": "settings-toggleRequests",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "enable": {
- "type": "boolean"
- }
- },
- "required": [
- "enable"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.isCloud": {
- "get": {
- "operationId": "settings-isCloud",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.isUserSubscribed": {
- "get": {
- "operationId": "settings-isUserSubscribed",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.health": {
- "get": {
- "operationId": "settings-health",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.setupGPU": {
- "post": {
- "operationId": "settings-setupGPU",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.checkGPUStatus": {
- "get": {
- "operationId": "settings-checkGPUStatus",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateTraefikPorts": {
- "post": {
- "operationId": "settings-updateTraefikPorts",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- },
- "additionalPorts": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "targetPort": {
- "type": "number"
- },
- "publishedPort": {
- "type": "number"
- },
- "protocol": {
- "type": "string",
- "enum": [
- "tcp",
- "udp",
- "sctp"
- ]
- }
- },
- "required": [
- "targetPort",
- "publishedPort",
- "protocol"
- ],
- "additionalProperties": false
- }
- }
- },
- "required": [
- "additionalPorts"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getTraefikPorts": {
- "get": {
- "operationId": "settings-getTraefikPorts",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateLogCleanup": {
- "post": {
- "operationId": "settings-updateLogCleanup",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "cronExpression": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "cronExpression"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getLogCleanupStatus": {
- "get": {
- "operationId": "settings-getLogCleanupStatus",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getDokployCloudIps": {
- "get": {
- "operationId": "settings-getDokployCloudIps",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/security.create": {
- "post": {
- "operationId": "security-create",
- "tags": [
- "security"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "applicationId",
- "username",
- "password"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/security.one": {
- "get": {
- "operationId": "security-one",
- "tags": [
- "security"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "securityId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/security.delete": {
- "post": {
- "operationId": "security-delete",
- "tags": [
- "security"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "securityId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "securityId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/security.update": {
- "post": {
- "operationId": "security-update",
- "tags": [
- "security"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "securityId": {
- "type": "string",
- "minLength": 1
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "securityId",
- "username",
- "password"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redirects.create": {
- "post": {
- "operationId": "redirects-create",
- "tags": [
- "redirects"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "regex": {
- "type": "string",
- "minLength": 1
- },
- "replacement": {
- "type": "string",
- "minLength": 1
- },
- "permanent": {
- "type": "boolean"
- },
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "regex",
- "replacement",
- "permanent",
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redirects.one": {
- "get": {
- "operationId": "redirects-one",
- "tags": [
- "redirects"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "redirectId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redirects.delete": {
- "post": {
- "operationId": "redirects-delete",
- "tags": [
- "redirects"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redirectId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "redirectId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redirects.update": {
- "post": {
- "operationId": "redirects-update",
- "tags": [
- "redirects"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redirectId": {
- "type": "string",
- "minLength": 1
- },
- "regex": {
- "type": "string",
- "minLength": 1
- },
- "replacement": {
- "type": "string",
- "minLength": 1
- },
- "permanent": {
- "type": "boolean"
- }
- },
- "required": [
- "redirectId",
- "regex",
- "replacement",
- "permanent"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/port.create": {
- "post": {
- "operationId": "port-create",
- "tags": [
- "port"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "publishedPort": {
- "type": "number"
- },
- "publishMode": {
- "type": "string",
- "enum": [
- "ingress",
- "host"
- ],
- "default": "ingress"
- },
- "targetPort": {
- "type": "number"
- },
- "protocol": {
- "type": "string",
- "enum": [
- "tcp",
- "udp"
- ],
- "default": "tcp"
- },
- "applicationId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "publishedPort",
- "targetPort",
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/port.one": {
- "get": {
- "operationId": "port-one",
- "tags": [
- "port"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "portId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/port.delete": {
- "post": {
- "operationId": "port-delete",
- "tags": [
- "port"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "portId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "portId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/port.update": {
- "post": {
- "operationId": "port-update",
- "tags": [
- "port"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "portId": {
- "type": "string",
- "minLength": 1
- },
- "publishedPort": {
- "type": "number"
- },
- "publishMode": {
- "type": "string",
- "enum": [
- "ingress",
- "host"
- ],
- "default": "ingress"
- },
- "targetPort": {
- "type": "number"
- },
- "protocol": {
- "type": "string",
- "enum": [
- "tcp",
- "udp"
- ],
- "default": "tcp"
- }
- },
- "required": [
- "portId",
- "publishedPort",
- "targetPort"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.create": {
- "post": {
- "operationId": "registry-create",
- "tags": [
- "registry"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "registryName": {
- "type": "string",
- "minLength": 1
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "registryUrl": {
- "type": "string"
- },
- "registryType": {
- "type": "string",
- "enum": [
- "cloud"
- ]
- },
- "imagePrefix": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "registryName",
- "username",
- "password",
- "registryUrl",
- "registryType",
- "imagePrefix"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.remove": {
- "post": {
- "operationId": "registry-remove",
- "tags": [
- "registry"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "registryId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "registryId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.update": {
- "post": {
- "operationId": "registry-update",
- "tags": [
- "registry"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "registryId": {
- "type": "string",
- "minLength": 1
- },
- "registryName": {
- "type": "string",
- "minLength": 1
- },
- "imagePrefix": {
- "type": "string",
- "nullable": true
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "registryUrl": {
- "type": "string"
- },
- "createdAt": {
- "type": "string"
- },
- "registryType": {
- "type": "string",
- "enum": [
- "cloud"
- ]
- },
- "organizationId": {
- "type": "string",
- "minLength": 1
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "registryId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.all": {
- "get": {
- "operationId": "registry-all",
- "tags": [
- "registry"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.one": {
- "get": {
- "operationId": "registry-one",
- "tags": [
- "registry"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "registryId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.testRegistry": {
- "post": {
- "operationId": "registry-testRegistry",
- "tags": [
- "registry"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "registryName": {
- "type": "string"
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "registryUrl": {
- "type": "string"
- },
- "registryType": {
- "type": "string",
- "enum": [
- "cloud"
- ]
- },
- "imagePrefix": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "username",
- "password",
- "registryUrl",
- "registryType"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/cluster.getNodes": {
- "get": {
- "operationId": "cluster-getNodes",
- "tags": [
- "cluster"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/cluster.removeWorker": {
- "post": {
- "operationId": "cluster-removeWorker",
- "tags": [
- "cluster"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "nodeId": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "nodeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/cluster.addWorker": {
- "get": {
- "operationId": "cluster-addWorker",
- "tags": [
- "cluster"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/cluster.addManager": {
- "get": {
- "operationId": "cluster-addManager",
- "tags": [
- "cluster"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createSlack": {
- "post": {
- "operationId": "notification-createSlack",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "channel": {
- "type": "string"
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "serverThreshold",
- "webhookUrl",
- "channel"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateSlack": {
- "post": {
- "operationId": "notification-updateSlack",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "channel": {
- "type": "string"
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "slackId": {
- "type": "string"
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": [
- "notificationId",
- "slackId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testSlackConnection": {
- "post": {
- "operationId": "notification-testSlackConnection",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "channel": {
- "type": "string"
- }
- },
- "required": [
- "webhookUrl",
- "channel"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createTelegram": {
- "post": {
- "operationId": "notification-createTelegram",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "botToken": {
- "type": "string",
- "minLength": 1
- },
- "chatId": {
- "type": "string",
- "minLength": 1
- },
- "messageThreadId": {
- "type": "string"
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "serverThreshold",
- "botToken",
- "chatId",
- "messageThreadId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateTelegram": {
- "post": {
- "operationId": "notification-updateTelegram",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "botToken": {
- "type": "string",
- "minLength": 1
- },
- "chatId": {
- "type": "string",
- "minLength": 1
- },
- "messageThreadId": {
- "type": "string"
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "telegramId": {
- "type": "string",
- "minLength": 1
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": [
- "notificationId",
- "telegramId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testTelegramConnection": {
- "post": {
- "operationId": "notification-testTelegramConnection",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "botToken": {
- "type": "string",
- "minLength": 1
- },
- "chatId": {
- "type": "string",
- "minLength": 1
- },
- "messageThreadId": {
- "type": "string"
- }
- },
- "required": [
- "botToken",
- "chatId",
- "messageThreadId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createDiscord": {
- "post": {
- "operationId": "notification-createDiscord",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "decoration": {
- "type": "boolean"
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "serverThreshold",
- "webhookUrl",
- "decoration"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateDiscord": {
- "post": {
- "operationId": "notification-updateDiscord",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "decoration": {
- "type": "boolean"
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "discordId": {
- "type": "string",
- "minLength": 1
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": [
- "notificationId",
- "discordId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testDiscordConnection": {
- "post": {
- "operationId": "notification-testDiscordConnection",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "decoration": {
- "type": "boolean"
- }
- },
- "required": [
- "webhookUrl"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createEmail": {
- "post": {
- "operationId": "notification-createEmail",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "smtpServer": {
- "type": "string",
- "minLength": 1
- },
- "smtpPort": {
- "type": "number",
- "minimum": 1
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "fromAddress": {
- "type": "string",
- "minLength": 1
- },
- "toAddresses": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "minItems": 1
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "serverThreshold",
- "smtpServer",
- "smtpPort",
- "username",
- "password",
- "fromAddress",
- "toAddresses"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateEmail": {
- "post": {
- "operationId": "notification-updateEmail",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "smtpServer": {
- "type": "string",
- "minLength": 1
- },
- "smtpPort": {
- "type": "number",
- "minimum": 1
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "fromAddress": {
- "type": "string",
- "minLength": 1
- },
- "toAddresses": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "minItems": 1
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "emailId": {
- "type": "string",
- "minLength": 1
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": [
- "notificationId",
- "emailId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testEmailConnection": {
- "post": {
- "operationId": "notification-testEmailConnection",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "smtpServer": {
- "type": "string",
- "minLength": 1
- },
- "smtpPort": {
- "type": "number",
- "minimum": 1
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "toAddresses": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "minItems": 1
- },
- "fromAddress": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "smtpServer",
- "smtpPort",
- "username",
- "password",
- "toAddresses",
- "fromAddress"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.remove": {
- "post": {
- "operationId": "notification-remove",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "notificationId": {
- "type": "string"
- }
- },
- "required": [
- "notificationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.one": {
- "get": {
- "operationId": "notification-one",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "notificationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.all": {
- "get": {
- "operationId": "notification-all",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.receiveNotification": {
- "post": {
- "operationId": "notification-receiveNotification",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "ServerType": {
- "type": "string",
- "enum": [
- "Dokploy",
- "Remote"
- ],
- "default": "Dokploy"
- },
- "Type": {
- "type": "string",
- "enum": [
- "Memory",
- "CPU"
- ]
- },
- "Value": {
- "type": "number"
- },
- "Threshold": {
- "type": "number"
- },
- "Message": {
- "type": "string"
- },
- "Timestamp": {
- "type": "string"
- },
- "Token": {
- "type": "string"
- }
- },
- "required": [
- "Type",
- "Value",
- "Threshold",
- "Message",
- "Timestamp",
- "Token"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createGotify": {
- "post": {
- "operationId": "notification-createGotify",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverUrl": {
- "type": "string",
- "minLength": 1
- },
- "appToken": {
- "type": "string",
- "minLength": 1
- },
- "priority": {
- "type": "number",
- "minimum": 1
- },
- "decoration": {
- "type": "boolean"
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "serverUrl",
- "appToken",
- "priority",
- "decoration"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateGotify": {
- "post": {
- "operationId": "notification-updateGotify",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverUrl": {
- "type": "string",
- "minLength": 1
- },
- "appToken": {
- "type": "string",
- "minLength": 1
- },
- "priority": {
- "type": "number",
- "minimum": 1
- },
- "decoration": {
- "type": "boolean"
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "gotifyId": {
- "type": "string",
- "minLength": 1
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": [
- "notificationId",
- "gotifyId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testGotifyConnection": {
- "post": {
- "operationId": "notification-testGotifyConnection",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverUrl": {
- "type": "string",
- "minLength": 1
- },
- "appToken": {
- "type": "string",
- "minLength": 1
- },
- "priority": {
- "type": "number",
- "minimum": 1
- },
- "decoration": {
- "type": "boolean"
- }
- },
- "required": [
- "serverUrl",
- "appToken",
- "priority"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createNtfy": {
- "post": {
- "operationId": "notification-createNtfy",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverUrl": {
- "type": "string",
- "minLength": 1
- },
- "topic": {
- "type": "string",
- "minLength": 1
- },
- "accessToken": {
- "type": "string",
- "minLength": 1
- },
- "priority": {
- "type": "number",
- "minimum": 1
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "serverUrl",
- "topic",
- "accessToken",
- "priority"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateNtfy": {
- "post": {
- "operationId": "notification-updateNtfy",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverUrl": {
- "type": "string",
- "minLength": 1
- },
- "topic": {
- "type": "string",
- "minLength": 1
- },
- "accessToken": {
- "type": "string",
- "minLength": 1
- },
- "priority": {
- "type": "number",
- "minimum": 1
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "ntfyId": {
- "type": "string",
- "minLength": 1
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": [
- "notificationId",
- "ntfyId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testNtfyConnection": {
- "post": {
- "operationId": "notification-testNtfyConnection",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverUrl": {
- "type": "string",
- "minLength": 1
- },
- "topic": {
- "type": "string",
- "minLength": 1
- },
- "accessToken": {
- "type": "string",
- "minLength": 1
- },
- "priority": {
- "type": "number",
- "minimum": 1
- }
- },
- "required": [
- "serverUrl",
- "topic",
- "accessToken",
- "priority"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createLark": {
- "post": {
- "operationId": "notification-createLark",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "serverThreshold",
- "webhookUrl"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateLark": {
- "post": {
- "operationId": "notification-updateLark",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "larkId": {
- "type": "string",
- "minLength": 1
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": [
- "notificationId",
- "larkId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testLarkConnection": {
- "post": {
- "operationId": "notification-testLarkConnection",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "webhookUrl"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.getEmailProviders": {
- "get": {
- "operationId": "notification-getEmailProviders",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.create": {
- "post": {
- "operationId": "sshKey-create",
- "tags": [
- "sshKey"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "privateKey": {
- "type": "string"
- },
- "publicKey": {
- "type": "string"
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "privateKey",
- "publicKey",
- "organizationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.remove": {
- "post": {
- "operationId": "sshKey-remove",
- "tags": [
- "sshKey"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "sshKeyId": {
- "type": "string"
- }
- },
- "required": [
- "sshKeyId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.one": {
- "get": {
- "operationId": "sshKey-one",
- "tags": [
- "sshKey"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "sshKeyId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.all": {
- "get": {
- "operationId": "sshKey-all",
- "tags": [
- "sshKey"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.generate": {
- "post": {
- "operationId": "sshKey-generate",
- "tags": [
- "sshKey"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "enum": [
- "rsa",
- "ed25519"
- ]
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.update": {
- "post": {
- "operationId": "sshKey-update",
- "tags": [
- "sshKey"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "lastUsedAt": {
- "type": "string",
- "nullable": true
- },
- "sshKeyId": {
- "type": "string"
- }
- },
- "required": [
- "sshKeyId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitProvider.getAll": {
- "get": {
- "operationId": "gitProvider-getAll",
- "tags": [
- "gitProvider"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitProvider.remove": {
- "post": {
- "operationId": "gitProvider-remove",
- "tags": [
- "gitProvider"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "gitProviderId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "gitProviderId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.create": {
- "post": {
- "operationId": "gitea-create",
- "tags": [
- "gitea"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "giteaId": {
- "type": "string"
- },
- "giteaUrl": {
- "type": "string",
- "minLength": 1
- },
- "redirectUri": {
- "type": "string"
- },
- "clientId": {
- "type": "string"
- },
- "clientSecret": {
- "type": "string"
- },
- "gitProviderId": {
- "type": "string"
- },
- "accessToken": {
- "type": "string"
- },
- "refreshToken": {
- "type": "string"
- },
- "expiresAt": {
- "type": "number"
- },
- "scopes": {
- "type": "string"
- },
- "lastAuthenticatedAt": {
- "type": "number"
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "giteaUsername": {
- "type": "string"
- },
- "organizationName": {
- "type": "string"
- }
- },
- "required": [
- "giteaUrl",
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.one": {
- "get": {
- "operationId": "gitea-one",
- "tags": [
- "gitea"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "giteaId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.giteaProviders": {
- "get": {
- "operationId": "gitea-giteaProviders",
- "tags": [
- "gitea"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.getGiteaRepositories": {
- "get": {
- "operationId": "gitea-getGiteaRepositories",
- "tags": [
- "gitea"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "giteaId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.getGiteaBranches": {
- "get": {
- "operationId": "gitea-getGiteaBranches",
- "tags": [
- "gitea"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "owner",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "repositoryName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "giteaId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.testConnection": {
- "post": {
- "operationId": "gitea-testConnection",
- "tags": [
- "gitea"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "giteaId": {
- "type": "string"
- },
- "organizationName": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.update": {
- "post": {
- "operationId": "gitea-update",
- "tags": [
- "gitea"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "giteaId": {
- "type": "string",
- "minLength": 1
- },
- "giteaUrl": {
- "type": "string",
- "minLength": 1
- },
- "redirectUri": {
- "type": "string"
- },
- "clientId": {
- "type": "string"
- },
- "clientSecret": {
- "type": "string"
- },
- "gitProviderId": {
- "type": "string"
- },
- "accessToken": {
- "type": "string"
- },
- "refreshToken": {
- "type": "string"
- },
- "expiresAt": {
- "type": "number"
- },
- "scopes": {
- "type": "string"
- },
- "lastAuthenticatedAt": {
- "type": "number"
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "giteaUsername": {
- "type": "string"
- },
- "organizationName": {
- "type": "string"
- }
- },
- "required": [
- "giteaId",
- "giteaUrl",
- "gitProviderId",
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.getGiteaUrl": {
- "get": {
- "operationId": "gitea-getGiteaUrl",
- "tags": [
- "gitea"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "giteaId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.create": {
- "post": {
- "operationId": "bitbucket-create",
- "tags": [
- "bitbucket"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "bitbucketId": {
- "type": "string"
- },
- "bitbucketUsername": {
- "type": "string"
- },
- "bitbucketEmail": {
- "type": "string",
- "format": "email"
- },
- "appPassword": {
- "type": "string"
- },
- "apiToken": {
- "type": "string"
- },
- "bitbucketWorkspaceName": {
- "type": "string"
- },
- "gitProviderId": {
- "type": "string"
- },
- "authId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "authId",
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.one": {
- "get": {
- "operationId": "bitbucket-one",
- "tags": [
- "bitbucket"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "bitbucketId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.bitbucketProviders": {
- "get": {
- "operationId": "bitbucket-bitbucketProviders",
- "tags": [
- "bitbucket"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.getBitbucketRepositories": {
- "get": {
- "operationId": "bitbucket-getBitbucketRepositories",
- "tags": [
- "bitbucket"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "bitbucketId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.getBitbucketBranches": {
- "get": {
- "operationId": "bitbucket-getBitbucketBranches",
- "tags": [
- "bitbucket"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "owner",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "repo",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "bitbucketId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.testConnection": {
- "post": {
- "operationId": "bitbucket-testConnection",
- "tags": [
- "bitbucket"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "bitbucketId": {
- "type": "string",
- "minLength": 1
- },
- "bitbucketUsername": {
- "type": "string"
- },
- "bitbucketEmail": {
- "type": "string",
- "format": "email"
- },
- "workspaceName": {
- "type": "string"
- },
- "apiToken": {
- "type": "string"
- },
- "appPassword": {
- "type": "string"
- }
- },
- "required": [
- "bitbucketId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.update": {
- "post": {
- "operationId": "bitbucket-update",
- "tags": [
- "bitbucket"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "bitbucketId": {
- "type": "string",
- "minLength": 1
- },
- "bitbucketUsername": {
- "type": "string"
- },
- "bitbucketEmail": {
- "type": "string",
- "format": "email"
- },
- "appPassword": {
- "type": "string"
- },
- "apiToken": {
- "type": "string"
- },
- "bitbucketWorkspaceName": {
- "type": "string"
- },
- "gitProviderId": {
- "type": "string"
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": [
- "bitbucketId",
- "gitProviderId",
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.create": {
- "post": {
- "operationId": "gitlab-create",
- "tags": [
- "gitlab"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "gitlabId": {
- "type": "string"
- },
- "gitlabUrl": {
- "type": "string",
- "minLength": 1
- },
- "applicationId": {
- "type": "string"
- },
- "redirectUri": {
- "type": "string"
- },
- "secret": {
- "type": "string"
- },
- "accessToken": {
- "type": "string",
- "nullable": true
- },
- "refreshToken": {
- "type": "string",
- "nullable": true
- },
- "groupName": {
- "type": "string"
- },
- "expiresAt": {
- "type": "number",
- "nullable": true
- },
- "gitProviderId": {
- "type": "string"
- },
- "authId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "gitlabUrl",
- "authId",
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.one": {
- "get": {
- "operationId": "gitlab-one",
- "tags": [
- "gitlab"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "gitlabId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.gitlabProviders": {
- "get": {
- "operationId": "gitlab-gitlabProviders",
- "tags": [
- "gitlab"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.getGitlabRepositories": {
- "get": {
- "operationId": "gitlab-getGitlabRepositories",
- "tags": [
- "gitlab"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "gitlabId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.getGitlabBranches": {
- "get": {
- "operationId": "gitlab-getGitlabBranches",
- "tags": [
- "gitlab"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "id",
- "in": "query",
- "required": false,
- "schema": {
- "type": "number"
- }
- },
- {
- "name": "owner",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "repo",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "gitlabId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.testConnection": {
- "post": {
- "operationId": "gitlab-testConnection",
- "tags": [
- "gitlab"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "gitlabId": {
- "type": "string"
- },
- "groupName": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.update": {
- "post": {
- "operationId": "gitlab-update",
- "tags": [
- "gitlab"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "gitlabId": {
- "type": "string",
- "minLength": 1
- },
- "gitlabUrl": {
- "type": "string",
- "minLength": 1
- },
- "applicationId": {
- "type": "string"
- },
- "redirectUri": {
- "type": "string"
- },
- "secret": {
- "type": "string"
- },
- "accessToken": {
- "type": "string",
- "nullable": true
- },
- "refreshToken": {
- "type": "string",
- "nullable": true
- },
- "groupName": {
- "type": "string"
- },
- "expiresAt": {
- "type": "number",
- "nullable": true
- },
- "gitProviderId": {
- "type": "string"
- },
- "name": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "gitlabId",
- "gitlabUrl",
- "gitProviderId",
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.one": {
- "get": {
- "operationId": "github-one",
- "tags": [
- "github"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "githubId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.getGithubRepositories": {
- "get": {
- "operationId": "github-getGithubRepositories",
- "tags": [
- "github"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "githubId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.getGithubBranches": {
- "get": {
- "operationId": "github-getGithubBranches",
- "tags": [
- "github"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "repo",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "owner",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "githubId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.githubProviders": {
- "get": {
- "operationId": "github-githubProviders",
- "tags": [
- "github"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.testConnection": {
- "post": {
- "operationId": "github-testConnection",
- "tags": [
- "github"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "githubId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "githubId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.update": {
- "post": {
- "operationId": "github-update",
- "tags": [
- "github"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "githubId": {
- "type": "string",
- "minLength": 1
- },
- "githubAppName": {
- "type": "string",
- "minLength": 1
- },
- "githubAppId": {
- "type": "number",
- "nullable": true
- },
- "githubClientId": {
- "type": "string",
- "nullable": true
- },
- "githubClientSecret": {
- "type": "string",
- "nullable": true
- },
- "githubInstallationId": {
- "type": "string",
- "nullable": true
- },
- "githubPrivateKey": {
- "type": "string",
- "nullable": true
- },
- "githubWebhookSecret": {
- "type": "string",
- "nullable": true
- },
- "gitProviderId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "githubId",
- "githubAppName",
- "gitProviderId",
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.create": {
- "post": {
- "operationId": "server-create",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "ipAddress": {
- "type": "string"
- },
- "port": {
- "type": "number"
- },
- "username": {
- "type": "string"
- },
- "sshKeyId": {
- "type": "string",
- "nullable": true
- },
- "serverType": {
- "type": "string",
- "enum": [
- "deploy",
- "build"
- ]
- }
- },
- "required": [
- "name",
- "ipAddress",
- "port",
- "username",
- "sshKeyId",
- "serverType"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.one": {
- "get": {
- "operationId": "server-one",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.getDefaultCommand": {
- "get": {
- "operationId": "server-getDefaultCommand",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.all": {
- "get": {
- "operationId": "server-all",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.count": {
- "get": {
- "operationId": "server-count",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.withSSHKey": {
- "get": {
- "operationId": "server-withSSHKey",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.buildServers": {
- "get": {
- "operationId": "server-buildServers",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.setup": {
- "post": {
- "operationId": "server-setup",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "serverId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.validate": {
- "get": {
- "operationId": "server-validate",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.security": {
- "get": {
- "operationId": "server-security",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.setupMonitoring": {
- "post": {
- "operationId": "server-setupMonitoring",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string",
- "minLength": 1
- },
- "metricsConfig": {
- "type": "object",
- "properties": {
- "server": {
- "type": "object",
- "properties": {
- "refreshRate": {
- "type": "number",
- "minimum": 2
- },
- "port": {
- "type": "number",
- "minimum": 1
- },
- "token": {
- "type": "string"
- },
- "urlCallback": {
- "type": "string",
- "format": "uri"
- },
- "retentionDays": {
- "type": "number",
- "minimum": 1
- },
- "cronJob": {
- "type": "string",
- "minLength": 1
- },
- "thresholds": {
- "type": "object",
- "properties": {
- "cpu": {
- "type": "number",
- "minimum": 0
- },
- "memory": {
- "type": "number",
- "minimum": 0
- }
- },
- "required": [
- "cpu",
- "memory"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "refreshRate",
- "port",
- "token",
- "urlCallback",
- "retentionDays",
- "cronJob",
- "thresholds"
- ],
- "additionalProperties": false
- },
- "containers": {
- "type": "object",
- "properties": {
- "refreshRate": {
- "type": "number",
- "minimum": 2
- },
- "services": {
- "type": "object",
- "properties": {
- "include": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "exclude": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- },
- "additionalProperties": false
- }
- },
- "required": [
- "refreshRate",
- "services"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "server",
- "containers"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "serverId",
- "metricsConfig"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.remove": {
- "post": {
- "operationId": "server-remove",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "serverId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.update": {
- "post": {
- "operationId": "server-update",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string",
- "minLength": 1
- },
- "ipAddress": {
- "type": "string"
- },
- "port": {
- "type": "number"
- },
- "username": {
- "type": "string"
- },
- "sshKeyId": {
- "type": "string",
- "nullable": true
- },
- "serverType": {
- "type": "string",
- "enum": [
- "deploy",
- "build"
- ]
- },
- "command": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "serverId",
- "ipAddress",
- "port",
- "username",
- "sshKeyId",
- "serverType"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.publicIp": {
- "get": {
- "operationId": "server-publicIp",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.getServerTime": {
- "get": {
- "operationId": "server-getServerTime",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.getServerMetrics": {
- "get": {
- "operationId": "server-getServerMetrics",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "url",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "token",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "dataPoints",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/stripe.getProducts": {
- "get": {
- "operationId": "stripe-getProducts",
- "tags": [
- "stripe"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/stripe.createCheckoutSession": {
- "post": {
- "operationId": "stripe-createCheckoutSession",
- "tags": [
- "stripe"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "productId": {
- "type": "string"
- },
- "serverQuantity": {
- "type": "number",
- "minimum": 1
- },
- "isAnnual": {
- "type": "boolean"
- }
- },
- "required": [
- "productId",
- "serverQuantity",
- "isAnnual"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/stripe.createCustomerPortalSession": {
- "post": {
- "operationId": "stripe-createCustomerPortalSession",
- "tags": [
- "stripe"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/stripe.canCreateMoreServers": {
- "get": {
- "operationId": "stripe-canCreateMoreServers",
- "tags": [
- "stripe"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/swarm.getNodes": {
- "get": {
- "operationId": "swarm-getNodes",
- "tags": [
- "swarm"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/swarm.getNodeInfo": {
- "get": {
- "operationId": "swarm-getNodeInfo",
- "tags": [
- "swarm"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "nodeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/swarm.getNodeApps": {
- "get": {
- "operationId": "swarm-getNodeApps",
- "tags": [
- "swarm"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.one": {
- "get": {
- "operationId": "ai-one",
- "tags": [
- "ai"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "aiId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.getModels": {
- "get": {
- "operationId": "ai-getModels",
- "tags": [
- "ai"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "apiUrl",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "apiKey",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.create": {
- "post": {
- "operationId": "ai-create",
- "tags": [
- "ai"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "apiUrl": {
- "type": "string",
- "format": "uri"
- },
- "apiKey": {
- "type": "string"
- },
- "model": {
- "type": "string",
- "minLength": 1
- },
- "isEnabled": {
- "type": "boolean"
- }
- },
- "required": [
- "name",
- "apiUrl",
- "apiKey",
- "model",
- "isEnabled"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.update": {
- "post": {
- "operationId": "ai-update",
- "tags": [
- "ai"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "aiId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "apiUrl": {
- "type": "string",
- "format": "uri"
- },
- "apiKey": {
- "type": "string"
- },
- "model": {
- "type": "string",
- "minLength": 1
- },
- "isEnabled": {
- "type": "boolean"
- },
- "createdAt": {
- "type": "string"
- }
- },
- "required": [
- "aiId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.getAll": {
- "get": {
- "operationId": "ai-getAll",
- "tags": [
- "ai"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.get": {
- "get": {
- "operationId": "ai-get",
- "tags": [
- "ai"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "aiId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.delete": {
- "post": {
- "operationId": "ai-delete",
- "tags": [
- "ai"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "aiId": {
- "type": "string"
- }
- },
- "required": [
- "aiId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.suggest": {
- "post": {
- "operationId": "ai-suggest",
- "tags": [
- "ai"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "aiId": {
- "type": "string"
- },
- "input": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "aiId",
- "input"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.deploy": {
- "post": {
- "operationId": "ai-deploy",
- "tags": [
- "ai"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "environmentId": {
- "type": "string",
- "minLength": 1
- },
- "id": {
- "type": "string",
- "minLength": 1
- },
- "dockerCompose": {
- "type": "string",
- "minLength": 1
- },
- "envVariables": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string"
- },
- "domains": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "host": {
- "type": "string",
- "minLength": 1
- },
- "port": {
- "type": "number",
- "minimum": 1
- },
- "serviceName": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "host",
- "port",
- "serviceName"
- ],
- "additionalProperties": false
- }
- },
- "configFiles": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "filePath": {
- "type": "string",
- "minLength": 1
- },
- "content": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "filePath",
- "content"
- ],
- "additionalProperties": false
- }
- }
- },
- "required": [
- "environmentId",
- "id",
- "dockerCompose",
- "envVariables",
- "name",
- "description"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.create": {
- "post": {
- "operationId": "organization-create",
- "tags": [
- "organization"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "logo": {
- "type": "string"
- }
- },
- "required": [
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.all": {
- "get": {
- "operationId": "organization-all",
- "tags": [
- "organization"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.one": {
- "get": {
- "operationId": "organization-one",
- "tags": [
- "organization"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "organizationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.update": {
- "post": {
- "operationId": "organization-update",
- "tags": [
- "organization"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "organizationId": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "logo": {
- "type": "string"
- }
- },
- "required": [
- "organizationId",
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.delete": {
- "post": {
- "operationId": "organization-delete",
- "tags": [
- "organization"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "organizationId": {
- "type": "string"
- }
- },
- "required": [
- "organizationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.allInvitations": {
- "get": {
- "operationId": "organization-allInvitations",
- "tags": [
- "organization"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.removeInvitation": {
- "post": {
- "operationId": "organization-removeInvitation",
- "tags": [
- "organization"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "invitationId": {
- "type": "string"
- }
- },
- "required": [
- "invitationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.setDefault": {
- "post": {
- "operationId": "organization-setDefault",
- "tags": [
- "organization"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "organizationId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "organizationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/schedule.create": {
- "post": {
- "operationId": "schedule-create",
- "tags": [
- "schedule"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "scheduleId": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "cronExpression": {
- "type": "string"
- },
- "appName": {
- "type": "string"
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "shellType": {
- "type": "string",
- "enum": [
- "bash",
- "sh"
- ]
- },
- "scheduleType": {
- "type": "string",
- "enum": [
- "application",
- "compose",
- "server",
- "dokploy-server"
- ]
- },
- "command": {
- "type": "string"
- },
- "script": {
- "type": "string",
- "nullable": true
- },
- "applicationId": {
- "type": "string",
- "nullable": true
- },
- "composeId": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string",
- "nullable": true
- },
- "userId": {
- "type": "string",
- "nullable": true
- },
- "enabled": {
- "type": "boolean"
- },
- "createdAt": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "cronExpression",
- "command"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/schedule.update": {
- "post": {
- "operationId": "schedule-update",
- "tags": [
- "schedule"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "scheduleId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string"
- },
- "cronExpression": {
- "type": "string"
- },
- "appName": {
- "type": "string"
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "shellType": {
- "type": "string",
- "enum": [
- "bash",
- "sh"
- ]
- },
- "scheduleType": {
- "type": "string",
- "enum": [
- "application",
- "compose",
- "server",
- "dokploy-server"
- ]
- },
- "command": {
- "type": "string"
- },
- "script": {
- "type": "string",
- "nullable": true
- },
- "applicationId": {
- "type": "string",
- "nullable": true
- },
- "composeId": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string",
- "nullable": true
- },
- "userId": {
- "type": "string",
- "nullable": true
- },
- "enabled": {
- "type": "boolean"
- },
- "createdAt": {
- "type": "string"
- }
- },
- "required": [
- "scheduleId",
- "name",
- "cronExpression",
- "command"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/schedule.delete": {
- "post": {
- "operationId": "schedule-delete",
- "tags": [
- "schedule"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "scheduleId": {
- "type": "string"
- }
- },
- "required": [
- "scheduleId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/schedule.list": {
- "get": {
- "operationId": "schedule-list",
- "tags": [
- "schedule"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "id",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "scheduleType",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "enum": [
- "application",
- "compose",
- "server",
- "dokploy-server"
- ]
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/schedule.one": {
- "get": {
- "operationId": "schedule-one",
- "tags": [
- "schedule"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "scheduleId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/schedule.runManually": {
- "post": {
- "operationId": "schedule-runManually",
- "tags": [
- "schedule"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "scheduleId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "scheduleId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/rollback.delete": {
- "post": {
- "operationId": "rollback-delete",
- "tags": [
- "rollback"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "rollbackId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "rollbackId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/rollback.rollback": {
- "post": {
- "operationId": "rollback-rollback",
- "tags": [
- "rollback"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "rollbackId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "rollbackId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/volumeBackups.list": {
- "get": {
- "operationId": "volumeBackups-list",
- "tags": [
- "volumeBackups"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "id",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "volumeBackupType",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "enum": [
- "application",
- "postgres",
- "mysql",
- "mariadb",
- "mongo",
- "redis",
- "compose"
- ]
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/volumeBackups.create": {
- "post": {
- "operationId": "volumeBackups-create",
- "tags": [
- "volumeBackups"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "volumeName": {
- "type": "string"
- },
- "prefix": {
- "type": "string"
- },
- "serviceType": {
- "type": "string",
- "enum": [
- "application",
- "postgres",
- "mysql",
- "mariadb",
- "mongo",
- "redis",
- "compose"
- ]
- },
- "appName": {
- "type": "string"
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "turnOff": {
- "type": "boolean"
- },
- "cronExpression": {
- "type": "string"
- },
- "keepLatestCount": {
- "type": "number",
- "nullable": true
- },
- "enabled": {
- "type": "boolean",
- "nullable": true
- },
- "applicationId": {
- "type": "string",
- "nullable": true
- },
- "postgresId": {
- "type": "string",
- "nullable": true
- },
- "mariadbId": {
- "type": "string",
- "nullable": true
- },
- "mongoId": {
- "type": "string",
- "nullable": true
- },
- "mysqlId": {
- "type": "string",
- "nullable": true
- },
- "redisId": {
- "type": "string",
- "nullable": true
- },
- "composeId": {
- "type": "string",
- "nullable": true
- },
- "createdAt": {
- "type": "string"
- },
- "destinationId": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "volumeName",
- "prefix",
- "cronExpression",
- "destinationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/volumeBackups.one": {
- "get": {
- "operationId": "volumeBackups-one",
- "tags": [
- "volumeBackups"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "volumeBackupId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/volumeBackups.delete": {
- "post": {
- "operationId": "volumeBackups-delete",
- "tags": [
- "volumeBackups"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "volumeBackupId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "volumeBackupId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/volumeBackups.update": {
- "post": {
- "operationId": "volumeBackups-update",
- "tags": [
- "volumeBackups"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "volumeName": {
- "type": "string"
- },
- "prefix": {
- "type": "string"
- },
- "serviceType": {
- "type": "string",
- "enum": [
- "application",
- "postgres",
- "mysql",
- "mariadb",
- "mongo",
- "redis",
- "compose"
- ]
- },
- "appName": {
- "type": "string"
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "turnOff": {
- "type": "boolean"
- },
- "cronExpression": {
- "type": "string"
- },
- "keepLatestCount": {
- "type": "number",
- "nullable": true
- },
- "enabled": {
- "type": "boolean",
- "nullable": true
- },
- "applicationId": {
- "type": "string",
- "nullable": true
- },
- "postgresId": {
- "type": "string",
- "nullable": true
- },
- "mariadbId": {
- "type": "string",
- "nullable": true
- },
- "mongoId": {
- "type": "string",
- "nullable": true
- },
- "mysqlId": {
- "type": "string",
- "nullable": true
- },
- "redisId": {
- "type": "string",
- "nullable": true
- },
- "composeId": {
- "type": "string",
- "nullable": true
- },
- "createdAt": {
- "type": "string"
- },
- "destinationId": {
- "type": "string"
- },
- "volumeBackupId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "name",
- "volumeName",
- "prefix",
- "cronExpression",
- "destinationId",
- "volumeBackupId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/volumeBackups.runManually": {
- "post": {
- "operationId": "volumeBackups-runManually",
- "tags": [
- "volumeBackups"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "volumeBackupId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "volumeBackupId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/environment.create": {
- "post": {
- "operationId": "environment-create",
- "tags": [
- "environment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "projectId": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "projectId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/environment.one": {
- "get": {
- "operationId": "environment-one",
- "tags": [
- "environment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "environmentId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/environment.byProjectId": {
- "get": {
- "operationId": "environment-byProjectId",
- "tags": [
- "environment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "projectId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/environment.remove": {
- "post": {
- "operationId": "environment-remove",
- "tags": [
- "environment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "environmentId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "environmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/environment.update": {
- "post": {
- "operationId": "environment-update",
- "tags": [
- "environment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "environmentId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "createdAt": {
- "type": "string"
- },
- "env": {
- "type": "string"
- },
- "projectId": {
- "type": "string"
- }
- },
- "required": [
- "environmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/environment.duplicate": {
- "post": {
- "operationId": "environment-duplicate",
- "tags": [
- "environment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "environmentId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "environmentId",
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- }
- },
- "components": {
- "securitySchemes": {
- "apiKey": {
- "type": "apiKey",
- "in": "header",
- "name": "x-api-key",
- "description": "API key authentication. Generate an API key from your Dokploy dashboard under Settings > API Keys."
- }
- },
- "responses": {
- "error": {
- "description": "Error response",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
- },
- "code": {
- "type": "string"
- },
- "issues": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
- }
- },
- "required": [
- "message"
- ],
- "additionalProperties": false
- }
- }
- },
- "required": [
- "message",
- "code"
- ],
- "additionalProperties": false
- }
- }
- }
- }
- }
- },
- "tags": [
- {
- "name": "admin"
- },
- {
- "name": "docker"
- },
- {
- "name": "compose"
- },
- {
- "name": "registry"
- },
- {
- "name": "cluster"
- },
- {
- "name": "user"
- },
- {
- "name": "domain"
- },
- {
- "name": "destination"
- },
- {
- "name": "backup"
- },
- {
- "name": "deployment"
- },
- {
- "name": "mounts"
- },
- {
- "name": "certificates"
- },
- {
- "name": "settings"
- },
- {
- "name": "security"
- },
- {
- "name": "redirects"
- },
- {
- "name": "port"
- },
- {
- "name": "project"
- },
- {
- "name": "application"
- },
- {
- "name": "mysql"
- },
- {
- "name": "postgres"
- },
- {
- "name": "redis"
- },
- {
- "name": "mongo"
- },
- {
- "name": "mariadb"
- },
- {
- "name": "sshRouter"
- },
- {
- "name": "gitProvider"
- },
- {
- "name": "bitbucket"
- },
- {
- "name": "github"
- },
- {
- "name": "gitlab"
- },
- {
- "name": "gitea"
- },
- {
- "name": "server"
- },
- {
- "name": "swarm"
- },
- {
- "name": "ai"
- },
- {
- "name": "organization"
- },
- {
- "name": "schedule"
- },
- {
- "name": "rollback"
- },
- {
- "name": "volumeBackups"
- },
- {
- "name": "environment"
- }
- ],
- "externalDocs": {
- "description": "Full documentation",
- "url": "https://docs.dokploy.com"
- },
- "security": [
- {
- "apiKey": []
- }
- ]
-}
\ No newline at end of file
+ "openapi": "3.0.3",
+ "info": {
+ "title": "Dokploy API",
+ "description": "Complete API documentation for Dokploy - Deploy applications, manage databases, and orchestrate your infrastructure. This API allows you to programmatically manage all aspects of your Dokploy instance.",
+ "version": "1.0.0",
+ "contact": {
+ "name": "Dokploy Team",
+ "url": "https://dokploy.com"
+ },
+ "license": {
+ "name": "Apache 2.0",
+ "url": "https://github.com/dokploy/dokploy/blob/canary/LICENSE"
+ }
+ },
+ "servers": [
+ {
+ "url": "https://your-dokploy-instance.com/api"
+ }
+ ],
+ "paths": {
+ "/admin.setupMonitoring": {
+ "post": {
+ "operationId": "admin-setupMonitoring",
+ "tags": ["admin"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "metricsConfig": {
+ "type": "object",
+ "properties": {
+ "server": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number",
+ "minimum": 2
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1
+ },
+ "token": {
+ "type": "string"
+ },
+ "urlCallback": {
+ "type": "string",
+ "format": "uri"
+ },
+ "retentionDays": {
+ "type": "number",
+ "minimum": 1
+ },
+ "cronJob": {
+ "type": "string",
+ "minLength": 1
+ },
+ "thresholds": {
+ "type": "object",
+ "properties": {
+ "cpu": {
+ "type": "number",
+ "minimum": 0
+ },
+ "memory": {
+ "type": "number",
+ "minimum": 0
+ }
+ },
+ "required": ["cpu", "memory"],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "refreshRate",
+ "port",
+ "token",
+ "urlCallback",
+ "retentionDays",
+ "cronJob",
+ "thresholds"
+ ],
+ "additionalProperties": false
+ },
+ "containers": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number",
+ "minimum": 2
+ },
+ "services": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "required": ["refreshRate", "services"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["server", "containers"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["metricsConfig"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getContainers": {
+ "get": {
+ "operationId": "docker-getContainers",
+ "tags": ["docker"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.restartContainer": {
+ "post": {
+ "operationId": "docker-restartContainer",
+ "tags": ["docker"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "containerId": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ "required": ["containerId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getConfig": {
+ "get": {
+ "operationId": "docker-getConfig",
+ "tags": ["docker"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "containerId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getContainersByAppNameMatch": {
+ "get": {
+ "operationId": "docker-getContainersByAppNameMatch",
+ "tags": ["docker"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appType",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "anyOf": [
+ {
+ "type": "string",
+ "enum": ["stack"]
+ },
+ {
+ "type": "string",
+ "enum": ["docker-compose"]
+ }
+ ]
+ }
+ },
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getContainersByAppLabel": {
+ "get": {
+ "operationId": "docker-getContainersByAppLabel",
+ "tags": ["docker"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "type",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "enum": ["standalone", "swarm"]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getStackContainersByAppName": {
+ "get": {
+ "operationId": "docker-getStackContainersByAppName",
+ "tags": ["docker"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getServiceContainersByAppName": {
+ "get": {
+ "operationId": "docker-getServiceContainersByAppName",
+ "tags": ["docker"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.create": {
+ "post": {
+ "operationId": "project-create",
+ "tags": ["project"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string"
+ }
+ },
+ "required": ["name"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.one": {
+ "get": {
+ "operationId": "project-one",
+ "tags": ["project"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.all": {
+ "get": {
+ "operationId": "project-all",
+ "tags": ["project"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.remove": {
+ "post": {
+ "operationId": "project-remove",
+ "tags": ["project"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "projectId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["projectId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.update": {
+ "post": {
+ "operationId": "project-update",
+ "tags": ["project"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "projectId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "organizationId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string"
+ }
+ },
+ "required": ["projectId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.duplicate": {
+ "post": {
+ "operationId": "project-duplicate",
+ "tags": ["project"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "sourceEnvironmentId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "includeServices": {
+ "type": "boolean",
+ "default": true
+ },
+ "selectedServices": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mariadb",
+ "mongo",
+ "mysql",
+ "redis",
+ "compose"
+ ]
+ }
+ },
+ "required": ["id", "type"],
+ "additionalProperties": false
+ }
+ },
+ "duplicateInSameProject": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ "required": ["sourceEnvironmentId", "name"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.create": {
+ "post": {
+ "operationId": "application-create",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["name", "environmentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.one": {
+ "get": {
+ "operationId": "application-one",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.reload": {
+ "post": {
+ "operationId": "application-reload",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appName": {
+ "type": "string"
+ },
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": ["appName", "applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.delete": {
+ "post": {
+ "operationId": "application-delete",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.stop": {
+ "post": {
+ "operationId": "application-stop",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.start": {
+ "post": {
+ "operationId": "application-start",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.redeploy": {
+ "post": {
+ "operationId": "application-redeploy",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveEnvironment": {
+ "post": {
+ "operationId": "application-saveEnvironment",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildArgs": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildSecrets": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveBuildType": {
+ "post": {
+ "operationId": "application-saveBuildType",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "buildType": {
+ "type": "string",
+ "enum": [
+ "dockerfile",
+ "heroku_buildpacks",
+ "paketo_buildpacks",
+ "nixpacks",
+ "static",
+ "railpack"
+ ]
+ },
+ "dockerfile": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerContextPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerBuildStage": {
+ "type": "string",
+ "nullable": true
+ },
+ "herokuVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "railpackVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "publishDirectory": {
+ "type": "string",
+ "nullable": true
+ },
+ "isStaticSpa": {
+ "type": "boolean",
+ "nullable": true
+ }
+ },
+ "required": [
+ "applicationId",
+ "buildType",
+ "dockerContextPath",
+ "dockerBuildStage"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveGithubProvider": {
+ "post": {
+ "operationId": "application-saveGithubProvider",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "repository": {
+ "type": "string",
+ "nullable": true
+ },
+ "branch": {
+ "type": "string",
+ "nullable": true
+ },
+ "owner": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubId": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ },
+ "triggerType": {
+ "type": "string",
+ "enum": ["push", "tag"],
+ "default": "push"
+ }
+ },
+ "required": [
+ "applicationId",
+ "owner",
+ "githubId",
+ "enableSubmodules"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveGitlabProvider": {
+ "post": {
+ "operationId": "application-saveGitlabProvider",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "gitlabBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabId": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabProjectId": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitlabPathNamespace": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "applicationId",
+ "gitlabBranch",
+ "gitlabBuildPath",
+ "gitlabOwner",
+ "gitlabRepository",
+ "gitlabId",
+ "gitlabProjectId",
+ "gitlabPathNamespace",
+ "enableSubmodules"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveBitbucketProvider": {
+ "post": {
+ "operationId": "application-saveBitbucketProvider",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "bitbucketBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketId": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "bitbucketBranch",
+ "bitbucketBuildPath",
+ "bitbucketOwner",
+ "bitbucketRepository",
+ "bitbucketId",
+ "applicationId",
+ "enableSubmodules"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveGiteaProvider": {
+ "post": {
+ "operationId": "application-saveGiteaProvider",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "giteaBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaId": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "applicationId",
+ "giteaBranch",
+ "giteaBuildPath",
+ "giteaOwner",
+ "giteaRepository",
+ "giteaId",
+ "enableSubmodules"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveDockerProvider": {
+ "post": {
+ "operationId": "application-saveDockerProvider",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "dockerImage": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string",
+ "nullable": true
+ },
+ "password": {
+ "type": "string",
+ "nullable": true
+ },
+ "registryUrl": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveGitProvider": {
+ "post": {
+ "operationId": "application-saveGitProvider",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "customGitBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "customGitBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ },
+ "customGitSSHKeyId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["applicationId", "enableSubmodules"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.disconnectGitProvider": {
+ "post": {
+ "operationId": "application-disconnectGitProvider",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.markRunning": {
+ "post": {
+ "operationId": "application-markRunning",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.update": {
+ "post": {
+ "operationId": "application-update",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewEnv": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "previewBuildArgs": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewBuildSecrets": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewLabels": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "previewWildcard": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "previewHttps": {
+ "type": "boolean"
+ },
+ "previewPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewCertificateType": {
+ "type": "string",
+ "enum": ["letsencrypt", "none", "custom"]
+ },
+ "previewCustomCertResolver": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewLimit": {
+ "type": "number",
+ "nullable": true
+ },
+ "isPreviewDeploymentsActive": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "previewRequireCollaboratorPermissions": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "rollbackActive": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "buildArgs": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildSecrets": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "subtitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "refreshToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "sourceType": {
+ "type": "string",
+ "enum": [
+ "github",
+ "docker",
+ "git",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "drop"
+ ]
+ },
+ "cleanCache": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "repository": {
+ "type": "string",
+ "nullable": true
+ },
+ "owner": {
+ "type": "string",
+ "nullable": true
+ },
+ "branch": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "triggerType": {
+ "type": "string",
+ "enum": ["push", "tag"],
+ "nullable": true
+ },
+ "autoDeploy": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "gitlabProjectId": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitlabRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabPathNamespace": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "username": {
+ "type": "string",
+ "nullable": true
+ },
+ "password": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerImage": {
+ "type": "string",
+ "nullable": true
+ },
+ "registryUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitSSHKeyId": {
+ "type": "string",
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ },
+ "dockerfile": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerContextPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerBuildStage": {
+ "type": "string",
+ "nullable": true
+ },
+ "dropBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": ["SpreadDescriptor"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["Spread"],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": ["Architecture", "OS"],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ },
+ "buildType": {
+ "type": "string",
+ "enum": [
+ "dockerfile",
+ "heroku_buildpacks",
+ "paketo_buildpacks",
+ "nixpacks",
+ "static",
+ "railpack"
+ ]
+ },
+ "railpackVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "herokuVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "publishDirectory": {
+ "type": "string",
+ "nullable": true
+ },
+ "isStaticSpa": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "registryId": {
+ "type": "string",
+ "nullable": true
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "githubId": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabId": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaId": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketId": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildServerId": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildRegistryId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.refreshToken": {
+ "post": {
+ "operationId": "application-refreshToken",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.deploy": {
+ "post": {
+ "operationId": "application-deploy",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.cleanQueues": {
+ "post": {
+ "operationId": "application-cleanQueues",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.killBuild": {
+ "post": {
+ "operationId": "application-killBuild",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.readTraefikConfig": {
+ "get": {
+ "operationId": "application-readTraefikConfig",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.updateTraefikConfig": {
+ "post": {
+ "operationId": "application-updateTraefikConfig",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "traefikConfig": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId", "traefikConfig"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.readAppMonitoring": {
+ "get": {
+ "operationId": "application-readAppMonitoring",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.move": {
+ "post": {
+ "operationId": "application-move",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId", "targetEnvironmentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.cancelDeployment": {
+ "post": {
+ "operationId": "application-cancelDeployment",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.create": {
+ "post": {
+ "operationId": "mysql-create",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mysql:8"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "databaseRootPassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "environmentId",
+ "databaseName",
+ "databaseUser",
+ "databasePassword",
+ "databaseRootPassword"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.one": {
+ "get": {
+ "operationId": "mysql-one",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "mysqlId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.start": {
+ "post": {
+ "operationId": "mysql-start",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": ["mysqlId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.stop": {
+ "post": {
+ "operationId": "mysql-stop",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": ["mysqlId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.saveExternalPort": {
+ "post": {
+ "operationId": "mysql-saveExternalPort",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": ["mysqlId", "externalPort"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.deploy": {
+ "post": {
+ "operationId": "mysql-deploy",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": ["mysqlId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.changeStatus": {
+ "post": {
+ "operationId": "mysql-changeStatus",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ }
+ },
+ "required": ["mysqlId", "applicationStatus"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.reload": {
+ "post": {
+ "operationId": "mysql-reload",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["mysqlId", "appName"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.remove": {
+ "post": {
+ "operationId": "mysql-remove",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": ["mysqlId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.saveEnvironment": {
+ "post": {
+ "operationId": "mysql-saveEnvironment",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["mysqlId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.update": {
+ "post": {
+ "operationId": "mysql-update",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "databaseRootPassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mysql:8"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": ["SpreadDescriptor"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["Spread"],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": ["Architecture", "OS"],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "environmentId": {
+ "type": "string"
+ }
+ },
+ "required": ["mysqlId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.move": {
+ "post": {
+ "operationId": "mysql-move",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": ["mysqlId", "targetEnvironmentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.rebuild": {
+ "post": {
+ "operationId": "mysql-rebuild",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": ["mysqlId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.create": {
+ "post": {
+ "operationId": "postgres-create",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "postgres:15"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "databaseName",
+ "databaseUser",
+ "databasePassword",
+ "environmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.one": {
+ "get": {
+ "operationId": "postgres-one",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "postgresId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.start": {
+ "post": {
+ "operationId": "postgres-start",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": ["postgresId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.stop": {
+ "post": {
+ "operationId": "postgres-stop",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": ["postgresId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.saveExternalPort": {
+ "post": {
+ "operationId": "postgres-saveExternalPort",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": ["postgresId", "externalPort"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.deploy": {
+ "post": {
+ "operationId": "postgres-deploy",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": ["postgresId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.changeStatus": {
+ "post": {
+ "operationId": "postgres-changeStatus",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ }
+ },
+ "required": ["postgresId", "applicationStatus"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.remove": {
+ "post": {
+ "operationId": "postgres-remove",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": ["postgresId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.saveEnvironment": {
+ "post": {
+ "operationId": "postgres-saveEnvironment",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["postgresId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.reload": {
+ "post": {
+ "operationId": "postgres-reload",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string"
+ }
+ },
+ "required": ["postgresId", "appName"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.update": {
+ "post": {
+ "operationId": "postgres-update",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "postgres:15"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": ["SpreadDescriptor"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["Spread"],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": ["Architecture", "OS"],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "environmentId": {
+ "type": "string"
+ }
+ },
+ "required": ["postgresId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.move": {
+ "post": {
+ "operationId": "postgres-move",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": ["postgresId", "targetEnvironmentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.rebuild": {
+ "post": {
+ "operationId": "postgres-rebuild",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": ["postgresId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.create": {
+ "post": {
+ "operationId": "redis-create",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "redis:8"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "databasePassword",
+ "environmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.one": {
+ "get": {
+ "operationId": "redis-one",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "redisId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.start": {
+ "post": {
+ "operationId": "redis-start",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": ["redisId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.reload": {
+ "post": {
+ "operationId": "redis-reload",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["redisId", "appName"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.stop": {
+ "post": {
+ "operationId": "redis-stop",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": ["redisId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.saveExternalPort": {
+ "post": {
+ "operationId": "redis-saveExternalPort",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": ["redisId", "externalPort"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.deploy": {
+ "post": {
+ "operationId": "redis-deploy",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": ["redisId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.changeStatus": {
+ "post": {
+ "operationId": "redis-changeStatus",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ }
+ },
+ "required": ["redisId", "applicationStatus"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.remove": {
+ "post": {
+ "operationId": "redis-remove",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": ["redisId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.saveEnvironment": {
+ "post": {
+ "operationId": "redis-saveEnvironment",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["redisId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.update": {
+ "post": {
+ "operationId": "redis-update",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databasePassword": {
+ "type": "string"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "redis:8"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": ["SpreadDescriptor"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["Spread"],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": ["Architecture", "OS"],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "environmentId": {
+ "type": "string"
+ }
+ },
+ "required": ["redisId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.move": {
+ "post": {
+ "operationId": "redis-move",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": ["redisId", "targetEnvironmentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.rebuild": {
+ "post": {
+ "operationId": "redis-rebuild",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": ["redisId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.create": {
+ "post": {
+ "operationId": "mongo-create",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mongo:15"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ },
+ "replicaSets": {
+ "type": "boolean",
+ "default": false,
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "environmentId",
+ "databaseUser",
+ "databasePassword"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.one": {
+ "get": {
+ "operationId": "mongo-one",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "mongoId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.start": {
+ "post": {
+ "operationId": "mongo-start",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": ["mongoId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.stop": {
+ "post": {
+ "operationId": "mongo-stop",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": ["mongoId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.saveExternalPort": {
+ "post": {
+ "operationId": "mongo-saveExternalPort",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": ["mongoId", "externalPort"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.deploy": {
+ "post": {
+ "operationId": "mongo-deploy",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": ["mongoId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.changeStatus": {
+ "post": {
+ "operationId": "mongo-changeStatus",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ }
+ },
+ "required": ["mongoId", "applicationStatus"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.reload": {
+ "post": {
+ "operationId": "mongo-reload",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["mongoId", "appName"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.remove": {
+ "post": {
+ "operationId": "mongo-remove",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": ["mongoId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.saveEnvironment": {
+ "post": {
+ "operationId": "mongo-saveEnvironment",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["mongoId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.update": {
+ "post": {
+ "operationId": "mongo-update",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mongo:15"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": ["SpreadDescriptor"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["Spread"],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": ["Architecture", "OS"],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "replicaSets": {
+ "type": "boolean",
+ "default": false,
+ "nullable": true
+ }
+ },
+ "required": ["mongoId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.move": {
+ "post": {
+ "operationId": "mongo-move",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": ["mongoId", "targetEnvironmentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.rebuild": {
+ "post": {
+ "operationId": "mongo-rebuild",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": ["mongoId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.create": {
+ "post": {
+ "operationId": "mariadb-create",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mariadb:6"
+ },
+ "databaseRootPassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "databaseRootPassword",
+ "environmentId",
+ "databaseName",
+ "databaseUser",
+ "databasePassword"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.one": {
+ "get": {
+ "operationId": "mariadb-one",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "mariadbId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.start": {
+ "post": {
+ "operationId": "mariadb-start",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": ["mariadbId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.stop": {
+ "post": {
+ "operationId": "mariadb-stop",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": ["mariadbId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.saveExternalPort": {
+ "post": {
+ "operationId": "mariadb-saveExternalPort",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": ["mariadbId", "externalPort"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.deploy": {
+ "post": {
+ "operationId": "mariadb-deploy",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": ["mariadbId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.changeStatus": {
+ "post": {
+ "operationId": "mariadb-changeStatus",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ }
+ },
+ "required": ["mariadbId", "applicationStatus"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.remove": {
+ "post": {
+ "operationId": "mariadb-remove",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": ["mariadbId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.saveEnvironment": {
+ "post": {
+ "operationId": "mariadb-saveEnvironment",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["mariadbId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.reload": {
+ "post": {
+ "operationId": "mariadb-reload",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["mariadbId", "appName"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.update": {
+ "post": {
+ "operationId": "mariadb-update",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "databaseRootPassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mariadb:6"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": ["SpreadDescriptor"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["Spread"],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": ["Architecture", "OS"],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "environmentId": {
+ "type": "string"
+ }
+ },
+ "required": ["mariadbId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.move": {
+ "post": {
+ "operationId": "mariadb-move",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": ["mariadbId", "targetEnvironmentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.rebuild": {
+ "post": {
+ "operationId": "mariadb-rebuild",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": ["mariadbId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.create": {
+ "post": {
+ "operationId": "compose-create",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "composeType": {
+ "type": "string",
+ "enum": ["docker-compose", "stack"]
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeFile": {
+ "type": "string"
+ }
+ },
+ "required": ["name", "environmentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.one": {
+ "get": {
+ "operationId": "compose-one",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.update": {
+ "post": {
+ "operationId": "compose-update",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeFile": {
+ "type": "string"
+ },
+ "refreshToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "sourceType": {
+ "type": "string",
+ "enum": [
+ "git",
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "raw"
+ ]
+ },
+ "composeType": {
+ "type": "string",
+ "enum": ["docker-compose", "stack"]
+ },
+ "repository": {
+ "type": "string",
+ "nullable": true
+ },
+ "owner": {
+ "type": "string",
+ "nullable": true
+ },
+ "branch": {
+ "type": "string",
+ "nullable": true
+ },
+ "autoDeploy": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "gitlabProjectId": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitlabRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabPathNamespace": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitSSHKeyId": {
+ "type": "string",
+ "nullable": true
+ },
+ "command": {
+ "type": "string"
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ },
+ "composePath": {
+ "type": "string",
+ "minLength": 1
+ },
+ "suffix": {
+ "type": "string"
+ },
+ "randomize": {
+ "type": "boolean"
+ },
+ "isolatedDeployment": {
+ "type": "boolean"
+ },
+ "isolatedDeploymentsVolume": {
+ "type": "boolean"
+ },
+ "triggerType": {
+ "type": "string",
+ "enum": ["push", "tag"],
+ "nullable": true
+ },
+ "composeStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "githubId": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabId": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketId": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.delete": {
+ "post": {
+ "operationId": "compose-delete",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "deleteVolumes": {
+ "type": "boolean"
+ }
+ },
+ "required": ["composeId", "deleteVolumes"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.cleanQueues": {
+ "post": {
+ "operationId": "compose-cleanQueues",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.killBuild": {
+ "post": {
+ "operationId": "compose-killBuild",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.loadServices": {
+ "get": {
+ "operationId": "compose-loadServices",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "type",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "anyOf": [
+ {
+ "not": {}
+ },
+ {
+ "type": "string",
+ "enum": ["fetch", "cache"]
+ }
+ ],
+ "default": "cache"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.loadMountsByService": {
+ "get": {
+ "operationId": "compose-loadMountsByService",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "serviceName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.fetchSourceType": {
+ "post": {
+ "operationId": "compose-fetchSourceType",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.randomizeCompose": {
+ "post": {
+ "operationId": "compose-randomizeCompose",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "suffix": {
+ "type": "string"
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.isolatedDeployment": {
+ "post": {
+ "operationId": "compose-isolatedDeployment",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "suffix": {
+ "type": "string"
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.getConvertedCompose": {
+ "get": {
+ "operationId": "compose-getConvertedCompose",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.deploy": {
+ "post": {
+ "operationId": "compose-deploy",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.redeploy": {
+ "post": {
+ "operationId": "compose-redeploy",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.stop": {
+ "post": {
+ "operationId": "compose-stop",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.start": {
+ "post": {
+ "operationId": "compose-start",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.getDefaultCommand": {
+ "get": {
+ "operationId": "compose-getDefaultCommand",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.refreshToken": {
+ "post": {
+ "operationId": "compose-refreshToken",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.deployTemplate": {
+ "post": {
+ "operationId": "compose-deployTemplate",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "baseUrl": {
+ "type": "string"
+ }
+ },
+ "required": ["environmentId", "id"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.templates": {
+ "get": {
+ "operationId": "compose-templates",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "baseUrl",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.getTags": {
+ "get": {
+ "operationId": "compose-getTags",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "baseUrl",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.disconnectGitProvider": {
+ "post": {
+ "operationId": "compose-disconnectGitProvider",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.move": {
+ "post": {
+ "operationId": "compose-move",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": ["composeId", "targetEnvironmentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.processTemplate": {
+ "post": {
+ "operationId": "compose-processTemplate",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "base64": {
+ "type": "string"
+ },
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["base64", "composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.import": {
+ "post": {
+ "operationId": "compose-import",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "base64": {
+ "type": "string"
+ },
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["base64", "composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.cancelDeployment": {
+ "post": {
+ "operationId": "compose-cancelDeployment",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.all": {
+ "get": {
+ "operationId": "user-all",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.one": {
+ "get": {
+ "operationId": "user-one",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "userId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.get": {
+ "get": {
+ "operationId": "user-get",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.haveRootAccess": {
+ "get": {
+ "operationId": "user-haveRootAccess",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getBackups": {
+ "get": {
+ "operationId": "user-getBackups",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getServerMetrics": {
+ "get": {
+ "operationId": "user-getServerMetrics",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.update": {
+ "post": {
+ "operationId": "user-update",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string"
+ },
+ "isRegistered": {
+ "type": "boolean"
+ },
+ "expirationDate": {
+ "type": "string"
+ },
+ "createdAt2": {
+ "type": "string"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "twoFactorEnabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "email": {
+ "type": "string",
+ "format": "email",
+ "minLength": 1
+ },
+ "emailVerified": {
+ "type": "boolean"
+ },
+ "image": {
+ "type": "string",
+ "nullable": true
+ },
+ "banned": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "banReason": {
+ "type": "string",
+ "nullable": true
+ },
+ "banExpires": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "updatedAt": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "serverIp": {
+ "type": "string",
+ "nullable": true
+ },
+ "certificateType": {
+ "type": "string",
+ "enum": ["letsencrypt", "none", "custom"]
+ },
+ "https": {
+ "type": "boolean"
+ },
+ "host": {
+ "type": "string",
+ "nullable": true
+ },
+ "letsEncryptEmail": {
+ "type": "string",
+ "nullable": true
+ },
+ "sshPrivateKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "enableDockerCleanup": {
+ "type": "boolean"
+ },
+ "logCleanupCron": {
+ "type": "string",
+ "nullable": true
+ },
+ "enablePaidFeatures": {
+ "type": "boolean"
+ },
+ "allowImpersonation": {
+ "type": "boolean"
+ },
+ "metricsConfig": {
+ "type": "object",
+ "properties": {
+ "server": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": ["Dokploy", "Remote"]
+ },
+ "refreshRate": {
+ "type": "number"
+ },
+ "port": {
+ "type": "number"
+ },
+ "token": {
+ "type": "string"
+ },
+ "urlCallback": {
+ "type": "string"
+ },
+ "retentionDays": {
+ "type": "number"
+ },
+ "cronJob": {
+ "type": "string"
+ },
+ "thresholds": {
+ "type": "object",
+ "properties": {
+ "cpu": {
+ "type": "number"
+ },
+ "memory": {
+ "type": "number"
+ }
+ },
+ "required": ["cpu", "memory"],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "type",
+ "refreshRate",
+ "port",
+ "token",
+ "urlCallback",
+ "retentionDays",
+ "cronJob",
+ "thresholds"
+ ],
+ "additionalProperties": false
+ },
+ "containers": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number"
+ },
+ "services": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": ["include", "exclude"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["refreshRate", "services"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["server", "containers"],
+ "additionalProperties": false
+ },
+ "cleanupCacheApplications": {
+ "type": "boolean"
+ },
+ "cleanupCacheOnPreviews": {
+ "type": "boolean"
+ },
+ "cleanupCacheOnCompose": {
+ "type": "boolean"
+ },
+ "stripeCustomerId": {
+ "type": "string",
+ "nullable": true
+ },
+ "stripeSubscriptionId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serversQuantity": {
+ "type": "number"
+ },
+ "password": {
+ "type": "string"
+ },
+ "currentPassword": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getUserByToken": {
+ "get": {
+ "operationId": "user-getUserByToken",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "token",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getMetricsToken": {
+ "get": {
+ "operationId": "user-getMetricsToken",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.remove": {
+ "post": {
+ "operationId": "user-remove",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string"
+ }
+ },
+ "required": ["userId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.assignPermissions": {
+ "post": {
+ "operationId": "user-assignPermissions",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessedProjects": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "accessedEnvironments": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "accessedServices": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "canCreateProjects": {
+ "type": "boolean"
+ },
+ "canCreateServices": {
+ "type": "boolean"
+ },
+ "canDeleteProjects": {
+ "type": "boolean"
+ },
+ "canDeleteServices": {
+ "type": "boolean"
+ },
+ "canAccessToDocker": {
+ "type": "boolean"
+ },
+ "canAccessToTraefikFiles": {
+ "type": "boolean"
+ },
+ "canAccessToAPI": {
+ "type": "boolean"
+ },
+ "canAccessToSSHKeys": {
+ "type": "boolean"
+ },
+ "canAccessToGitProviders": {
+ "type": "boolean"
+ },
+ "canDeleteEnvironments": {
+ "type": "boolean"
+ },
+ "canCreateEnvironments": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "id",
+ "accessedProjects",
+ "accessedEnvironments",
+ "accessedServices",
+ "canCreateProjects",
+ "canCreateServices",
+ "canDeleteProjects",
+ "canDeleteServices",
+ "canAccessToDocker",
+ "canAccessToTraefikFiles",
+ "canAccessToAPI",
+ "canAccessToSSHKeys",
+ "canAccessToGitProviders",
+ "canDeleteEnvironments",
+ "canCreateEnvironments"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getInvitations": {
+ "get": {
+ "operationId": "user-getInvitations",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getContainerMetrics": {
+ "get": {
+ "operationId": "user-getContainerMetrics",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "url",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "token",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "dataPoints",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.generateToken": {
+ "post": {
+ "operationId": "user-generateToken",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.deleteApiKey": {
+ "post": {
+ "operationId": "user-deleteApiKey",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "apiKeyId": {
+ "type": "string"
+ }
+ },
+ "required": ["apiKeyId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.createApiKey": {
+ "post": {
+ "operationId": "user-createApiKey",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "prefix": {
+ "type": "string"
+ },
+ "expiresIn": {
+ "type": "number"
+ },
+ "metadata": {
+ "type": "object",
+ "properties": {
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": ["organizationId"],
+ "additionalProperties": false
+ },
+ "rateLimitEnabled": {
+ "type": "boolean"
+ },
+ "rateLimitTimeWindow": {
+ "type": "number"
+ },
+ "rateLimitMax": {
+ "type": "number"
+ },
+ "remaining": {
+ "type": "number"
+ },
+ "refillAmount": {
+ "type": "number"
+ },
+ "refillInterval": {
+ "type": "number"
+ }
+ },
+ "required": ["name", "metadata"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.checkUserOrganizations": {
+ "get": {
+ "operationId": "user-checkUserOrganizations",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "userId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.sendInvitation": {
+ "post": {
+ "operationId": "user-sendInvitation",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "invitationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["invitationId", "notificationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.create": {
+ "post": {
+ "operationId": "domain-create",
+ "tags": ["domain"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "minLength": 1
+ },
+ "path": {
+ "type": "string",
+ "minLength": 1,
+ "nullable": true
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1,
+ "maximum": 65535,
+ "nullable": true
+ },
+ "https": {
+ "type": "boolean"
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "certificateType": {
+ "type": "string",
+ "enum": ["letsencrypt", "none", "custom"]
+ },
+ "customCertResolver": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "domainType": {
+ "type": "string",
+ "enum": ["compose", "application", "preview"],
+ "nullable": true
+ },
+ "previewDeploymentId": {
+ "type": "string",
+ "nullable": true
+ },
+ "internalPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "stripPath": {
+ "type": "boolean"
+ }
+ },
+ "required": ["host"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.byApplicationId": {
+ "get": {
+ "operationId": "domain-byApplicationId",
+ "tags": ["domain"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.byComposeId": {
+ "get": {
+ "operationId": "domain-byComposeId",
+ "tags": ["domain"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.generateDomain": {
+ "post": {
+ "operationId": "domain-generateDomain",
+ "tags": ["domain"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appName": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": ["appName"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.canGenerateTraefikMeDomains": {
+ "get": {
+ "operationId": "domain-canGenerateTraefikMeDomains",
+ "tags": ["domain"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.update": {
+ "post": {
+ "operationId": "domain-update",
+ "tags": ["domain"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "minLength": 1
+ },
+ "path": {
+ "type": "string",
+ "minLength": 1,
+ "nullable": true
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1,
+ "maximum": 65535,
+ "nullable": true
+ },
+ "https": {
+ "type": "boolean"
+ },
+ "certificateType": {
+ "type": "string",
+ "enum": ["letsencrypt", "none", "custom"]
+ },
+ "customCertResolver": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "domainType": {
+ "type": "string",
+ "enum": ["compose", "application", "preview"],
+ "nullable": true
+ },
+ "internalPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "stripPath": {
+ "type": "boolean"
+ },
+ "domainId": {
+ "type": "string"
+ }
+ },
+ "required": ["host", "domainId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.one": {
+ "get": {
+ "operationId": "domain-one",
+ "tags": ["domain"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "domainId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.delete": {
+ "post": {
+ "operationId": "domain-delete",
+ "tags": ["domain"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "domainId": {
+ "type": "string"
+ }
+ },
+ "required": ["domainId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.validateDomain": {
+ "post": {
+ "operationId": "domain-validateDomain",
+ "tags": ["domain"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "domain": {
+ "type": "string"
+ },
+ "serverIp": {
+ "type": "string"
+ }
+ },
+ "required": ["domain"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.create": {
+ "post": {
+ "operationId": "destination-create",
+ "tags": ["destination"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "provider": {
+ "type": "string",
+ "nullable": true
+ },
+ "accessKey": {
+ "type": "string"
+ },
+ "bucket": {
+ "type": "string"
+ },
+ "region": {
+ "type": "string"
+ },
+ "endpoint": {
+ "type": "string"
+ },
+ "secretAccessKey": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "provider",
+ "accessKey",
+ "bucket",
+ "region",
+ "endpoint",
+ "secretAccessKey"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.testConnection": {
+ "post": {
+ "operationId": "destination-testConnection",
+ "tags": ["destination"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "provider": {
+ "type": "string",
+ "nullable": true
+ },
+ "accessKey": {
+ "type": "string"
+ },
+ "bucket": {
+ "type": "string"
+ },
+ "region": {
+ "type": "string"
+ },
+ "endpoint": {
+ "type": "string"
+ },
+ "secretAccessKey": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "provider",
+ "accessKey",
+ "bucket",
+ "region",
+ "endpoint",
+ "secretAccessKey"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.one": {
+ "get": {
+ "operationId": "destination-one",
+ "tags": ["destination"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "destinationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.all": {
+ "get": {
+ "operationId": "destination-all",
+ "tags": ["destination"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.remove": {
+ "post": {
+ "operationId": "destination-remove",
+ "tags": ["destination"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "destinationId": {
+ "type": "string"
+ }
+ },
+ "required": ["destinationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.update": {
+ "post": {
+ "operationId": "destination-update",
+ "tags": ["destination"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessKey": {
+ "type": "string"
+ },
+ "bucket": {
+ "type": "string"
+ },
+ "region": {
+ "type": "string"
+ },
+ "endpoint": {
+ "type": "string"
+ },
+ "secretAccessKey": {
+ "type": "string"
+ },
+ "destinationId": {
+ "type": "string"
+ },
+ "provider": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "accessKey",
+ "bucket",
+ "region",
+ "endpoint",
+ "secretAccessKey",
+ "destinationId",
+ "provider"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.create": {
+ "post": {
+ "operationId": "backup-create",
+ "tags": ["backup"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "schedule": {
+ "type": "string"
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "prefix": {
+ "type": "string",
+ "minLength": 1
+ },
+ "destinationId": {
+ "type": "string"
+ },
+ "keepLatestCount": {
+ "type": "number",
+ "nullable": true
+ },
+ "database": {
+ "type": "string",
+ "minLength": 1
+ },
+ "mariadbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mysqlId": {
+ "type": "string",
+ "nullable": true
+ },
+ "postgresId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mongoId": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseType": {
+ "type": "string",
+ "enum": [
+ "postgres",
+ "mariadb",
+ "mysql",
+ "mongo",
+ "web-server"
+ ]
+ },
+ "userId": {
+ "type": "string",
+ "nullable": true
+ },
+ "backupType": {
+ "type": "string",
+ "enum": ["database", "compose"]
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "metadata": {
+ "nullable": true
+ }
+ },
+ "required": [
+ "schedule",
+ "prefix",
+ "destinationId",
+ "database",
+ "databaseType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.one": {
+ "get": {
+ "operationId": "backup-one",
+ "tags": ["backup"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "backupId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.update": {
+ "post": {
+ "operationId": "backup-update",
+ "tags": ["backup"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "schedule": {
+ "type": "string"
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "prefix": {
+ "type": "string",
+ "minLength": 1
+ },
+ "backupId": {
+ "type": "string"
+ },
+ "destinationId": {
+ "type": "string"
+ },
+ "database": {
+ "type": "string",
+ "minLength": 1
+ },
+ "keepLatestCount": {
+ "type": "number",
+ "nullable": true
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "metadata": {
+ "nullable": true
+ },
+ "databaseType": {
+ "type": "string",
+ "enum": [
+ "postgres",
+ "mariadb",
+ "mysql",
+ "mongo",
+ "web-server"
+ ]
+ }
+ },
+ "required": [
+ "schedule",
+ "prefix",
+ "backupId",
+ "destinationId",
+ "database",
+ "serviceName",
+ "databaseType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.remove": {
+ "post": {
+ "operationId": "backup-remove",
+ "tags": ["backup"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": ["backupId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupPostgres": {
+ "post": {
+ "operationId": "backup-manualBackupPostgres",
+ "tags": ["backup"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": ["backupId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupMySql": {
+ "post": {
+ "operationId": "backup-manualBackupMySql",
+ "tags": ["backup"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": ["backupId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupMariadb": {
+ "post": {
+ "operationId": "backup-manualBackupMariadb",
+ "tags": ["backup"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": ["backupId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupCompose": {
+ "post": {
+ "operationId": "backup-manualBackupCompose",
+ "tags": ["backup"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": ["backupId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupMongo": {
+ "post": {
+ "operationId": "backup-manualBackupMongo",
+ "tags": ["backup"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": ["backupId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupWebServer": {
+ "post": {
+ "operationId": "backup-manualBackupWebServer",
+ "tags": ["backup"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": ["backupId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.listBackupFiles": {
+ "get": {
+ "operationId": "backup-listBackupFiles",
+ "tags": ["backup"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "destinationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "search",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.all": {
+ "get": {
+ "operationId": "deployment-all",
+ "tags": ["deployment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.allByCompose": {
+ "get": {
+ "operationId": "deployment-allByCompose",
+ "tags": ["deployment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.allByServer": {
+ "get": {
+ "operationId": "deployment-allByServer",
+ "tags": ["deployment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.allByType": {
+ "get": {
+ "operationId": "deployment-allByType",
+ "tags": ["deployment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "type",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "enum": [
+ "application",
+ "compose",
+ "server",
+ "schedule",
+ "previewDeployment",
+ "backup",
+ "volumeBackup"
+ ]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.killProcess": {
+ "post": {
+ "operationId": "deployment-killProcess",
+ "tags": ["deployment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "deploymentId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["deploymentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/previewDeployment.all": {
+ "get": {
+ "operationId": "previewDeployment-all",
+ "tags": ["previewDeployment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/previewDeployment.delete": {
+ "post": {
+ "operationId": "previewDeployment-delete",
+ "tags": ["previewDeployment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "previewDeploymentId": {
+ "type": "string"
+ }
+ },
+ "required": ["previewDeploymentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/previewDeployment.one": {
+ "get": {
+ "operationId": "previewDeployment-one",
+ "tags": ["previewDeployment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "previewDeploymentId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.create": {
+ "post": {
+ "operationId": "mounts-create",
+ "tags": ["mounts"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": ["bind", "volume", "file"]
+ },
+ "hostPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "volumeName": {
+ "type": "string",
+ "nullable": true
+ },
+ "content": {
+ "type": "string",
+ "nullable": true
+ },
+ "mountPath": {
+ "type": "string",
+ "minLength": 1
+ },
+ "serviceType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ],
+ "default": "application"
+ },
+ "filePath": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["type", "mountPath", "serviceId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.remove": {
+ "post": {
+ "operationId": "mounts-remove",
+ "tags": ["mounts"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mountId": {
+ "type": "string"
+ }
+ },
+ "required": ["mountId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.one": {
+ "get": {
+ "operationId": "mounts-one",
+ "tags": ["mounts"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "mountId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.update": {
+ "post": {
+ "operationId": "mounts-update",
+ "tags": ["mounts"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mountId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "type": {
+ "type": "string",
+ "enum": ["bind", "volume", "file"]
+ },
+ "hostPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "volumeName": {
+ "type": "string",
+ "nullable": true
+ },
+ "filePath": {
+ "type": "string",
+ "nullable": true
+ },
+ "content": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ],
+ "default": "application"
+ },
+ "mountPath": {
+ "type": "string",
+ "minLength": 1
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "postgresId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mariadbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mongoId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mysqlId": {
+ "type": "string",
+ "nullable": true
+ },
+ "redisId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["mountId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.allNamedByApplicationId": {
+ "get": {
+ "operationId": "mounts-allNamedByApplicationId",
+ "tags": ["mounts"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/certificates.create": {
+ "post": {
+ "operationId": "certificates-create",
+ "tags": ["certificates"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "certificateId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "certificateData": {
+ "type": "string",
+ "minLength": 1
+ },
+ "privateKey": {
+ "type": "string",
+ "minLength": 1
+ },
+ "certificatePath": {
+ "type": "string"
+ },
+ "autoRenew": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "organizationId": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "certificateData",
+ "privateKey",
+ "organizationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/certificates.one": {
+ "get": {
+ "operationId": "certificates-one",
+ "tags": ["certificates"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "certificateId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/certificates.remove": {
+ "post": {
+ "operationId": "certificates-remove",
+ "tags": ["certificates"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "certificateId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["certificateId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/certificates.all": {
+ "get": {
+ "operationId": "certificates-all",
+ "tags": ["certificates"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.reloadServer": {
+ "post": {
+ "operationId": "settings-reloadServer",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanRedis": {
+ "post": {
+ "operationId": "settings-cleanRedis",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.reloadRedis": {
+ "post": {
+ "operationId": "settings-reloadRedis",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.reloadTraefik": {
+ "post": {
+ "operationId": "settings-reloadTraefik",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.toggleDashboard": {
+ "post": {
+ "operationId": "settings-toggleDashboard",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "enableDashboard": {
+ "type": "boolean"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanUnusedImages": {
+ "post": {
+ "operationId": "settings-cleanUnusedImages",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanUnusedVolumes": {
+ "post": {
+ "operationId": "settings-cleanUnusedVolumes",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanStoppedContainers": {
+ "post": {
+ "operationId": "settings-cleanStoppedContainers",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanDockerBuilder": {
+ "post": {
+ "operationId": "settings-cleanDockerBuilder",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanDockerPrune": {
+ "post": {
+ "operationId": "settings-cleanDockerPrune",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanAll": {
+ "post": {
+ "operationId": "settings-cleanAll",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanMonitoring": {
+ "post": {
+ "operationId": "settings-cleanMonitoring",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.saveSSHPrivateKey": {
+ "post": {
+ "operationId": "settings-saveSSHPrivateKey",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "sshPrivateKey": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["sshPrivateKey"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.assignDomainServer": {
+ "post": {
+ "operationId": "settings-assignDomainServer",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "nullable": true
+ },
+ "certificateType": {
+ "type": "string",
+ "enum": ["letsencrypt", "none", "custom"]
+ },
+ "letsEncryptEmail": {
+ "type": "string",
+ "nullable": true
+ },
+ "https": {
+ "type": "boolean"
+ }
+ },
+ "required": ["host", "certificateType"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanSSHPrivateKey": {
+ "post": {
+ "operationId": "settings-cleanSSHPrivateKey",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateDockerCleanup": {
+ "post": {
+ "operationId": "settings-updateDockerCleanup",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "enableDockerCleanup": {
+ "type": "boolean"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": ["enableDockerCleanup"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readTraefikConfig": {
+ "get": {
+ "operationId": "settings-readTraefikConfig",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateTraefikConfig": {
+ "post": {
+ "operationId": "settings-updateTraefikConfig",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "traefikConfig": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["traefikConfig"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readWebServerTraefikConfig": {
+ "get": {
+ "operationId": "settings-readWebServerTraefikConfig",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateWebServerTraefikConfig": {
+ "post": {
+ "operationId": "settings-updateWebServerTraefikConfig",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "traefikConfig": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["traefikConfig"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readMiddlewareTraefikConfig": {
+ "get": {
+ "operationId": "settings-readMiddlewareTraefikConfig",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateMiddlewareTraefikConfig": {
+ "post": {
+ "operationId": "settings-updateMiddlewareTraefikConfig",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "traefikConfig": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["traefikConfig"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getUpdateData": {
+ "post": {
+ "operationId": "settings-getUpdateData",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateServer": {
+ "post": {
+ "operationId": "settings-updateServer",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getDokployVersion": {
+ "get": {
+ "operationId": "settings-getDokployVersion",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getReleaseTag": {
+ "get": {
+ "operationId": "settings-getReleaseTag",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readDirectories": {
+ "get": {
+ "operationId": "settings-readDirectories",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateTraefikFile": {
+ "post": {
+ "operationId": "settings-updateTraefikFile",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "path": {
+ "type": "string",
+ "minLength": 1
+ },
+ "traefikConfig": {
+ "type": "string",
+ "minLength": 1
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": ["path", "traefikConfig"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readTraefikFile": {
+ "get": {
+ "operationId": "settings-readTraefikFile",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "path",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getIp": {
+ "get": {
+ "operationId": "settings-getIp",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getOpenApiDocument": {
+ "get": {
+ "operationId": "settings-getOpenApiDocument",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readTraefikEnv": {
+ "get": {
+ "operationId": "settings-readTraefikEnv",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.writeTraefikEnv": {
+ "post": {
+ "operationId": "settings-writeTraefikEnv",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "env": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": ["env"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.haveTraefikDashboardPortEnabled": {
+ "get": {
+ "operationId": "settings-haveTraefikDashboardPortEnabled",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.haveActivateRequests": {
+ "get": {
+ "operationId": "settings-haveActivateRequests",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.toggleRequests": {
+ "post": {
+ "operationId": "settings-toggleRequests",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "enable": {
+ "type": "boolean"
+ }
+ },
+ "required": ["enable"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.isCloud": {
+ "get": {
+ "operationId": "settings-isCloud",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.isUserSubscribed": {
+ "get": {
+ "operationId": "settings-isUserSubscribed",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.health": {
+ "get": {
+ "operationId": "settings-health",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.setupGPU": {
+ "post": {
+ "operationId": "settings-setupGPU",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.checkGPUStatus": {
+ "get": {
+ "operationId": "settings-checkGPUStatus",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateTraefikPorts": {
+ "post": {
+ "operationId": "settings-updateTraefikPorts",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ },
+ "additionalPorts": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "targetPort": {
+ "type": "number"
+ },
+ "publishedPort": {
+ "type": "number"
+ },
+ "protocol": {
+ "type": "string",
+ "enum": ["tcp", "udp", "sctp"]
+ }
+ },
+ "required": ["targetPort", "publishedPort", "protocol"],
+ "additionalProperties": false
+ }
+ }
+ },
+ "required": ["additionalPorts"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getTraefikPorts": {
+ "get": {
+ "operationId": "settings-getTraefikPorts",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateLogCleanup": {
+ "post": {
+ "operationId": "settings-updateLogCleanup",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "cronExpression": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["cronExpression"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getLogCleanupStatus": {
+ "get": {
+ "operationId": "settings-getLogCleanupStatus",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getDokployCloudIps": {
+ "get": {
+ "operationId": "settings-getDokployCloudIps",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/security.create": {
+ "post": {
+ "operationId": "security-create",
+ "tags": ["security"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["applicationId", "username", "password"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/security.one": {
+ "get": {
+ "operationId": "security-one",
+ "tags": ["security"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "securityId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/security.delete": {
+ "post": {
+ "operationId": "security-delete",
+ "tags": ["security"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "securityId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["securityId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/security.update": {
+ "post": {
+ "operationId": "security-update",
+ "tags": ["security"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "securityId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["securityId", "username", "password"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redirects.create": {
+ "post": {
+ "operationId": "redirects-create",
+ "tags": ["redirects"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "regex": {
+ "type": "string",
+ "minLength": 1
+ },
+ "replacement": {
+ "type": "string",
+ "minLength": 1
+ },
+ "permanent": {
+ "type": "boolean"
+ },
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "regex",
+ "replacement",
+ "permanent",
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redirects.one": {
+ "get": {
+ "operationId": "redirects-one",
+ "tags": ["redirects"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "redirectId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redirects.delete": {
+ "post": {
+ "operationId": "redirects-delete",
+ "tags": ["redirects"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redirectId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["redirectId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redirects.update": {
+ "post": {
+ "operationId": "redirects-update",
+ "tags": ["redirects"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redirectId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "regex": {
+ "type": "string",
+ "minLength": 1
+ },
+ "replacement": {
+ "type": "string",
+ "minLength": 1
+ },
+ "permanent": {
+ "type": "boolean"
+ }
+ },
+ "required": ["redirectId", "regex", "replacement", "permanent"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/port.create": {
+ "post": {
+ "operationId": "port-create",
+ "tags": ["port"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "publishedPort": {
+ "type": "number"
+ },
+ "publishMode": {
+ "type": "string",
+ "enum": ["ingress", "host"],
+ "default": "ingress"
+ },
+ "targetPort": {
+ "type": "number"
+ },
+ "protocol": {
+ "type": "string",
+ "enum": ["tcp", "udp"],
+ "default": "tcp"
+ },
+ "applicationId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["publishedPort", "targetPort", "applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/port.one": {
+ "get": {
+ "operationId": "port-one",
+ "tags": ["port"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "portId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/port.delete": {
+ "post": {
+ "operationId": "port-delete",
+ "tags": ["port"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "portId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["portId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/port.update": {
+ "post": {
+ "operationId": "port-update",
+ "tags": ["port"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "portId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "publishedPort": {
+ "type": "number"
+ },
+ "publishMode": {
+ "type": "string",
+ "enum": ["ingress", "host"],
+ "default": "ingress"
+ },
+ "targetPort": {
+ "type": "number"
+ },
+ "protocol": {
+ "type": "string",
+ "enum": ["tcp", "udp"],
+ "default": "tcp"
+ }
+ },
+ "required": ["portId", "publishedPort", "targetPort"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.create": {
+ "post": {
+ "operationId": "registry-create",
+ "tags": ["registry"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "registryName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "registryUrl": {
+ "type": "string"
+ },
+ "registryType": {
+ "type": "string",
+ "enum": ["cloud"]
+ },
+ "imagePrefix": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "registryName",
+ "username",
+ "password",
+ "registryUrl",
+ "registryType",
+ "imagePrefix"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.remove": {
+ "post": {
+ "operationId": "registry-remove",
+ "tags": ["registry"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "registryId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["registryId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.update": {
+ "post": {
+ "operationId": "registry-update",
+ "tags": ["registry"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "registryId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "registryName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "imagePrefix": {
+ "type": "string",
+ "nullable": true
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "registryUrl": {
+ "type": "string"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "registryType": {
+ "type": "string",
+ "enum": ["cloud"]
+ },
+ "organizationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": ["registryId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.all": {
+ "get": {
+ "operationId": "registry-all",
+ "tags": ["registry"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.one": {
+ "get": {
+ "operationId": "registry-one",
+ "tags": ["registry"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "registryId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.testRegistry": {
+ "post": {
+ "operationId": "registry-testRegistry",
+ "tags": ["registry"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "registryName": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "registryUrl": {
+ "type": "string"
+ },
+ "registryType": {
+ "type": "string",
+ "enum": ["cloud"]
+ },
+ "imagePrefix": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "username",
+ "password",
+ "registryUrl",
+ "registryType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/cluster.getNodes": {
+ "get": {
+ "operationId": "cluster-getNodes",
+ "tags": ["cluster"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/cluster.removeWorker": {
+ "post": {
+ "operationId": "cluster-removeWorker",
+ "tags": ["cluster"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "nodeId": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": ["nodeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/cluster.addWorker": {
+ "get": {
+ "operationId": "cluster-addWorker",
+ "tags": ["cluster"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/cluster.addManager": {
+ "get": {
+ "operationId": "cluster-addManager",
+ "tags": ["cluster"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createSlack": {
+ "post": {
+ "operationId": "notification-createSlack",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "channel": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "webhookUrl",
+ "channel"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateSlack": {
+ "post": {
+ "operationId": "notification-updateSlack",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "channel": {
+ "type": "string"
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "slackId": {
+ "type": "string"
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": ["notificationId", "slackId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testSlackConnection": {
+ "post": {
+ "operationId": "notification-testSlackConnection",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "channel": {
+ "type": "string"
+ }
+ },
+ "required": ["webhookUrl", "channel"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createTelegram": {
+ "post": {
+ "operationId": "notification-createTelegram",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "botToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "chatId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "messageThreadId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "botToken",
+ "chatId",
+ "messageThreadId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateTelegram": {
+ "post": {
+ "operationId": "notification-updateTelegram",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "botToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "chatId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "messageThreadId": {
+ "type": "string"
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "telegramId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": ["notificationId", "telegramId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testTelegramConnection": {
+ "post": {
+ "operationId": "notification-testTelegramConnection",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "botToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "chatId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "messageThreadId": {
+ "type": "string"
+ }
+ },
+ "required": ["botToken", "chatId", "messageThreadId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createDiscord": {
+ "post": {
+ "operationId": "notification-createDiscord",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "webhookUrl",
+ "decoration"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateDiscord": {
+ "post": {
+ "operationId": "notification-updateDiscord",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "discordId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": ["notificationId", "discordId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testDiscordConnection": {
+ "post": {
+ "operationId": "notification-testDiscordConnection",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ }
+ },
+ "required": ["webhookUrl"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createEmail": {
+ "post": {
+ "operationId": "notification-createEmail",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "smtpServer": {
+ "type": "string",
+ "minLength": 1
+ },
+ "smtpPort": {
+ "type": "number",
+ "minimum": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "fromAddress": {
+ "type": "string",
+ "minLength": 1
+ },
+ "toAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "smtpServer",
+ "smtpPort",
+ "username",
+ "password",
+ "fromAddress",
+ "toAddresses"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateEmail": {
+ "post": {
+ "operationId": "notification-updateEmail",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "smtpServer": {
+ "type": "string",
+ "minLength": 1
+ },
+ "smtpPort": {
+ "type": "number",
+ "minimum": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "fromAddress": {
+ "type": "string",
+ "minLength": 1
+ },
+ "toAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "emailId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": ["notificationId", "emailId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testEmailConnection": {
+ "post": {
+ "operationId": "notification-testEmailConnection",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "smtpServer": {
+ "type": "string",
+ "minLength": 1
+ },
+ "smtpPort": {
+ "type": "number",
+ "minimum": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "toAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1
+ },
+ "fromAddress": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "smtpServer",
+ "smtpPort",
+ "username",
+ "password",
+ "toAddresses",
+ "fromAddress"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.remove": {
+ "post": {
+ "operationId": "notification-remove",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "notificationId": {
+ "type": "string"
+ }
+ },
+ "required": ["notificationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.one": {
+ "get": {
+ "operationId": "notification-one",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "notificationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.all": {
+ "get": {
+ "operationId": "notification-all",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.receiveNotification": {
+ "post": {
+ "operationId": "notification-receiveNotification",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "ServerType": {
+ "type": "string",
+ "enum": ["Dokploy", "Remote"],
+ "default": "Dokploy"
+ },
+ "Type": {
+ "type": "string",
+ "enum": ["Memory", "CPU"]
+ },
+ "Value": {
+ "type": "number"
+ },
+ "Threshold": {
+ "type": "number"
+ },
+ "Message": {
+ "type": "string"
+ },
+ "Timestamp": {
+ "type": "string"
+ },
+ "Token": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Type",
+ "Value",
+ "Threshold",
+ "Message",
+ "Timestamp",
+ "Token"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createGotify": {
+ "post": {
+ "operationId": "notification-createGotify",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverUrl",
+ "appToken",
+ "priority",
+ "decoration"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateGotify": {
+ "post": {
+ "operationId": "notification-updateGotify",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "gotifyId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": ["notificationId", "gotifyId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testGotifyConnection": {
+ "post": {
+ "operationId": "notification-testGotifyConnection",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ }
+ },
+ "required": ["serverUrl", "appToken", "priority"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createNtfy": {
+ "post": {
+ "operationId": "notification-createNtfy",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "topic": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverUrl",
+ "topic",
+ "accessToken",
+ "priority"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateNtfy": {
+ "post": {
+ "operationId": "notification-updateNtfy",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "topic": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "ntfyId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": ["notificationId", "ntfyId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testNtfyConnection": {
+ "post": {
+ "operationId": "notification-testNtfyConnection",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "topic": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ }
+ },
+ "required": ["serverUrl", "topic", "accessToken", "priority"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createLark": {
+ "post": {
+ "operationId": "notification-createLark",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "webhookUrl"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateLark": {
+ "post": {
+ "operationId": "notification-updateLark",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "larkId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": ["notificationId", "larkId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testLarkConnection": {
+ "post": {
+ "operationId": "notification-testLarkConnection",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["webhookUrl"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.getEmailProviders": {
+ "get": {
+ "operationId": "notification-getEmailProviders",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.create": {
+ "post": {
+ "operationId": "sshKey-create",
+ "tags": ["sshKey"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "privateKey": {
+ "type": "string"
+ },
+ "publicKey": {
+ "type": "string"
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "privateKey",
+ "publicKey",
+ "organizationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.remove": {
+ "post": {
+ "operationId": "sshKey-remove",
+ "tags": ["sshKey"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "sshKeyId": {
+ "type": "string"
+ }
+ },
+ "required": ["sshKeyId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.one": {
+ "get": {
+ "operationId": "sshKey-one",
+ "tags": ["sshKey"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "sshKeyId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.all": {
+ "get": {
+ "operationId": "sshKey-all",
+ "tags": ["sshKey"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.generate": {
+ "post": {
+ "operationId": "sshKey-generate",
+ "tags": ["sshKey"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": ["rsa", "ed25519"]
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.update": {
+ "post": {
+ "operationId": "sshKey-update",
+ "tags": ["sshKey"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "lastUsedAt": {
+ "type": "string",
+ "nullable": true
+ },
+ "sshKeyId": {
+ "type": "string"
+ }
+ },
+ "required": ["sshKeyId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitProvider.getAll": {
+ "get": {
+ "operationId": "gitProvider-getAll",
+ "tags": ["gitProvider"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitProvider.remove": {
+ "post": {
+ "operationId": "gitProvider-remove",
+ "tags": ["gitProvider"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "gitProviderId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["gitProviderId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.create": {
+ "post": {
+ "operationId": "gitea-create",
+ "tags": ["gitea"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "giteaId": {
+ "type": "string"
+ },
+ "giteaUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "redirectUri": {
+ "type": "string"
+ },
+ "clientId": {
+ "type": "string"
+ },
+ "clientSecret": {
+ "type": "string"
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "accessToken": {
+ "type": "string"
+ },
+ "refreshToken": {
+ "type": "string"
+ },
+ "expiresAt": {
+ "type": "number"
+ },
+ "scopes": {
+ "type": "string"
+ },
+ "lastAuthenticatedAt": {
+ "type": "number"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "giteaUsername": {
+ "type": "string"
+ },
+ "organizationName": {
+ "type": "string"
+ }
+ },
+ "required": ["giteaUrl", "name"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.one": {
+ "get": {
+ "operationId": "gitea-one",
+ "tags": ["gitea"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "giteaId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.giteaProviders": {
+ "get": {
+ "operationId": "gitea-giteaProviders",
+ "tags": ["gitea"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.getGiteaRepositories": {
+ "get": {
+ "operationId": "gitea-getGiteaRepositories",
+ "tags": ["gitea"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "giteaId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.getGiteaBranches": {
+ "get": {
+ "operationId": "gitea-getGiteaBranches",
+ "tags": ["gitea"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "repositoryName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "giteaId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.testConnection": {
+ "post": {
+ "operationId": "gitea-testConnection",
+ "tags": ["gitea"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "giteaId": {
+ "type": "string"
+ },
+ "organizationName": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.update": {
+ "post": {
+ "operationId": "gitea-update",
+ "tags": ["gitea"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "giteaId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "giteaUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "redirectUri": {
+ "type": "string"
+ },
+ "clientId": {
+ "type": "string"
+ },
+ "clientSecret": {
+ "type": "string"
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "accessToken": {
+ "type": "string"
+ },
+ "refreshToken": {
+ "type": "string"
+ },
+ "expiresAt": {
+ "type": "number"
+ },
+ "scopes": {
+ "type": "string"
+ },
+ "lastAuthenticatedAt": {
+ "type": "number"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "giteaUsername": {
+ "type": "string"
+ },
+ "organizationName": {
+ "type": "string"
+ }
+ },
+ "required": ["giteaId", "giteaUrl", "gitProviderId", "name"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.getGiteaUrl": {
+ "get": {
+ "operationId": "gitea-getGiteaUrl",
+ "tags": ["gitea"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "giteaId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.create": {
+ "post": {
+ "operationId": "bitbucket-create",
+ "tags": ["bitbucket"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "bitbucketId": {
+ "type": "string"
+ },
+ "bitbucketUsername": {
+ "type": "string"
+ },
+ "bitbucketEmail": {
+ "type": "string",
+ "format": "email"
+ },
+ "appPassword": {
+ "type": "string"
+ },
+ "apiToken": {
+ "type": "string"
+ },
+ "bitbucketWorkspaceName": {
+ "type": "string"
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "authId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["authId", "name"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.one": {
+ "get": {
+ "operationId": "bitbucket-one",
+ "tags": ["bitbucket"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "bitbucketId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.bitbucketProviders": {
+ "get": {
+ "operationId": "bitbucket-bitbucketProviders",
+ "tags": ["bitbucket"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.getBitbucketRepositories": {
+ "get": {
+ "operationId": "bitbucket-getBitbucketRepositories",
+ "tags": ["bitbucket"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "bitbucketId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.getBitbucketBranches": {
+ "get": {
+ "operationId": "bitbucket-getBitbucketBranches",
+ "tags": ["bitbucket"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "repo",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "bitbucketId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.testConnection": {
+ "post": {
+ "operationId": "bitbucket-testConnection",
+ "tags": ["bitbucket"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "bitbucketId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "bitbucketUsername": {
+ "type": "string"
+ },
+ "bitbucketEmail": {
+ "type": "string",
+ "format": "email"
+ },
+ "workspaceName": {
+ "type": "string"
+ },
+ "apiToken": {
+ "type": "string"
+ },
+ "appPassword": {
+ "type": "string"
+ }
+ },
+ "required": ["bitbucketId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.update": {
+ "post": {
+ "operationId": "bitbucket-update",
+ "tags": ["bitbucket"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "bitbucketId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "bitbucketUsername": {
+ "type": "string"
+ },
+ "bitbucketEmail": {
+ "type": "string",
+ "format": "email"
+ },
+ "appPassword": {
+ "type": "string"
+ },
+ "apiToken": {
+ "type": "string"
+ },
+ "bitbucketWorkspaceName": {
+ "type": "string"
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": ["bitbucketId", "gitProviderId", "name"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.create": {
+ "post": {
+ "operationId": "gitlab-create",
+ "tags": ["gitlab"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "gitlabId": {
+ "type": "string"
+ },
+ "gitlabUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "redirectUri": {
+ "type": "string"
+ },
+ "secret": {
+ "type": "string"
+ },
+ "accessToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "refreshToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "groupName": {
+ "type": "string"
+ },
+ "expiresAt": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "authId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["gitlabUrl", "authId", "name"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.one": {
+ "get": {
+ "operationId": "gitlab-one",
+ "tags": ["gitlab"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "gitlabId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.gitlabProviders": {
+ "get": {
+ "operationId": "gitlab-gitlabProviders",
+ "tags": ["gitlab"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.getGitlabRepositories": {
+ "get": {
+ "operationId": "gitlab-getGitlabRepositories",
+ "tags": ["gitlab"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "gitlabId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.getGitlabBranches": {
+ "get": {
+ "operationId": "gitlab-getGitlabBranches",
+ "tags": ["gitlab"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "number"
+ }
+ },
+ {
+ "name": "owner",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "repo",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "gitlabId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.testConnection": {
+ "post": {
+ "operationId": "gitlab-testConnection",
+ "tags": ["gitlab"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "gitlabId": {
+ "type": "string"
+ },
+ "groupName": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.update": {
+ "post": {
+ "operationId": "gitlab-update",
+ "tags": ["gitlab"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "gitlabId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "gitlabUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "redirectUri": {
+ "type": "string"
+ },
+ "secret": {
+ "type": "string"
+ },
+ "accessToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "refreshToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "groupName": {
+ "type": "string"
+ },
+ "expiresAt": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["gitlabId", "gitlabUrl", "gitProviderId", "name"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.one": {
+ "get": {
+ "operationId": "github-one",
+ "tags": ["github"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "githubId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.getGithubRepositories": {
+ "get": {
+ "operationId": "github-getGithubRepositories",
+ "tags": ["github"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "githubId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.getGithubBranches": {
+ "get": {
+ "operationId": "github-getGithubBranches",
+ "tags": ["github"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "repo",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "owner",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "githubId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.githubProviders": {
+ "get": {
+ "operationId": "github-githubProviders",
+ "tags": ["github"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.testConnection": {
+ "post": {
+ "operationId": "github-testConnection",
+ "tags": ["github"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "githubId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["githubId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.update": {
+ "post": {
+ "operationId": "github-update",
+ "tags": ["github"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "githubId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "githubAppName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "githubAppId": {
+ "type": "number",
+ "nullable": true
+ },
+ "githubClientId": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubClientSecret": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubInstallationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubPrivateKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubWebhookSecret": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitProviderId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "githubId",
+ "githubAppName",
+ "gitProviderId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.create": {
+ "post": {
+ "operationId": "server-create",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "ipAddress": {
+ "type": "string"
+ },
+ "port": {
+ "type": "number"
+ },
+ "username": {
+ "type": "string"
+ },
+ "sshKeyId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverType": {
+ "type": "string",
+ "enum": ["deploy", "build"]
+ }
+ },
+ "required": [
+ "name",
+ "ipAddress",
+ "port",
+ "username",
+ "sshKeyId",
+ "serverType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.one": {
+ "get": {
+ "operationId": "server-one",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.getDefaultCommand": {
+ "get": {
+ "operationId": "server-getDefaultCommand",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.all": {
+ "get": {
+ "operationId": "server-all",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.count": {
+ "get": {
+ "operationId": "server-count",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.withSSHKey": {
+ "get": {
+ "operationId": "server-withSSHKey",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.buildServers": {
+ "get": {
+ "operationId": "server-buildServers",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.setup": {
+ "post": {
+ "operationId": "server-setup",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["serverId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.validate": {
+ "get": {
+ "operationId": "server-validate",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.security": {
+ "get": {
+ "operationId": "server-security",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.setupMonitoring": {
+ "post": {
+ "operationId": "server-setupMonitoring",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "metricsConfig": {
+ "type": "object",
+ "properties": {
+ "server": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number",
+ "minimum": 2
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1
+ },
+ "token": {
+ "type": "string"
+ },
+ "urlCallback": {
+ "type": "string",
+ "format": "uri"
+ },
+ "retentionDays": {
+ "type": "number",
+ "minimum": 1
+ },
+ "cronJob": {
+ "type": "string",
+ "minLength": 1
+ },
+ "thresholds": {
+ "type": "object",
+ "properties": {
+ "cpu": {
+ "type": "number",
+ "minimum": 0
+ },
+ "memory": {
+ "type": "number",
+ "minimum": 0
+ }
+ },
+ "required": ["cpu", "memory"],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "refreshRate",
+ "port",
+ "token",
+ "urlCallback",
+ "retentionDays",
+ "cronJob",
+ "thresholds"
+ ],
+ "additionalProperties": false
+ },
+ "containers": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number",
+ "minimum": 2
+ },
+ "services": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "required": ["refreshRate", "services"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["server", "containers"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["serverId", "metricsConfig"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.remove": {
+ "post": {
+ "operationId": "server-remove",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["serverId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.update": {
+ "post": {
+ "operationId": "server-update",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "ipAddress": {
+ "type": "string"
+ },
+ "port": {
+ "type": "number"
+ },
+ "username": {
+ "type": "string"
+ },
+ "sshKeyId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverType": {
+ "type": "string",
+ "enum": ["deploy", "build"]
+ },
+ "command": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "serverId",
+ "ipAddress",
+ "port",
+ "username",
+ "sshKeyId",
+ "serverType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.publicIp": {
+ "get": {
+ "operationId": "server-publicIp",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.getServerTime": {
+ "get": {
+ "operationId": "server-getServerTime",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.getServerMetrics": {
+ "get": {
+ "operationId": "server-getServerMetrics",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "url",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "token",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "dataPoints",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/stripe.getProducts": {
+ "get": {
+ "operationId": "stripe-getProducts",
+ "tags": ["stripe"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/stripe.createCheckoutSession": {
+ "post": {
+ "operationId": "stripe-createCheckoutSession",
+ "tags": ["stripe"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "productId": {
+ "type": "string"
+ },
+ "serverQuantity": {
+ "type": "number",
+ "minimum": 1
+ },
+ "isAnnual": {
+ "type": "boolean"
+ }
+ },
+ "required": ["productId", "serverQuantity", "isAnnual"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/stripe.createCustomerPortalSession": {
+ "post": {
+ "operationId": "stripe-createCustomerPortalSession",
+ "tags": ["stripe"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/stripe.canCreateMoreServers": {
+ "get": {
+ "operationId": "stripe-canCreateMoreServers",
+ "tags": ["stripe"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/swarm.getNodes": {
+ "get": {
+ "operationId": "swarm-getNodes",
+ "tags": ["swarm"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/swarm.getNodeInfo": {
+ "get": {
+ "operationId": "swarm-getNodeInfo",
+ "tags": ["swarm"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "nodeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/swarm.getNodeApps": {
+ "get": {
+ "operationId": "swarm-getNodeApps",
+ "tags": ["swarm"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.one": {
+ "get": {
+ "operationId": "ai-one",
+ "tags": ["ai"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "aiId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.getModels": {
+ "get": {
+ "operationId": "ai-getModels",
+ "tags": ["ai"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "apiUrl",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "apiKey",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.create": {
+ "post": {
+ "operationId": "ai-create",
+ "tags": ["ai"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "apiUrl": {
+ "type": "string",
+ "format": "uri"
+ },
+ "apiKey": {
+ "type": "string"
+ },
+ "model": {
+ "type": "string",
+ "minLength": 1
+ },
+ "isEnabled": {
+ "type": "boolean"
+ }
+ },
+ "required": ["name", "apiUrl", "apiKey", "model", "isEnabled"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.update": {
+ "post": {
+ "operationId": "ai-update",
+ "tags": ["ai"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "aiId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "apiUrl": {
+ "type": "string",
+ "format": "uri"
+ },
+ "apiKey": {
+ "type": "string"
+ },
+ "model": {
+ "type": "string",
+ "minLength": 1
+ },
+ "isEnabled": {
+ "type": "boolean"
+ },
+ "createdAt": {
+ "type": "string"
+ }
+ },
+ "required": ["aiId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.getAll": {
+ "get": {
+ "operationId": "ai-getAll",
+ "tags": ["ai"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.get": {
+ "get": {
+ "operationId": "ai-get",
+ "tags": ["ai"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "aiId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.delete": {
+ "post": {
+ "operationId": "ai-delete",
+ "tags": ["ai"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "aiId": {
+ "type": "string"
+ }
+ },
+ "required": ["aiId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.suggest": {
+ "post": {
+ "operationId": "ai-suggest",
+ "tags": ["ai"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "aiId": {
+ "type": "string"
+ },
+ "input": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": ["aiId", "input"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.deploy": {
+ "post": {
+ "operationId": "ai-deploy",
+ "tags": ["ai"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "id": {
+ "type": "string",
+ "minLength": 1
+ },
+ "dockerCompose": {
+ "type": "string",
+ "minLength": 1
+ },
+ "envVariables": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string"
+ },
+ "domains": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "minLength": 1
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1
+ },
+ "serviceName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["host", "port", "serviceName"],
+ "additionalProperties": false
+ }
+ },
+ "configFiles": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "filePath": {
+ "type": "string",
+ "minLength": 1
+ },
+ "content": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["filePath", "content"],
+ "additionalProperties": false
+ }
+ }
+ },
+ "required": [
+ "environmentId",
+ "id",
+ "dockerCompose",
+ "envVariables",
+ "name",
+ "description"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.create": {
+ "post": {
+ "operationId": "organization-create",
+ "tags": ["organization"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "logo": {
+ "type": "string"
+ }
+ },
+ "required": ["name"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.all": {
+ "get": {
+ "operationId": "organization-all",
+ "tags": ["organization"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.one": {
+ "get": {
+ "operationId": "organization-one",
+ "tags": ["organization"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "organizationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.update": {
+ "post": {
+ "operationId": "organization-update",
+ "tags": ["organization"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "organizationId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "logo": {
+ "type": "string"
+ }
+ },
+ "required": ["organizationId", "name"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.delete": {
+ "post": {
+ "operationId": "organization-delete",
+ "tags": ["organization"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": ["organizationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.allInvitations": {
+ "get": {
+ "operationId": "organization-allInvitations",
+ "tags": ["organization"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.removeInvitation": {
+ "post": {
+ "operationId": "organization-removeInvitation",
+ "tags": ["organization"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "invitationId": {
+ "type": "string"
+ }
+ },
+ "required": ["invitationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.setDefault": {
+ "post": {
+ "operationId": "organization-setDefault",
+ "tags": ["organization"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "organizationId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["organizationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.create": {
+ "post": {
+ "operationId": "schedule-create",
+ "tags": ["schedule"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "scheduleId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "cronExpression": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "shellType": {
+ "type": "string",
+ "enum": ["bash", "sh"]
+ },
+ "scheduleType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "compose",
+ "server",
+ "dokploy-server"
+ ]
+ },
+ "command": {
+ "type": "string"
+ },
+ "script": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ },
+ "userId": {
+ "type": "string",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "createdAt": {
+ "type": "string"
+ }
+ },
+ "required": ["name", "cronExpression", "command"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.update": {
+ "post": {
+ "operationId": "schedule-update",
+ "tags": ["schedule"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "scheduleId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string"
+ },
+ "cronExpression": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "shellType": {
+ "type": "string",
+ "enum": ["bash", "sh"]
+ },
+ "scheduleType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "compose",
+ "server",
+ "dokploy-server"
+ ]
+ },
+ "command": {
+ "type": "string"
+ },
+ "script": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ },
+ "userId": {
+ "type": "string",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "createdAt": {
+ "type": "string"
+ }
+ },
+ "required": ["scheduleId", "name", "cronExpression", "command"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.delete": {
+ "post": {
+ "operationId": "schedule-delete",
+ "tags": ["schedule"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "scheduleId": {
+ "type": "string"
+ }
+ },
+ "required": ["scheduleId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.list": {
+ "get": {
+ "operationId": "schedule-list",
+ "tags": ["schedule"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "scheduleType",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "enum": ["application", "compose", "server", "dokploy-server"]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.one": {
+ "get": {
+ "operationId": "schedule-one",
+ "tags": ["schedule"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "scheduleId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.runManually": {
+ "post": {
+ "operationId": "schedule-runManually",
+ "tags": ["schedule"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "scheduleId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["scheduleId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/rollback.delete": {
+ "post": {
+ "operationId": "rollback-delete",
+ "tags": ["rollback"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "rollbackId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["rollbackId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/rollback.rollback": {
+ "post": {
+ "operationId": "rollback-rollback",
+ "tags": ["rollback"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "rollbackId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["rollbackId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.list": {
+ "get": {
+ "operationId": "volumeBackups-list",
+ "tags": ["volumeBackups"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "volumeBackupType",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.create": {
+ "post": {
+ "operationId": "volumeBackups-create",
+ "tags": ["volumeBackups"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "volumeName": {
+ "type": "string"
+ },
+ "prefix": {
+ "type": "string"
+ },
+ "serviceType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ]
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "turnOff": {
+ "type": "boolean"
+ },
+ "cronExpression": {
+ "type": "string"
+ },
+ "keepLatestCount": {
+ "type": "number",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "postgresId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mariadbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mongoId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mysqlId": {
+ "type": "string",
+ "nullable": true
+ },
+ "redisId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "destinationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "volumeName",
+ "prefix",
+ "cronExpression",
+ "destinationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.one": {
+ "get": {
+ "operationId": "volumeBackups-one",
+ "tags": ["volumeBackups"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "volumeBackupId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.delete": {
+ "post": {
+ "operationId": "volumeBackups-delete",
+ "tags": ["volumeBackups"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "volumeBackupId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["volumeBackupId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.update": {
+ "post": {
+ "operationId": "volumeBackups-update",
+ "tags": ["volumeBackups"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "volumeName": {
+ "type": "string"
+ },
+ "prefix": {
+ "type": "string"
+ },
+ "serviceType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ]
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "turnOff": {
+ "type": "boolean"
+ },
+ "cronExpression": {
+ "type": "string"
+ },
+ "keepLatestCount": {
+ "type": "number",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "postgresId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mariadbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mongoId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mysqlId": {
+ "type": "string",
+ "nullable": true
+ },
+ "redisId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "destinationId": {
+ "type": "string"
+ },
+ "volumeBackupId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "name",
+ "volumeName",
+ "prefix",
+ "cronExpression",
+ "destinationId",
+ "volumeBackupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.runManually": {
+ "post": {
+ "operationId": "volumeBackups-runManually",
+ "tags": ["volumeBackups"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "volumeBackupId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["volumeBackupId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.create": {
+ "post": {
+ "operationId": "environment-create",
+ "tags": ["environment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "projectId": {
+ "type": "string"
+ }
+ },
+ "required": ["name", "projectId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.one": {
+ "get": {
+ "operationId": "environment-one",
+ "tags": ["environment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "environmentId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.byProjectId": {
+ "get": {
+ "operationId": "environment-byProjectId",
+ "tags": ["environment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.remove": {
+ "post": {
+ "operationId": "environment-remove",
+ "tags": ["environment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["environmentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.update": {
+ "post": {
+ "operationId": "environment-update",
+ "tags": ["environment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string"
+ },
+ "projectId": {
+ "type": "string"
+ }
+ },
+ "required": ["environmentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.duplicate": {
+ "post": {
+ "operationId": "environment-duplicate",
+ "tags": ["environment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["environmentId", "name"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ }
+ },
+ "components": {
+ "securitySchemes": {
+ "apiKey": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "x-api-key",
+ "description": "API key authentication. Generate an API key from your Dokploy dashboard under Settings > API Keys."
+ }
+ },
+ "responses": {
+ "error": {
+ "description": "Error response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string"
+ },
+ "code": {
+ "type": "string"
+ },
+ "issues": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "required": ["message"],
+ "additionalProperties": false
+ }
+ }
+ },
+ "required": ["message", "code"],
+ "additionalProperties": false
+ }
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ {
+ "name": "admin"
+ },
+ {
+ "name": "docker"
+ },
+ {
+ "name": "compose"
+ },
+ {
+ "name": "registry"
+ },
+ {
+ "name": "cluster"
+ },
+ {
+ "name": "user"
+ },
+ {
+ "name": "domain"
+ },
+ {
+ "name": "destination"
+ },
+ {
+ "name": "backup"
+ },
+ {
+ "name": "deployment"
+ },
+ {
+ "name": "mounts"
+ },
+ {
+ "name": "certificates"
+ },
+ {
+ "name": "settings"
+ },
+ {
+ "name": "security"
+ },
+ {
+ "name": "redirects"
+ },
+ {
+ "name": "port"
+ },
+ {
+ "name": "project"
+ },
+ {
+ "name": "application"
+ },
+ {
+ "name": "mysql"
+ },
+ {
+ "name": "postgres"
+ },
+ {
+ "name": "redis"
+ },
+ {
+ "name": "mongo"
+ },
+ {
+ "name": "mariadb"
+ },
+ {
+ "name": "sshRouter"
+ },
+ {
+ "name": "gitProvider"
+ },
+ {
+ "name": "bitbucket"
+ },
+ {
+ "name": "github"
+ },
+ {
+ "name": "gitlab"
+ },
+ {
+ "name": "gitea"
+ },
+ {
+ "name": "server"
+ },
+ {
+ "name": "swarm"
+ },
+ {
+ "name": "ai"
+ },
+ {
+ "name": "organization"
+ },
+ {
+ "name": "schedule"
+ },
+ {
+ "name": "rollback"
+ },
+ {
+ "name": "volumeBackups"
+ },
+ {
+ "name": "environment"
+ }
+ ],
+ "externalDocs": {
+ "description": "Full documentation",
+ "url": "https://docs.dokploy.com"
+ },
+ "security": [
+ {
+ "apiKey": []
+ }
+ ]
+}
From b91cb6cb5edd0b73dab660398d1c29552625a3d7 Mon Sep 17 00:00:00 2001
From: Dokploy Bot
Date: Sun, 30 Nov 2025 06:51:50 +0000
Subject: [PATCH 36/74] chore: update OpenAPI specification [skip ci]
Generated from commit: c8277f6573c1f71094fdbca2a2d94a1a1c4d33ba
Triggered by: push
---
openapi.json | 41557 +++++++++++++++++++++++++------------------------
1 file changed, 21554 insertions(+), 20003 deletions(-)
diff --git a/openapi.json b/openapi.json
index 76366bdb2..399e4a13a 100644
--- a/openapi.json
+++ b/openapi.json
@@ -1,20004 +1,21555 @@
{
- "openapi": "3.0.3",
- "info": {
- "title": "Dokploy API",
- "description": "Complete API documentation for Dokploy - Deploy applications, manage databases, and orchestrate your infrastructure. This API allows you to programmatically manage all aspects of your Dokploy instance.",
- "version": "1.0.0",
- "contact": {
- "name": "Dokploy Team",
- "url": "https://dokploy.com"
- },
- "license": {
- "name": "Apache 2.0",
- "url": "https://github.com/dokploy/dokploy/blob/canary/LICENSE"
- }
- },
- "servers": [
- {
- "url": "https://your-dokploy-instance.com/api"
- }
- ],
- "paths": {
- "/admin.setupMonitoring": {
- "post": {
- "operationId": "admin-setupMonitoring",
- "tags": ["admin"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "metricsConfig": {
- "type": "object",
- "properties": {
- "server": {
- "type": "object",
- "properties": {
- "refreshRate": {
- "type": "number",
- "minimum": 2
- },
- "port": {
- "type": "number",
- "minimum": 1
- },
- "token": {
- "type": "string"
- },
- "urlCallback": {
- "type": "string",
- "format": "uri"
- },
- "retentionDays": {
- "type": "number",
- "minimum": 1
- },
- "cronJob": {
- "type": "string",
- "minLength": 1
- },
- "thresholds": {
- "type": "object",
- "properties": {
- "cpu": {
- "type": "number",
- "minimum": 0
- },
- "memory": {
- "type": "number",
- "minimum": 0
- }
- },
- "required": ["cpu", "memory"],
- "additionalProperties": false
- }
- },
- "required": [
- "refreshRate",
- "port",
- "token",
- "urlCallback",
- "retentionDays",
- "cronJob",
- "thresholds"
- ],
- "additionalProperties": false
- },
- "containers": {
- "type": "object",
- "properties": {
- "refreshRate": {
- "type": "number",
- "minimum": 2
- },
- "services": {
- "type": "object",
- "properties": {
- "include": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "exclude": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- },
- "additionalProperties": false
- }
- },
- "required": ["refreshRate", "services"],
- "additionalProperties": false
- }
- },
- "required": ["server", "containers"],
- "additionalProperties": false
- }
- },
- "required": ["metricsConfig"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.getContainers": {
- "get": {
- "operationId": "docker-getContainers",
- "tags": ["docker"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.restartContainer": {
- "post": {
- "operationId": "docker-restartContainer",
- "tags": ["docker"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "containerId": {
- "type": "string",
- "minLength": 1,
- "pattern": "^[a-zA-Z0-9.\\-_]+$"
- }
- },
- "required": ["containerId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.getConfig": {
- "get": {
- "operationId": "docker-getConfig",
- "tags": ["docker"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "containerId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1,
- "pattern": "^[a-zA-Z0-9.\\-_]+$"
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.getContainersByAppNameMatch": {
- "get": {
- "operationId": "docker-getContainersByAppNameMatch",
- "tags": ["docker"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "appType",
- "in": "query",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string",
- "enum": ["stack"]
- },
- {
- "type": "string",
- "enum": ["docker-compose"]
- }
- ]
- }
- },
- {
- "name": "appName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1,
- "pattern": "^[a-zA-Z0-9.\\-_]+$"
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.getContainersByAppLabel": {
- "get": {
- "operationId": "docker-getContainersByAppLabel",
- "tags": ["docker"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "appName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1,
- "pattern": "^[a-zA-Z0-9.\\-_]+$"
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "type",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "enum": ["standalone", "swarm"]
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.getStackContainersByAppName": {
- "get": {
- "operationId": "docker-getStackContainersByAppName",
- "tags": ["docker"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "appName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1,
- "pattern": "^[a-zA-Z0-9.\\-_]+$"
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.getServiceContainersByAppName": {
- "get": {
- "operationId": "docker-getServiceContainersByAppName",
- "tags": ["docker"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "appName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1,
- "pattern": "^[a-zA-Z0-9.\\-_]+$"
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/project.create": {
- "post": {
- "operationId": "project-create",
- "tags": ["project"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string"
- }
- },
- "required": ["name"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/project.one": {
- "get": {
- "operationId": "project-one",
- "tags": ["project"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "projectId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/project.all": {
- "get": {
- "operationId": "project-all",
- "tags": ["project"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/project.remove": {
- "post": {
- "operationId": "project-remove",
- "tags": ["project"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "projectId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["projectId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/project.update": {
- "post": {
- "operationId": "project-update",
- "tags": ["project"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "projectId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "createdAt": {
- "type": "string"
- },
- "organizationId": {
- "type": "string"
- },
- "env": {
- "type": "string"
- }
- },
- "required": ["projectId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/project.duplicate": {
- "post": {
- "operationId": "project-duplicate",
- "tags": ["project"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "sourceEnvironmentId": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "includeServices": {
- "type": "boolean",
- "default": true
- },
- "selectedServices": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "enum": [
- "application",
- "postgres",
- "mariadb",
- "mongo",
- "mysql",
- "redis",
- "compose"
- ]
- }
- },
- "required": ["id", "type"],
- "additionalProperties": false
- }
- },
- "duplicateInSameProject": {
- "type": "boolean",
- "default": false
- }
- },
- "required": ["sourceEnvironmentId", "name"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.create": {
- "post": {
- "operationId": "application-create",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "environmentId": {
- "type": "string"
- },
- "serverId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["name", "environmentId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.one": {
- "get": {
- "operationId": "application-one",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "applicationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.reload": {
- "post": {
- "operationId": "application-reload",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appName": {
- "type": "string"
- },
- "applicationId": {
- "type": "string"
- }
- },
- "required": ["appName", "applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.delete": {
- "post": {
- "operationId": "application-delete",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.stop": {
- "post": {
- "operationId": "application-stop",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.start": {
- "post": {
- "operationId": "application-start",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.redeploy": {
- "post": {
- "operationId": "application-redeploy",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string",
- "minLength": 1
- },
- "title": {
- "type": "string"
- },
- "description": {
- "type": "string"
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveEnvironment": {
- "post": {
- "operationId": "application-saveEnvironment",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "buildArgs": {
- "type": "string",
- "nullable": true
- },
- "buildSecrets": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveBuildType": {
- "post": {
- "operationId": "application-saveBuildType",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "buildType": {
- "type": "string",
- "enum": [
- "dockerfile",
- "heroku_buildpacks",
- "paketo_buildpacks",
- "nixpacks",
- "static",
- "railpack"
- ]
- },
- "dockerfile": {
- "type": "string",
- "nullable": true
- },
- "dockerContextPath": {
- "type": "string",
- "nullable": true
- },
- "dockerBuildStage": {
- "type": "string",
- "nullable": true
- },
- "herokuVersion": {
- "type": "string",
- "nullable": true
- },
- "railpackVersion": {
- "type": "string",
- "nullable": true
- },
- "publishDirectory": {
- "type": "string",
- "nullable": true
- },
- "isStaticSpa": {
- "type": "boolean",
- "nullable": true
- }
- },
- "required": [
- "applicationId",
- "buildType",
- "dockerContextPath",
- "dockerBuildStage"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveGithubProvider": {
- "post": {
- "operationId": "application-saveGithubProvider",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "repository": {
- "type": "string",
- "nullable": true
- },
- "branch": {
- "type": "string",
- "nullable": true
- },
- "owner": {
- "type": "string",
- "nullable": true
- },
- "buildPath": {
- "type": "string",
- "nullable": true
- },
- "githubId": {
- "type": "string",
- "nullable": true
- },
- "watchPaths": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "enableSubmodules": {
- "type": "boolean"
- },
- "triggerType": {
- "type": "string",
- "enum": ["push", "tag"],
- "default": "push"
- }
- },
- "required": [
- "applicationId",
- "owner",
- "githubId",
- "enableSubmodules"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveGitlabProvider": {
- "post": {
- "operationId": "application-saveGitlabProvider",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "gitlabBranch": {
- "type": "string",
- "nullable": true
- },
- "gitlabBuildPath": {
- "type": "string",
- "nullable": true
- },
- "gitlabOwner": {
- "type": "string",
- "nullable": true
- },
- "gitlabRepository": {
- "type": "string",
- "nullable": true
- },
- "gitlabId": {
- "type": "string",
- "nullable": true
- },
- "gitlabProjectId": {
- "type": "number",
- "nullable": true
- },
- "gitlabPathNamespace": {
- "type": "string",
- "nullable": true
- },
- "watchPaths": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "enableSubmodules": {
- "type": "boolean"
- }
- },
- "required": [
- "applicationId",
- "gitlabBranch",
- "gitlabBuildPath",
- "gitlabOwner",
- "gitlabRepository",
- "gitlabId",
- "gitlabProjectId",
- "gitlabPathNamespace",
- "enableSubmodules"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveBitbucketProvider": {
- "post": {
- "operationId": "application-saveBitbucketProvider",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "bitbucketBranch": {
- "type": "string",
- "nullable": true
- },
- "bitbucketBuildPath": {
- "type": "string",
- "nullable": true
- },
- "bitbucketOwner": {
- "type": "string",
- "nullable": true
- },
- "bitbucketRepository": {
- "type": "string",
- "nullable": true
- },
- "bitbucketId": {
- "type": "string",
- "nullable": true
- },
- "applicationId": {
- "type": "string"
- },
- "watchPaths": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "enableSubmodules": {
- "type": "boolean"
- }
- },
- "required": [
- "bitbucketBranch",
- "bitbucketBuildPath",
- "bitbucketOwner",
- "bitbucketRepository",
- "bitbucketId",
- "applicationId",
- "enableSubmodules"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveGiteaProvider": {
- "post": {
- "operationId": "application-saveGiteaProvider",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "giteaBranch": {
- "type": "string",
- "nullable": true
- },
- "giteaBuildPath": {
- "type": "string",
- "nullable": true
- },
- "giteaOwner": {
- "type": "string",
- "nullable": true
- },
- "giteaRepository": {
- "type": "string",
- "nullable": true
- },
- "giteaId": {
- "type": "string",
- "nullable": true
- },
- "watchPaths": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "enableSubmodules": {
- "type": "boolean"
- }
- },
- "required": [
- "applicationId",
- "giteaBranch",
- "giteaBuildPath",
- "giteaOwner",
- "giteaRepository",
- "giteaId",
- "enableSubmodules"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveDockerProvider": {
- "post": {
- "operationId": "application-saveDockerProvider",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "dockerImage": {
- "type": "string",
- "nullable": true
- },
- "applicationId": {
- "type": "string"
- },
- "username": {
- "type": "string",
- "nullable": true
- },
- "password": {
- "type": "string",
- "nullable": true
- },
- "registryUrl": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveGitProvider": {
- "post": {
- "operationId": "application-saveGitProvider",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "customGitBranch": {
- "type": "string",
- "nullable": true
- },
- "applicationId": {
- "type": "string"
- },
- "customGitBuildPath": {
- "type": "string",
- "nullable": true
- },
- "customGitUrl": {
- "type": "string",
- "nullable": true
- },
- "watchPaths": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "enableSubmodules": {
- "type": "boolean"
- },
- "customGitSSHKeyId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["applicationId", "enableSubmodules"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.disconnectGitProvider": {
- "post": {
- "operationId": "application-disconnectGitProvider",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.markRunning": {
- "post": {
- "operationId": "application-markRunning",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.update": {
- "post": {
- "operationId": "application-update",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "previewEnv": {
- "type": "string",
- "nullable": true
- },
- "watchPaths": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "previewBuildArgs": {
- "type": "string",
- "nullable": true
- },
- "previewBuildSecrets": {
- "type": "string",
- "nullable": true
- },
- "previewLabels": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "previewWildcard": {
- "type": "string",
- "nullable": true
- },
- "previewPort": {
- "type": "number",
- "nullable": true
- },
- "previewHttps": {
- "type": "boolean"
- },
- "previewPath": {
- "type": "string",
- "nullable": true
- },
- "previewCertificateType": {
- "type": "string",
- "enum": ["letsencrypt", "none", "custom"]
- },
- "previewCustomCertResolver": {
- "type": "string",
- "nullable": true
- },
- "previewLimit": {
- "type": "number",
- "nullable": true
- },
- "isPreviewDeploymentsActive": {
- "type": "boolean",
- "nullable": true
- },
- "previewRequireCollaboratorPermissions": {
- "type": "boolean",
- "nullable": true
- },
- "rollbackActive": {
- "type": "boolean",
- "nullable": true
- },
- "buildArgs": {
- "type": "string",
- "nullable": true
- },
- "buildSecrets": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "string",
- "nullable": true
- },
- "memoryLimit": {
- "type": "string",
- "nullable": true
- },
- "cpuReservation": {
- "type": "string",
- "nullable": true
- },
- "cpuLimit": {
- "type": "string",
- "nullable": true
- },
- "title": {
- "type": "string",
- "nullable": true
- },
- "enabled": {
- "type": "boolean",
- "nullable": true
- },
- "subtitle": {
- "type": "string",
- "nullable": true
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "refreshToken": {
- "type": "string",
- "nullable": true
- },
- "sourceType": {
- "type": "string",
- "enum": [
- "github",
- "docker",
- "git",
- "gitlab",
- "bitbucket",
- "gitea",
- "drop"
- ]
- },
- "cleanCache": {
- "type": "boolean",
- "nullable": true
- },
- "repository": {
- "type": "string",
- "nullable": true
- },
- "owner": {
- "type": "string",
- "nullable": true
- },
- "branch": {
- "type": "string",
- "nullable": true
- },
- "buildPath": {
- "type": "string",
- "nullable": true
- },
- "triggerType": {
- "type": "string",
- "enum": ["push", "tag"],
- "nullable": true
- },
- "autoDeploy": {
- "type": "boolean",
- "nullable": true
- },
- "gitlabProjectId": {
- "type": "number",
- "nullable": true
- },
- "gitlabRepository": {
- "type": "string",
- "nullable": true
- },
- "gitlabOwner": {
- "type": "string",
- "nullable": true
- },
- "gitlabBranch": {
- "type": "string",
- "nullable": true
- },
- "gitlabBuildPath": {
- "type": "string",
- "nullable": true
- },
- "gitlabPathNamespace": {
- "type": "string",
- "nullable": true
- },
- "giteaRepository": {
- "type": "string",
- "nullable": true
- },
- "giteaOwner": {
- "type": "string",
- "nullable": true
- },
- "giteaBranch": {
- "type": "string",
- "nullable": true
- },
- "giteaBuildPath": {
- "type": "string",
- "nullable": true
- },
- "bitbucketRepository": {
- "type": "string",
- "nullable": true
- },
- "bitbucketOwner": {
- "type": "string",
- "nullable": true
- },
- "bitbucketBranch": {
- "type": "string",
- "nullable": true
- },
- "bitbucketBuildPath": {
- "type": "string",
- "nullable": true
- },
- "username": {
- "type": "string",
- "nullable": true
- },
- "password": {
- "type": "string",
- "nullable": true
- },
- "dockerImage": {
- "type": "string",
- "nullable": true
- },
- "registryUrl": {
- "type": "string",
- "nullable": true
- },
- "customGitUrl": {
- "type": "string",
- "nullable": true
- },
- "customGitBranch": {
- "type": "string",
- "nullable": true
- },
- "customGitBuildPath": {
- "type": "string",
- "nullable": true
- },
- "customGitSSHKeyId": {
- "type": "string",
- "nullable": true
- },
- "enableSubmodules": {
- "type": "boolean"
- },
- "dockerfile": {
- "type": "string",
- "nullable": true
- },
- "dockerContextPath": {
- "type": "string",
- "nullable": true
- },
- "dockerBuildStage": {
- "type": "string",
- "nullable": true
- },
- "dropBuildPath": {
- "type": "string",
- "nullable": true
- },
- "healthCheckSwarm": {
- "type": "object",
- "properties": {
- "Test": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Interval": {
- "type": "number"
- },
- "Timeout": {
- "type": "number"
- },
- "StartPeriod": {
- "type": "number"
- },
- "Retries": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "restartPolicySwarm": {
- "type": "object",
- "properties": {
- "Condition": {
- "type": "string"
- },
- "Delay": {
- "type": "number"
- },
- "MaxAttempts": {
- "type": "number"
- },
- "Window": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "placementSwarm": {
- "type": "object",
- "properties": {
- "Constraints": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Preferences": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Spread": {
- "type": "object",
- "properties": {
- "SpreadDescriptor": {
- "type": "string"
- }
- },
- "required": ["SpreadDescriptor"],
- "additionalProperties": false
- }
- },
- "required": ["Spread"],
- "additionalProperties": false
- }
- },
- "MaxReplicas": {
- "type": "number"
- },
- "Platforms": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Architecture": {
- "type": "string"
- },
- "OS": {
- "type": "string"
- }
- },
- "required": ["Architecture", "OS"],
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "updateConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": ["Parallelism", "Order"],
- "additionalProperties": false,
- "nullable": true
- },
- "rollbackConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": ["Parallelism", "Order"],
- "additionalProperties": false,
- "nullable": true
- },
- "modeSwarm": {
- "type": "object",
- "properties": {
- "Replicated": {
- "type": "object",
- "properties": {
- "Replicas": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "Global": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- },
- "ReplicatedJob": {
- "type": "object",
- "properties": {
- "MaxConcurrent": {
- "type": "number"
- },
- "TotalCompletions": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "GlobalJob": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "labelsSwarm": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "nullable": true
- },
- "networkSwarm": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Target": {
- "type": "string"
- },
- "Aliases": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "DriverOpts": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false
- },
- "nullable": true
- },
- "stopGracePeriodSwarm": {
- "type": "integer",
- "nullable": true
- },
- "endpointSpecSwarm": {
- "type": "object",
- "properties": {
- "Mode": {
- "type": "string"
- },
- "Ports": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Protocol": {
- "type": "string"
- },
- "TargetPort": {
- "type": "number"
- },
- "PublishedPort": {
- "type": "number"
- },
- "PublishMode": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "replicas": {
- "type": "number"
- },
- "applicationStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- },
- "buildType": {
- "type": "string",
- "enum": [
- "dockerfile",
- "heroku_buildpacks",
- "paketo_buildpacks",
- "nixpacks",
- "static",
- "railpack"
- ]
- },
- "railpackVersion": {
- "type": "string",
- "nullable": true
- },
- "herokuVersion": {
- "type": "string",
- "nullable": true
- },
- "publishDirectory": {
- "type": "string",
- "nullable": true
- },
- "isStaticSpa": {
- "type": "boolean",
- "nullable": true
- },
- "createdAt": {
- "type": "string"
- },
- "registryId": {
- "type": "string",
- "nullable": true
- },
- "environmentId": {
- "type": "string"
- },
- "githubId": {
- "type": "string",
- "nullable": true
- },
- "gitlabId": {
- "type": "string",
- "nullable": true
- },
- "giteaId": {
- "type": "string",
- "nullable": true
- },
- "bitbucketId": {
- "type": "string",
- "nullable": true
- },
- "buildServerId": {
- "type": "string",
- "nullable": true
- },
- "buildRegistryId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.refreshToken": {
- "post": {
- "operationId": "application-refreshToken",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.deploy": {
- "post": {
- "operationId": "application-deploy",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string",
- "minLength": 1
- },
- "title": {
- "type": "string"
- },
- "description": {
- "type": "string"
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.cleanQueues": {
- "post": {
- "operationId": "application-cleanQueues",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.killBuild": {
- "post": {
- "operationId": "application-killBuild",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.readTraefikConfig": {
- "get": {
- "operationId": "application-readTraefikConfig",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "applicationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.updateTraefikConfig": {
- "post": {
- "operationId": "application-updateTraefikConfig",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "traefikConfig": {
- "type": "string"
- }
- },
- "required": ["applicationId", "traefikConfig"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.readAppMonitoring": {
- "get": {
- "operationId": "application-readAppMonitoring",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "appName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.move": {
- "post": {
- "operationId": "application-move",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "targetEnvironmentId": {
- "type": "string"
- }
- },
- "required": ["applicationId", "targetEnvironmentId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.cancelDeployment": {
- "post": {
- "operationId": "application-cancelDeployment",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.create": {
- "post": {
- "operationId": "mysql-create",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "dockerImage": {
- "type": "string",
- "default": "mysql:8"
- },
- "environmentId": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "databaseRootPassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "serverId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "name",
- "appName",
- "environmentId",
- "databaseName",
- "databaseUser",
- "databasePassword",
- "databaseRootPassword"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.one": {
- "get": {
- "operationId": "mysql-one",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "mysqlId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.start": {
- "post": {
- "operationId": "mysql-start",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- }
- },
- "required": ["mysqlId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.stop": {
- "post": {
- "operationId": "mysql-stop",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- }
- },
- "required": ["mysqlId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.saveExternalPort": {
- "post": {
- "operationId": "mysql-saveExternalPort",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- }
- },
- "required": ["mysqlId", "externalPort"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.deploy": {
- "post": {
- "operationId": "mysql-deploy",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- }
- },
- "required": ["mysqlId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.changeStatus": {
- "post": {
- "operationId": "mysql-changeStatus",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- }
- },
- "required": ["mysqlId", "applicationStatus"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.reload": {
- "post": {
- "operationId": "mysql-reload",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- },
- "appName": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["mysqlId", "appName"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.remove": {
- "post": {
- "operationId": "mysql-remove",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- }
- },
- "required": ["mysqlId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.saveEnvironment": {
- "post": {
- "operationId": "mysql-saveEnvironment",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["mysqlId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.update": {
- "post": {
- "operationId": "mysql-update",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "databaseRootPassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "dockerImage": {
- "type": "string",
- "default": "mysql:8"
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "string",
- "nullable": true
- },
- "memoryLimit": {
- "type": "string",
- "nullable": true
- },
- "cpuReservation": {
- "type": "string",
- "nullable": true
- },
- "cpuLimit": {
- "type": "string",
- "nullable": true
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- },
- "applicationStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- },
- "healthCheckSwarm": {
- "type": "object",
- "properties": {
- "Test": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Interval": {
- "type": "number"
- },
- "Timeout": {
- "type": "number"
- },
- "StartPeriod": {
- "type": "number"
- },
- "Retries": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "restartPolicySwarm": {
- "type": "object",
- "properties": {
- "Condition": {
- "type": "string"
- },
- "Delay": {
- "type": "number"
- },
- "MaxAttempts": {
- "type": "number"
- },
- "Window": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "placementSwarm": {
- "type": "object",
- "properties": {
- "Constraints": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Preferences": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Spread": {
- "type": "object",
- "properties": {
- "SpreadDescriptor": {
- "type": "string"
- }
- },
- "required": ["SpreadDescriptor"],
- "additionalProperties": false
- }
- },
- "required": ["Spread"],
- "additionalProperties": false
- }
- },
- "MaxReplicas": {
- "type": "number"
- },
- "Platforms": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Architecture": {
- "type": "string"
- },
- "OS": {
- "type": "string"
- }
- },
- "required": ["Architecture", "OS"],
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "updateConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": ["Parallelism", "Order"],
- "additionalProperties": false,
- "nullable": true
- },
- "rollbackConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": ["Parallelism", "Order"],
- "additionalProperties": false,
- "nullable": true
- },
- "modeSwarm": {
- "type": "object",
- "properties": {
- "Replicated": {
- "type": "object",
- "properties": {
- "Replicas": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "Global": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- },
- "ReplicatedJob": {
- "type": "object",
- "properties": {
- "MaxConcurrent": {
- "type": "number"
- },
- "TotalCompletions": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "GlobalJob": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "labelsSwarm": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "nullable": true
- },
- "networkSwarm": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Target": {
- "type": "string"
- },
- "Aliases": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "DriverOpts": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false
- },
- "nullable": true
- },
- "stopGracePeriodSwarm": {
- "type": "integer",
- "nullable": true
- },
- "endpointSpecSwarm": {
- "type": "object",
- "properties": {
- "Mode": {
- "type": "string"
- },
- "Ports": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Protocol": {
- "type": "string"
- },
- "TargetPort": {
- "type": "number"
- },
- "PublishedPort": {
- "type": "number"
- },
- "PublishMode": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "replicas": {
- "type": "number"
- },
- "createdAt": {
- "type": "string"
- },
- "environmentId": {
- "type": "string"
- }
- },
- "required": ["mysqlId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.move": {
- "post": {
- "operationId": "mysql-move",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- },
- "targetEnvironmentId": {
- "type": "string"
- }
- },
- "required": ["mysqlId", "targetEnvironmentId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.rebuild": {
- "post": {
- "operationId": "mysql-rebuild",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- }
- },
- "required": ["mysqlId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.create": {
- "post": {
- "operationId": "postgres-create",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string"
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "dockerImage": {
- "type": "string",
- "default": "postgres:15"
- },
- "environmentId": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "name",
- "appName",
- "databaseName",
- "databaseUser",
- "databasePassword",
- "environmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.one": {
- "get": {
- "operationId": "postgres-one",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "postgresId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.start": {
- "post": {
- "operationId": "postgres-start",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- }
- },
- "required": ["postgresId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.stop": {
- "post": {
- "operationId": "postgres-stop",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- }
- },
- "required": ["postgresId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.saveExternalPort": {
- "post": {
- "operationId": "postgres-saveExternalPort",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- }
- },
- "required": ["postgresId", "externalPort"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.deploy": {
- "post": {
- "operationId": "postgres-deploy",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- }
- },
- "required": ["postgresId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.changeStatus": {
- "post": {
- "operationId": "postgres-changeStatus",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- }
- },
- "required": ["postgresId", "applicationStatus"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.remove": {
- "post": {
- "operationId": "postgres-remove",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- }
- },
- "required": ["postgresId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.saveEnvironment": {
- "post": {
- "operationId": "postgres-saveEnvironment",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["postgresId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.reload": {
- "post": {
- "operationId": "postgres-reload",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- },
- "appName": {
- "type": "string"
- }
- },
- "required": ["postgresId", "appName"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.update": {
- "post": {
- "operationId": "postgres-update",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string"
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "dockerImage": {
- "type": "string",
- "default": "postgres:15"
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "string",
- "nullable": true
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- },
- "memoryLimit": {
- "type": "string",
- "nullable": true
- },
- "cpuReservation": {
- "type": "string",
- "nullable": true
- },
- "cpuLimit": {
- "type": "string",
- "nullable": true
- },
- "applicationStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- },
- "healthCheckSwarm": {
- "type": "object",
- "properties": {
- "Test": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Interval": {
- "type": "number"
- },
- "Timeout": {
- "type": "number"
- },
- "StartPeriod": {
- "type": "number"
- },
- "Retries": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "restartPolicySwarm": {
- "type": "object",
- "properties": {
- "Condition": {
- "type": "string"
- },
- "Delay": {
- "type": "number"
- },
- "MaxAttempts": {
- "type": "number"
- },
- "Window": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "placementSwarm": {
- "type": "object",
- "properties": {
- "Constraints": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Preferences": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Spread": {
- "type": "object",
- "properties": {
- "SpreadDescriptor": {
- "type": "string"
- }
- },
- "required": ["SpreadDescriptor"],
- "additionalProperties": false
- }
- },
- "required": ["Spread"],
- "additionalProperties": false
- }
- },
- "MaxReplicas": {
- "type": "number"
- },
- "Platforms": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Architecture": {
- "type": "string"
- },
- "OS": {
- "type": "string"
- }
- },
- "required": ["Architecture", "OS"],
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "updateConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": ["Parallelism", "Order"],
- "additionalProperties": false,
- "nullable": true
- },
- "rollbackConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": ["Parallelism", "Order"],
- "additionalProperties": false,
- "nullable": true
- },
- "modeSwarm": {
- "type": "object",
- "properties": {
- "Replicated": {
- "type": "object",
- "properties": {
- "Replicas": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "Global": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- },
- "ReplicatedJob": {
- "type": "object",
- "properties": {
- "MaxConcurrent": {
- "type": "number"
- },
- "TotalCompletions": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "GlobalJob": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "labelsSwarm": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "nullable": true
- },
- "networkSwarm": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Target": {
- "type": "string"
- },
- "Aliases": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "DriverOpts": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false
- },
- "nullable": true
- },
- "stopGracePeriodSwarm": {
- "type": "integer",
- "nullable": true
- },
- "endpointSpecSwarm": {
- "type": "object",
- "properties": {
- "Mode": {
- "type": "string"
- },
- "Ports": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Protocol": {
- "type": "string"
- },
- "TargetPort": {
- "type": "number"
- },
- "PublishedPort": {
- "type": "number"
- },
- "PublishMode": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "replicas": {
- "type": "number"
- },
- "createdAt": {
- "type": "string"
- },
- "environmentId": {
- "type": "string"
- }
- },
- "required": ["postgresId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.move": {
- "post": {
- "operationId": "postgres-move",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- },
- "targetEnvironmentId": {
- "type": "string"
- }
- },
- "required": ["postgresId", "targetEnvironmentId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.rebuild": {
- "post": {
- "operationId": "postgres-rebuild",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- }
- },
- "required": ["postgresId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.create": {
- "post": {
- "operationId": "redis-create",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string"
- },
- "dockerImage": {
- "type": "string",
- "default": "redis:8"
- },
- "environmentId": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "name",
- "appName",
- "databasePassword",
- "environmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.one": {
- "get": {
- "operationId": "redis-one",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "redisId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.start": {
- "post": {
- "operationId": "redis-start",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- }
- },
- "required": ["redisId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.reload": {
- "post": {
- "operationId": "redis-reload",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- },
- "appName": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["redisId", "appName"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.stop": {
- "post": {
- "operationId": "redis-stop",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- }
- },
- "required": ["redisId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.saveExternalPort": {
- "post": {
- "operationId": "redis-saveExternalPort",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- }
- },
- "required": ["redisId", "externalPort"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.deploy": {
- "post": {
- "operationId": "redis-deploy",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- }
- },
- "required": ["redisId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.changeStatus": {
- "post": {
- "operationId": "redis-changeStatus",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- }
- },
- "required": ["redisId", "applicationStatus"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.remove": {
- "post": {
- "operationId": "redis-remove",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- }
- },
- "required": ["redisId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.saveEnvironment": {
- "post": {
- "operationId": "redis-saveEnvironment",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["redisId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.update": {
- "post": {
- "operationId": "redis-update",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databasePassword": {
- "type": "string"
- },
- "dockerImage": {
- "type": "string",
- "default": "redis:8"
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "string",
- "nullable": true
- },
- "memoryLimit": {
- "type": "string",
- "nullable": true
- },
- "cpuReservation": {
- "type": "string",
- "nullable": true
- },
- "cpuLimit": {
- "type": "string",
- "nullable": true
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- },
- "createdAt": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- },
- "healthCheckSwarm": {
- "type": "object",
- "properties": {
- "Test": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Interval": {
- "type": "number"
- },
- "Timeout": {
- "type": "number"
- },
- "StartPeriod": {
- "type": "number"
- },
- "Retries": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "restartPolicySwarm": {
- "type": "object",
- "properties": {
- "Condition": {
- "type": "string"
- },
- "Delay": {
- "type": "number"
- },
- "MaxAttempts": {
- "type": "number"
- },
- "Window": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "placementSwarm": {
- "type": "object",
- "properties": {
- "Constraints": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Preferences": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Spread": {
- "type": "object",
- "properties": {
- "SpreadDescriptor": {
- "type": "string"
- }
- },
- "required": ["SpreadDescriptor"],
- "additionalProperties": false
- }
- },
- "required": ["Spread"],
- "additionalProperties": false
- }
- },
- "MaxReplicas": {
- "type": "number"
- },
- "Platforms": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Architecture": {
- "type": "string"
- },
- "OS": {
- "type": "string"
- }
- },
- "required": ["Architecture", "OS"],
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "updateConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": ["Parallelism", "Order"],
- "additionalProperties": false,
- "nullable": true
- },
- "rollbackConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": ["Parallelism", "Order"],
- "additionalProperties": false,
- "nullable": true
- },
- "modeSwarm": {
- "type": "object",
- "properties": {
- "Replicated": {
- "type": "object",
- "properties": {
- "Replicas": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "Global": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- },
- "ReplicatedJob": {
- "type": "object",
- "properties": {
- "MaxConcurrent": {
- "type": "number"
- },
- "TotalCompletions": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "GlobalJob": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "labelsSwarm": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "nullable": true
- },
- "networkSwarm": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Target": {
- "type": "string"
- },
- "Aliases": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "DriverOpts": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false
- },
- "nullable": true
- },
- "stopGracePeriodSwarm": {
- "type": "integer",
- "nullable": true
- },
- "endpointSpecSwarm": {
- "type": "object",
- "properties": {
- "Mode": {
- "type": "string"
- },
- "Ports": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Protocol": {
- "type": "string"
- },
- "TargetPort": {
- "type": "number"
- },
- "PublishedPort": {
- "type": "number"
- },
- "PublishMode": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "replicas": {
- "type": "number"
- },
- "environmentId": {
- "type": "string"
- }
- },
- "required": ["redisId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.move": {
- "post": {
- "operationId": "redis-move",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- },
- "targetEnvironmentId": {
- "type": "string"
- }
- },
- "required": ["redisId", "targetEnvironmentId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.rebuild": {
- "post": {
- "operationId": "redis-rebuild",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- }
- },
- "required": ["redisId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.create": {
- "post": {
- "operationId": "mongo-create",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "dockerImage": {
- "type": "string",
- "default": "mongo:15"
- },
- "environmentId": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "serverId": {
- "type": "string",
- "nullable": true
- },
- "replicaSets": {
- "type": "boolean",
- "default": false,
- "nullable": true
- }
- },
- "required": [
- "name",
- "appName",
- "environmentId",
- "databaseUser",
- "databasePassword"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.one": {
- "get": {
- "operationId": "mongo-one",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "mongoId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.start": {
- "post": {
- "operationId": "mongo-start",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- }
- },
- "required": ["mongoId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.stop": {
- "post": {
- "operationId": "mongo-stop",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- }
- },
- "required": ["mongoId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.saveExternalPort": {
- "post": {
- "operationId": "mongo-saveExternalPort",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- }
- },
- "required": ["mongoId", "externalPort"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.deploy": {
- "post": {
- "operationId": "mongo-deploy",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- }
- },
- "required": ["mongoId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.changeStatus": {
- "post": {
- "operationId": "mongo-changeStatus",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- }
- },
- "required": ["mongoId", "applicationStatus"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.reload": {
- "post": {
- "operationId": "mongo-reload",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- },
- "appName": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["mongoId", "appName"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.remove": {
- "post": {
- "operationId": "mongo-remove",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- }
- },
- "required": ["mongoId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.saveEnvironment": {
- "post": {
- "operationId": "mongo-saveEnvironment",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["mongoId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.update": {
- "post": {
- "operationId": "mongo-update",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "dockerImage": {
- "type": "string",
- "default": "mongo:15"
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "string",
- "nullable": true
- },
- "memoryLimit": {
- "type": "string",
- "nullable": true
- },
- "cpuReservation": {
- "type": "string",
- "nullable": true
- },
- "cpuLimit": {
- "type": "string",
- "nullable": true
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- },
- "applicationStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- },
- "healthCheckSwarm": {
- "type": "object",
- "properties": {
- "Test": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Interval": {
- "type": "number"
- },
- "Timeout": {
- "type": "number"
- },
- "StartPeriod": {
- "type": "number"
- },
- "Retries": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "restartPolicySwarm": {
- "type": "object",
- "properties": {
- "Condition": {
- "type": "string"
- },
- "Delay": {
- "type": "number"
- },
- "MaxAttempts": {
- "type": "number"
- },
- "Window": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "placementSwarm": {
- "type": "object",
- "properties": {
- "Constraints": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Preferences": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Spread": {
- "type": "object",
- "properties": {
- "SpreadDescriptor": {
- "type": "string"
- }
- },
- "required": ["SpreadDescriptor"],
- "additionalProperties": false
- }
- },
- "required": ["Spread"],
- "additionalProperties": false
- }
- },
- "MaxReplicas": {
- "type": "number"
- },
- "Platforms": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Architecture": {
- "type": "string"
- },
- "OS": {
- "type": "string"
- }
- },
- "required": ["Architecture", "OS"],
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "updateConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": ["Parallelism", "Order"],
- "additionalProperties": false,
- "nullable": true
- },
- "rollbackConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": ["Parallelism", "Order"],
- "additionalProperties": false,
- "nullable": true
- },
- "modeSwarm": {
- "type": "object",
- "properties": {
- "Replicated": {
- "type": "object",
- "properties": {
- "Replicas": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "Global": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- },
- "ReplicatedJob": {
- "type": "object",
- "properties": {
- "MaxConcurrent": {
- "type": "number"
- },
- "TotalCompletions": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "GlobalJob": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "labelsSwarm": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "nullable": true
- },
- "networkSwarm": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Target": {
- "type": "string"
- },
- "Aliases": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "DriverOpts": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false
- },
- "nullable": true
- },
- "stopGracePeriodSwarm": {
- "type": "integer",
- "nullable": true
- },
- "endpointSpecSwarm": {
- "type": "object",
- "properties": {
- "Mode": {
- "type": "string"
- },
- "Ports": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Protocol": {
- "type": "string"
- },
- "TargetPort": {
- "type": "number"
- },
- "PublishedPort": {
- "type": "number"
- },
- "PublishMode": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "replicas": {
- "type": "number"
- },
- "createdAt": {
- "type": "string"
- },
- "environmentId": {
- "type": "string"
- },
- "replicaSets": {
- "type": "boolean",
- "default": false,
- "nullable": true
- }
- },
- "required": ["mongoId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.move": {
- "post": {
- "operationId": "mongo-move",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- },
- "targetEnvironmentId": {
- "type": "string"
- }
- },
- "required": ["mongoId", "targetEnvironmentId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.rebuild": {
- "post": {
- "operationId": "mongo-rebuild",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- }
- },
- "required": ["mongoId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.create": {
- "post": {
- "operationId": "mariadb-create",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "dockerImage": {
- "type": "string",
- "default": "mariadb:6"
- },
- "databaseRootPassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "environmentId": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "serverId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "name",
- "appName",
- "databaseRootPassword",
- "environmentId",
- "databaseName",
- "databaseUser",
- "databasePassword"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.one": {
- "get": {
- "operationId": "mariadb-one",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "mariadbId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.start": {
- "post": {
- "operationId": "mariadb-start",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- }
- },
- "required": ["mariadbId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.stop": {
- "post": {
- "operationId": "mariadb-stop",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- }
- },
- "required": ["mariadbId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.saveExternalPort": {
- "post": {
- "operationId": "mariadb-saveExternalPort",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- }
- },
- "required": ["mariadbId", "externalPort"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.deploy": {
- "post": {
- "operationId": "mariadb-deploy",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- }
- },
- "required": ["mariadbId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.changeStatus": {
- "post": {
- "operationId": "mariadb-changeStatus",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- }
- },
- "required": ["mariadbId", "applicationStatus"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.remove": {
- "post": {
- "operationId": "mariadb-remove",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- }
- },
- "required": ["mariadbId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.saveEnvironment": {
- "post": {
- "operationId": "mariadb-saveEnvironment",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["mariadbId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.reload": {
- "post": {
- "operationId": "mariadb-reload",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- },
- "appName": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["mariadbId", "appName"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.update": {
- "post": {
- "operationId": "mariadb-update",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "databaseRootPassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "dockerImage": {
- "type": "string",
- "default": "mariadb:6"
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "string",
- "nullable": true
- },
- "memoryLimit": {
- "type": "string",
- "nullable": true
- },
- "cpuReservation": {
- "type": "string",
- "nullable": true
- },
- "cpuLimit": {
- "type": "string",
- "nullable": true
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- },
- "applicationStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- },
- "healthCheckSwarm": {
- "type": "object",
- "properties": {
- "Test": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Interval": {
- "type": "number"
- },
- "Timeout": {
- "type": "number"
- },
- "StartPeriod": {
- "type": "number"
- },
- "Retries": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "restartPolicySwarm": {
- "type": "object",
- "properties": {
- "Condition": {
- "type": "string"
- },
- "Delay": {
- "type": "number"
- },
- "MaxAttempts": {
- "type": "number"
- },
- "Window": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "placementSwarm": {
- "type": "object",
- "properties": {
- "Constraints": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Preferences": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Spread": {
- "type": "object",
- "properties": {
- "SpreadDescriptor": {
- "type": "string"
- }
- },
- "required": ["SpreadDescriptor"],
- "additionalProperties": false
- }
- },
- "required": ["Spread"],
- "additionalProperties": false
- }
- },
- "MaxReplicas": {
- "type": "number"
- },
- "Platforms": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Architecture": {
- "type": "string"
- },
- "OS": {
- "type": "string"
- }
- },
- "required": ["Architecture", "OS"],
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "updateConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": ["Parallelism", "Order"],
- "additionalProperties": false,
- "nullable": true
- },
- "rollbackConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": ["Parallelism", "Order"],
- "additionalProperties": false,
- "nullable": true
- },
- "modeSwarm": {
- "type": "object",
- "properties": {
- "Replicated": {
- "type": "object",
- "properties": {
- "Replicas": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "Global": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- },
- "ReplicatedJob": {
- "type": "object",
- "properties": {
- "MaxConcurrent": {
- "type": "number"
- },
- "TotalCompletions": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "GlobalJob": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "labelsSwarm": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "nullable": true
- },
- "networkSwarm": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Target": {
- "type": "string"
- },
- "Aliases": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "DriverOpts": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false
- },
- "nullable": true
- },
- "stopGracePeriodSwarm": {
- "type": "integer",
- "nullable": true
- },
- "endpointSpecSwarm": {
- "type": "object",
- "properties": {
- "Mode": {
- "type": "string"
- },
- "Ports": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Protocol": {
- "type": "string"
- },
- "TargetPort": {
- "type": "number"
- },
- "PublishedPort": {
- "type": "number"
- },
- "PublishMode": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "replicas": {
- "type": "number"
- },
- "createdAt": {
- "type": "string"
- },
- "environmentId": {
- "type": "string"
- }
- },
- "required": ["mariadbId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.move": {
- "post": {
- "operationId": "mariadb-move",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- },
- "targetEnvironmentId": {
- "type": "string"
- }
- },
- "required": ["mariadbId", "targetEnvironmentId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.rebuild": {
- "post": {
- "operationId": "mariadb-rebuild",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- }
- },
- "required": ["mariadbId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.create": {
- "post": {
- "operationId": "compose-create",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "environmentId": {
- "type": "string"
- },
- "composeType": {
- "type": "string",
- "enum": ["docker-compose", "stack"]
- },
- "appName": {
- "type": "string"
- },
- "serverId": {
- "type": "string",
- "nullable": true
- },
- "composeFile": {
- "type": "string"
- }
- },
- "required": ["name", "environmentId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.one": {
- "get": {
- "operationId": "compose-one",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.update": {
- "post": {
- "operationId": "compose-update",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string"
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "composeFile": {
- "type": "string"
- },
- "refreshToken": {
- "type": "string",
- "nullable": true
- },
- "sourceType": {
- "type": "string",
- "enum": [
- "git",
- "github",
- "gitlab",
- "bitbucket",
- "gitea",
- "raw"
- ]
- },
- "composeType": {
- "type": "string",
- "enum": ["docker-compose", "stack"]
- },
- "repository": {
- "type": "string",
- "nullable": true
- },
- "owner": {
- "type": "string",
- "nullable": true
- },
- "branch": {
- "type": "string",
- "nullable": true
- },
- "autoDeploy": {
- "type": "boolean",
- "nullable": true
- },
- "gitlabProjectId": {
- "type": "number",
- "nullable": true
- },
- "gitlabRepository": {
- "type": "string",
- "nullable": true
- },
- "gitlabOwner": {
- "type": "string",
- "nullable": true
- },
- "gitlabBranch": {
- "type": "string",
- "nullable": true
- },
- "gitlabPathNamespace": {
- "type": "string",
- "nullable": true
- },
- "bitbucketRepository": {
- "type": "string",
- "nullable": true
- },
- "bitbucketOwner": {
- "type": "string",
- "nullable": true
- },
- "bitbucketBranch": {
- "type": "string",
- "nullable": true
- },
- "giteaRepository": {
- "type": "string",
- "nullable": true
- },
- "giteaOwner": {
- "type": "string",
- "nullable": true
- },
- "giteaBranch": {
- "type": "string",
- "nullable": true
- },
- "customGitUrl": {
- "type": "string",
- "nullable": true
- },
- "customGitBranch": {
- "type": "string",
- "nullable": true
- },
- "customGitSSHKeyId": {
- "type": "string",
- "nullable": true
- },
- "command": {
- "type": "string"
- },
- "enableSubmodules": {
- "type": "boolean"
- },
- "composePath": {
- "type": "string",
- "minLength": 1
- },
- "suffix": {
- "type": "string"
- },
- "randomize": {
- "type": "boolean"
- },
- "isolatedDeployment": {
- "type": "boolean"
- },
- "isolatedDeploymentsVolume": {
- "type": "boolean"
- },
- "triggerType": {
- "type": "string",
- "enum": ["push", "tag"],
- "nullable": true
- },
- "composeStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- },
- "environmentId": {
- "type": "string"
- },
- "createdAt": {
- "type": "string"
- },
- "watchPaths": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "githubId": {
- "type": "string",
- "nullable": true
- },
- "gitlabId": {
- "type": "string",
- "nullable": true
- },
- "bitbucketId": {
- "type": "string",
- "nullable": true
- },
- "giteaId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.delete": {
- "post": {
- "operationId": "compose-delete",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- },
- "deleteVolumes": {
- "type": "boolean"
- }
- },
- "required": ["composeId", "deleteVolumes"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.cleanQueues": {
- "post": {
- "operationId": "compose-cleanQueues",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.killBuild": {
- "post": {
- "operationId": "compose-killBuild",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.loadServices": {
- "get": {
- "operationId": "compose-loadServices",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "type",
- "in": "query",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "not": {}
- },
- {
- "type": "string",
- "enum": ["fetch", "cache"]
- }
- ],
- "default": "cache"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.loadMountsByService": {
- "get": {
- "operationId": "compose-loadMountsByService",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "serviceName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.fetchSourceType": {
- "post": {
- "operationId": "compose-fetchSourceType",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.randomizeCompose": {
- "post": {
- "operationId": "compose-randomizeCompose",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- },
- "suffix": {
- "type": "string"
- }
- },
- "required": ["composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.isolatedDeployment": {
- "post": {
- "operationId": "compose-isolatedDeployment",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- },
- "suffix": {
- "type": "string"
- }
- },
- "required": ["composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.getConvertedCompose": {
- "get": {
- "operationId": "compose-getConvertedCompose",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.deploy": {
- "post": {
- "operationId": "compose-deploy",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- },
- "title": {
- "type": "string"
- },
- "description": {
- "type": "string"
- }
- },
- "required": ["composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.redeploy": {
- "post": {
- "operationId": "compose-redeploy",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- },
- "title": {
- "type": "string"
- },
- "description": {
- "type": "string"
- }
- },
- "required": ["composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.stop": {
- "post": {
- "operationId": "compose-stop",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.start": {
- "post": {
- "operationId": "compose-start",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.getDefaultCommand": {
- "get": {
- "operationId": "compose-getDefaultCommand",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.refreshToken": {
- "post": {
- "operationId": "compose-refreshToken",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.deployTemplate": {
- "post": {
- "operationId": "compose-deployTemplate",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "environmentId": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- },
- "id": {
- "type": "string"
- },
- "baseUrl": {
- "type": "string"
- }
- },
- "required": ["environmentId", "id"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.templates": {
- "get": {
- "operationId": "compose-templates",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "baseUrl",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.getTags": {
- "get": {
- "operationId": "compose-getTags",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "baseUrl",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.disconnectGitProvider": {
- "post": {
- "operationId": "compose-disconnectGitProvider",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.move": {
- "post": {
- "operationId": "compose-move",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string"
- },
- "targetEnvironmentId": {
- "type": "string"
- }
- },
- "required": ["composeId", "targetEnvironmentId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.processTemplate": {
- "post": {
- "operationId": "compose-processTemplate",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "base64": {
- "type": "string"
- },
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["base64", "composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.import": {
- "post": {
- "operationId": "compose-import",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "base64": {
- "type": "string"
- },
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["base64", "composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.cancelDeployment": {
- "post": {
- "operationId": "compose-cancelDeployment",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.all": {
- "get": {
- "operationId": "user-all",
- "tags": ["user"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.one": {
- "get": {
- "operationId": "user-one",
- "tags": ["user"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "userId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.get": {
- "get": {
- "operationId": "user-get",
- "tags": ["user"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.haveRootAccess": {
- "get": {
- "operationId": "user-haveRootAccess",
- "tags": ["user"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.getBackups": {
- "get": {
- "operationId": "user-getBackups",
- "tags": ["user"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.getServerMetrics": {
- "get": {
- "operationId": "user-getServerMetrics",
- "tags": ["user"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.update": {
- "post": {
- "operationId": "user-update",
- "tags": ["user"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string"
- },
- "isRegistered": {
- "type": "boolean"
- },
- "expirationDate": {
- "type": "string"
- },
- "createdAt2": {
- "type": "string"
- },
- "createdAt": {
- "type": "string",
- "format": "date-time",
- "nullable": true
- },
- "twoFactorEnabled": {
- "type": "boolean",
- "nullable": true
- },
- "email": {
- "type": "string",
- "format": "email",
- "minLength": 1
- },
- "emailVerified": {
- "type": "boolean"
- },
- "image": {
- "type": "string",
- "nullable": true
- },
- "banned": {
- "type": "boolean",
- "nullable": true
- },
- "banReason": {
- "type": "string",
- "nullable": true
- },
- "banExpires": {
- "type": "string",
- "format": "date-time",
- "nullable": true
- },
- "updatedAt": {
- "type": "string",
- "format": "date-time"
- },
- "serverIp": {
- "type": "string",
- "nullable": true
- },
- "certificateType": {
- "type": "string",
- "enum": ["letsencrypt", "none", "custom"]
- },
- "https": {
- "type": "boolean"
- },
- "host": {
- "type": "string",
- "nullable": true
- },
- "letsEncryptEmail": {
- "type": "string",
- "nullable": true
- },
- "sshPrivateKey": {
- "type": "string",
- "nullable": true
- },
- "enableDockerCleanup": {
- "type": "boolean"
- },
- "logCleanupCron": {
- "type": "string",
- "nullable": true
- },
- "enablePaidFeatures": {
- "type": "boolean"
- },
- "allowImpersonation": {
- "type": "boolean"
- },
- "metricsConfig": {
- "type": "object",
- "properties": {
- "server": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "enum": ["Dokploy", "Remote"]
- },
- "refreshRate": {
- "type": "number"
- },
- "port": {
- "type": "number"
- },
- "token": {
- "type": "string"
- },
- "urlCallback": {
- "type": "string"
- },
- "retentionDays": {
- "type": "number"
- },
- "cronJob": {
- "type": "string"
- },
- "thresholds": {
- "type": "object",
- "properties": {
- "cpu": {
- "type": "number"
- },
- "memory": {
- "type": "number"
- }
- },
- "required": ["cpu", "memory"],
- "additionalProperties": false
- }
- },
- "required": [
- "type",
- "refreshRate",
- "port",
- "token",
- "urlCallback",
- "retentionDays",
- "cronJob",
- "thresholds"
- ],
- "additionalProperties": false
- },
- "containers": {
- "type": "object",
- "properties": {
- "refreshRate": {
- "type": "number"
- },
- "services": {
- "type": "object",
- "properties": {
- "include": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "exclude": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- },
- "required": ["include", "exclude"],
- "additionalProperties": false
- }
- },
- "required": ["refreshRate", "services"],
- "additionalProperties": false
- }
- },
- "required": ["server", "containers"],
- "additionalProperties": false
- },
- "cleanupCacheApplications": {
- "type": "boolean"
- },
- "cleanupCacheOnPreviews": {
- "type": "boolean"
- },
- "cleanupCacheOnCompose": {
- "type": "boolean"
- },
- "stripeCustomerId": {
- "type": "string",
- "nullable": true
- },
- "stripeSubscriptionId": {
- "type": "string",
- "nullable": true
- },
- "serversQuantity": {
- "type": "number"
- },
- "password": {
- "type": "string"
- },
- "currentPassword": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.getUserByToken": {
- "get": {
- "operationId": "user-getUserByToken",
- "tags": ["user"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "token",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.getMetricsToken": {
- "get": {
- "operationId": "user-getMetricsToken",
- "tags": ["user"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.remove": {
- "post": {
- "operationId": "user-remove",
- "tags": ["user"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "userId": {
- "type": "string"
- }
- },
- "required": ["userId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.assignPermissions": {
- "post": {
- "operationId": "user-assignPermissions",
- "tags": ["user"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string",
- "minLength": 1
- },
- "accessedProjects": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "accessedEnvironments": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "accessedServices": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "canCreateProjects": {
- "type": "boolean"
- },
- "canCreateServices": {
- "type": "boolean"
- },
- "canDeleteProjects": {
- "type": "boolean"
- },
- "canDeleteServices": {
- "type": "boolean"
- },
- "canAccessToDocker": {
- "type": "boolean"
- },
- "canAccessToTraefikFiles": {
- "type": "boolean"
- },
- "canAccessToAPI": {
- "type": "boolean"
- },
- "canAccessToSSHKeys": {
- "type": "boolean"
- },
- "canAccessToGitProviders": {
- "type": "boolean"
- },
- "canDeleteEnvironments": {
- "type": "boolean"
- },
- "canCreateEnvironments": {
- "type": "boolean"
- }
- },
- "required": [
- "id",
- "accessedProjects",
- "accessedEnvironments",
- "accessedServices",
- "canCreateProjects",
- "canCreateServices",
- "canDeleteProjects",
- "canDeleteServices",
- "canAccessToDocker",
- "canAccessToTraefikFiles",
- "canAccessToAPI",
- "canAccessToSSHKeys",
- "canAccessToGitProviders",
- "canDeleteEnvironments",
- "canCreateEnvironments"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.getInvitations": {
- "get": {
- "operationId": "user-getInvitations",
- "tags": ["user"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.getContainerMetrics": {
- "get": {
- "operationId": "user-getContainerMetrics",
- "tags": ["user"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "url",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "token",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "appName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "dataPoints",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.generateToken": {
- "post": {
- "operationId": "user-generateToken",
- "tags": ["user"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.deleteApiKey": {
- "post": {
- "operationId": "user-deleteApiKey",
- "tags": ["user"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "apiKeyId": {
- "type": "string"
- }
- },
- "required": ["apiKeyId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.createApiKey": {
- "post": {
- "operationId": "user-createApiKey",
- "tags": ["user"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "prefix": {
- "type": "string"
- },
- "expiresIn": {
- "type": "number"
- },
- "metadata": {
- "type": "object",
- "properties": {
- "organizationId": {
- "type": "string"
- }
- },
- "required": ["organizationId"],
- "additionalProperties": false
- },
- "rateLimitEnabled": {
- "type": "boolean"
- },
- "rateLimitTimeWindow": {
- "type": "number"
- },
- "rateLimitMax": {
- "type": "number"
- },
- "remaining": {
- "type": "number"
- },
- "refillAmount": {
- "type": "number"
- },
- "refillInterval": {
- "type": "number"
- }
- },
- "required": ["name", "metadata"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.checkUserOrganizations": {
- "get": {
- "operationId": "user-checkUserOrganizations",
- "tags": ["user"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "userId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.sendInvitation": {
- "post": {
- "operationId": "user-sendInvitation",
- "tags": ["user"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "invitationId": {
- "type": "string",
- "minLength": 1
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["invitationId", "notificationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.create": {
- "post": {
- "operationId": "domain-create",
- "tags": ["domain"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "host": {
- "type": "string",
- "minLength": 1
- },
- "path": {
- "type": "string",
- "minLength": 1,
- "nullable": true
- },
- "port": {
- "type": "number",
- "minimum": 1,
- "maximum": 65535,
- "nullable": true
- },
- "https": {
- "type": "boolean"
- },
- "applicationId": {
- "type": "string",
- "nullable": true
- },
- "certificateType": {
- "type": "string",
- "enum": ["letsencrypt", "none", "custom"]
- },
- "customCertResolver": {
- "type": "string",
- "nullable": true
- },
- "composeId": {
- "type": "string",
- "nullable": true
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "domainType": {
- "type": "string",
- "enum": ["compose", "application", "preview"],
- "nullable": true
- },
- "previewDeploymentId": {
- "type": "string",
- "nullable": true
- },
- "internalPath": {
- "type": "string",
- "nullable": true
- },
- "stripPath": {
- "type": "boolean"
- }
- },
- "required": ["host"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.byApplicationId": {
- "get": {
- "operationId": "domain-byApplicationId",
- "tags": ["domain"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "applicationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.byComposeId": {
- "get": {
- "operationId": "domain-byComposeId",
- "tags": ["domain"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.generateDomain": {
- "post": {
- "operationId": "domain-generateDomain",
- "tags": ["domain"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appName": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": ["appName"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.canGenerateTraefikMeDomains": {
- "get": {
- "operationId": "domain-canGenerateTraefikMeDomains",
- "tags": ["domain"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.update": {
- "post": {
- "operationId": "domain-update",
- "tags": ["domain"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "host": {
- "type": "string",
- "minLength": 1
- },
- "path": {
- "type": "string",
- "minLength": 1,
- "nullable": true
- },
- "port": {
- "type": "number",
- "minimum": 1,
- "maximum": 65535,
- "nullable": true
- },
- "https": {
- "type": "boolean"
- },
- "certificateType": {
- "type": "string",
- "enum": ["letsencrypt", "none", "custom"]
- },
- "customCertResolver": {
- "type": "string",
- "nullable": true
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "domainType": {
- "type": "string",
- "enum": ["compose", "application", "preview"],
- "nullable": true
- },
- "internalPath": {
- "type": "string",
- "nullable": true
- },
- "stripPath": {
- "type": "boolean"
- },
- "domainId": {
- "type": "string"
- }
- },
- "required": ["host", "domainId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.one": {
- "get": {
- "operationId": "domain-one",
- "tags": ["domain"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "domainId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.delete": {
- "post": {
- "operationId": "domain-delete",
- "tags": ["domain"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "domainId": {
- "type": "string"
- }
- },
- "required": ["domainId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.validateDomain": {
- "post": {
- "operationId": "domain-validateDomain",
- "tags": ["domain"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "domain": {
- "type": "string"
- },
- "serverIp": {
- "type": "string"
- }
- },
- "required": ["domain"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.create": {
- "post": {
- "operationId": "destination-create",
- "tags": ["destination"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "provider": {
- "type": "string",
- "nullable": true
- },
- "accessKey": {
- "type": "string"
- },
- "bucket": {
- "type": "string"
- },
- "region": {
- "type": "string"
- },
- "endpoint": {
- "type": "string"
- },
- "secretAccessKey": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "provider",
- "accessKey",
- "bucket",
- "region",
- "endpoint",
- "secretAccessKey"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.testConnection": {
- "post": {
- "operationId": "destination-testConnection",
- "tags": ["destination"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "provider": {
- "type": "string",
- "nullable": true
- },
- "accessKey": {
- "type": "string"
- },
- "bucket": {
- "type": "string"
- },
- "region": {
- "type": "string"
- },
- "endpoint": {
- "type": "string"
- },
- "secretAccessKey": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "provider",
- "accessKey",
- "bucket",
- "region",
- "endpoint",
- "secretAccessKey"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.one": {
- "get": {
- "operationId": "destination-one",
- "tags": ["destination"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "destinationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.all": {
- "get": {
- "operationId": "destination-all",
- "tags": ["destination"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.remove": {
- "post": {
- "operationId": "destination-remove",
- "tags": ["destination"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "destinationId": {
- "type": "string"
- }
- },
- "required": ["destinationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.update": {
- "post": {
- "operationId": "destination-update",
- "tags": ["destination"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "accessKey": {
- "type": "string"
- },
- "bucket": {
- "type": "string"
- },
- "region": {
- "type": "string"
- },
- "endpoint": {
- "type": "string"
- },
- "secretAccessKey": {
- "type": "string"
- },
- "destinationId": {
- "type": "string"
- },
- "provider": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "accessKey",
- "bucket",
- "region",
- "endpoint",
- "secretAccessKey",
- "destinationId",
- "provider"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.create": {
- "post": {
- "operationId": "backup-create",
- "tags": ["backup"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "schedule": {
- "type": "string"
- },
- "enabled": {
- "type": "boolean",
- "nullable": true
- },
- "prefix": {
- "type": "string",
- "minLength": 1
- },
- "destinationId": {
- "type": "string"
- },
- "keepLatestCount": {
- "type": "number",
- "nullable": true
- },
- "database": {
- "type": "string",
- "minLength": 1
- },
- "mariadbId": {
- "type": "string",
- "nullable": true
- },
- "mysqlId": {
- "type": "string",
- "nullable": true
- },
- "postgresId": {
- "type": "string",
- "nullable": true
- },
- "mongoId": {
- "type": "string",
- "nullable": true
- },
- "databaseType": {
- "type": "string",
- "enum": [
- "postgres",
- "mariadb",
- "mysql",
- "mongo",
- "web-server"
- ]
- },
- "userId": {
- "type": "string",
- "nullable": true
- },
- "backupType": {
- "type": "string",
- "enum": ["database", "compose"]
- },
- "composeId": {
- "type": "string",
- "nullable": true
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "metadata": {
- "nullable": true
- }
- },
- "required": [
- "schedule",
- "prefix",
- "destinationId",
- "database",
- "databaseType"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.one": {
- "get": {
- "operationId": "backup-one",
- "tags": ["backup"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "backupId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.update": {
- "post": {
- "operationId": "backup-update",
- "tags": ["backup"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "schedule": {
- "type": "string"
- },
- "enabled": {
- "type": "boolean",
- "nullable": true
- },
- "prefix": {
- "type": "string",
- "minLength": 1
- },
- "backupId": {
- "type": "string"
- },
- "destinationId": {
- "type": "string"
- },
- "database": {
- "type": "string",
- "minLength": 1
- },
- "keepLatestCount": {
- "type": "number",
- "nullable": true
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "metadata": {
- "nullable": true
- },
- "databaseType": {
- "type": "string",
- "enum": [
- "postgres",
- "mariadb",
- "mysql",
- "mongo",
- "web-server"
- ]
- }
- },
- "required": [
- "schedule",
- "prefix",
- "backupId",
- "destinationId",
- "database",
- "serviceName",
- "databaseType"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.remove": {
- "post": {
- "operationId": "backup-remove",
- "tags": ["backup"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": ["backupId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.manualBackupPostgres": {
- "post": {
- "operationId": "backup-manualBackupPostgres",
- "tags": ["backup"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": ["backupId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.manualBackupMySql": {
- "post": {
- "operationId": "backup-manualBackupMySql",
- "tags": ["backup"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": ["backupId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.manualBackupMariadb": {
- "post": {
- "operationId": "backup-manualBackupMariadb",
- "tags": ["backup"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": ["backupId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.manualBackupCompose": {
- "post": {
- "operationId": "backup-manualBackupCompose",
- "tags": ["backup"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": ["backupId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.manualBackupMongo": {
- "post": {
- "operationId": "backup-manualBackupMongo",
- "tags": ["backup"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": ["backupId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.manualBackupWebServer": {
- "post": {
- "operationId": "backup-manualBackupWebServer",
- "tags": ["backup"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": ["backupId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.listBackupFiles": {
- "get": {
- "operationId": "backup-listBackupFiles",
- "tags": ["backup"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "destinationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "search",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/deployment.all": {
- "get": {
- "operationId": "deployment-all",
- "tags": ["deployment"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "applicationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/deployment.allByCompose": {
- "get": {
- "operationId": "deployment-allByCompose",
- "tags": ["deployment"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/deployment.allByServer": {
- "get": {
- "operationId": "deployment-allByServer",
- "tags": ["deployment"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/deployment.allByType": {
- "get": {
- "operationId": "deployment-allByType",
- "tags": ["deployment"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "id",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "type",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "enum": [
- "application",
- "compose",
- "server",
- "schedule",
- "previewDeployment",
- "backup",
- "volumeBackup"
- ]
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/deployment.killProcess": {
- "post": {
- "operationId": "deployment-killProcess",
- "tags": ["deployment"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "deploymentId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["deploymentId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/previewDeployment.all": {
- "get": {
- "operationId": "previewDeployment-all",
- "tags": ["previewDeployment"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "applicationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/previewDeployment.delete": {
- "post": {
- "operationId": "previewDeployment-delete",
- "tags": ["previewDeployment"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "previewDeploymentId": {
- "type": "string"
- }
- },
- "required": ["previewDeploymentId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/previewDeployment.one": {
- "get": {
- "operationId": "previewDeployment-one",
- "tags": ["previewDeployment"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "previewDeploymentId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mounts.create": {
- "post": {
- "operationId": "mounts-create",
- "tags": ["mounts"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "enum": ["bind", "volume", "file"]
- },
- "hostPath": {
- "type": "string",
- "nullable": true
- },
- "volumeName": {
- "type": "string",
- "nullable": true
- },
- "content": {
- "type": "string",
- "nullable": true
- },
- "mountPath": {
- "type": "string",
- "minLength": 1
- },
- "serviceType": {
- "type": "string",
- "enum": [
- "application",
- "postgres",
- "mysql",
- "mariadb",
- "mongo",
- "redis",
- "compose"
- ],
- "default": "application"
- },
- "filePath": {
- "type": "string",
- "nullable": true
- },
- "serviceId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["type", "mountPath", "serviceId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mounts.remove": {
- "post": {
- "operationId": "mounts-remove",
- "tags": ["mounts"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mountId": {
- "type": "string"
- }
- },
- "required": ["mountId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mounts.one": {
- "get": {
- "operationId": "mounts-one",
- "tags": ["mounts"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "mountId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mounts.update": {
- "post": {
- "operationId": "mounts-update",
- "tags": ["mounts"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mountId": {
- "type": "string",
- "minLength": 1
- },
- "type": {
- "type": "string",
- "enum": ["bind", "volume", "file"]
- },
- "hostPath": {
- "type": "string",
- "nullable": true
- },
- "volumeName": {
- "type": "string",
- "nullable": true
- },
- "filePath": {
- "type": "string",
- "nullable": true
- },
- "content": {
- "type": "string",
- "nullable": true
- },
- "serviceType": {
- "type": "string",
- "enum": [
- "application",
- "postgres",
- "mysql",
- "mariadb",
- "mongo",
- "redis",
- "compose"
- ],
- "default": "application"
- },
- "mountPath": {
- "type": "string",
- "minLength": 1
- },
- "applicationId": {
- "type": "string",
- "nullable": true
- },
- "postgresId": {
- "type": "string",
- "nullable": true
- },
- "mariadbId": {
- "type": "string",
- "nullable": true
- },
- "mongoId": {
- "type": "string",
- "nullable": true
- },
- "mysqlId": {
- "type": "string",
- "nullable": true
- },
- "redisId": {
- "type": "string",
- "nullable": true
- },
- "composeId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["mountId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mounts.allNamedByApplicationId": {
- "get": {
- "operationId": "mounts-allNamedByApplicationId",
- "tags": ["mounts"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "applicationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/certificates.create": {
- "post": {
- "operationId": "certificates-create",
- "tags": ["certificates"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "certificateId": {
- "type": "string"
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "certificateData": {
- "type": "string",
- "minLength": 1
- },
- "privateKey": {
- "type": "string",
- "minLength": 1
- },
- "certificatePath": {
- "type": "string"
- },
- "autoRenew": {
- "type": "boolean",
- "nullable": true
- },
- "organizationId": {
- "type": "string"
- },
- "serverId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "name",
- "certificateData",
- "privateKey",
- "organizationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/certificates.one": {
- "get": {
- "operationId": "certificates-one",
- "tags": ["certificates"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "certificateId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/certificates.remove": {
- "post": {
- "operationId": "certificates-remove",
- "tags": ["certificates"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "certificateId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["certificateId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/certificates.all": {
- "get": {
- "operationId": "certificates-all",
- "tags": ["certificates"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.reloadServer": {
- "post": {
- "operationId": "settings-reloadServer",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanRedis": {
- "post": {
- "operationId": "settings-cleanRedis",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.reloadRedis": {
- "post": {
- "operationId": "settings-reloadRedis",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.reloadTraefik": {
- "post": {
- "operationId": "settings-reloadTraefik",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": false,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.toggleDashboard": {
- "post": {
- "operationId": "settings-toggleDashboard",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "enableDashboard": {
- "type": "boolean"
- },
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanUnusedImages": {
- "post": {
- "operationId": "settings-cleanUnusedImages",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": false,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanUnusedVolumes": {
- "post": {
- "operationId": "settings-cleanUnusedVolumes",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": false,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanStoppedContainers": {
- "post": {
- "operationId": "settings-cleanStoppedContainers",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": false,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanDockerBuilder": {
- "post": {
- "operationId": "settings-cleanDockerBuilder",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": false,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanDockerPrune": {
- "post": {
- "operationId": "settings-cleanDockerPrune",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": false,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanAll": {
- "post": {
- "operationId": "settings-cleanAll",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": false,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanMonitoring": {
- "post": {
- "operationId": "settings-cleanMonitoring",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.saveSSHPrivateKey": {
- "post": {
- "operationId": "settings-saveSSHPrivateKey",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "sshPrivateKey": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["sshPrivateKey"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.assignDomainServer": {
- "post": {
- "operationId": "settings-assignDomainServer",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "host": {
- "type": "string",
- "nullable": true
- },
- "certificateType": {
- "type": "string",
- "enum": ["letsencrypt", "none", "custom"]
- },
- "letsEncryptEmail": {
- "type": "string",
- "nullable": true
- },
- "https": {
- "type": "boolean"
- }
- },
- "required": ["host", "certificateType"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanSSHPrivateKey": {
- "post": {
- "operationId": "settings-cleanSSHPrivateKey",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateDockerCleanup": {
- "post": {
- "operationId": "settings-updateDockerCleanup",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "enableDockerCleanup": {
- "type": "boolean"
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": ["enableDockerCleanup"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readTraefikConfig": {
- "get": {
- "operationId": "settings-readTraefikConfig",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateTraefikConfig": {
- "post": {
- "operationId": "settings-updateTraefikConfig",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "traefikConfig": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["traefikConfig"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readWebServerTraefikConfig": {
- "get": {
- "operationId": "settings-readWebServerTraefikConfig",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateWebServerTraefikConfig": {
- "post": {
- "operationId": "settings-updateWebServerTraefikConfig",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "traefikConfig": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["traefikConfig"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readMiddlewareTraefikConfig": {
- "get": {
- "operationId": "settings-readMiddlewareTraefikConfig",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateMiddlewareTraefikConfig": {
- "post": {
- "operationId": "settings-updateMiddlewareTraefikConfig",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "traefikConfig": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["traefikConfig"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getUpdateData": {
- "post": {
- "operationId": "settings-getUpdateData",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateServer": {
- "post": {
- "operationId": "settings-updateServer",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getDokployVersion": {
- "get": {
- "operationId": "settings-getDokployVersion",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getReleaseTag": {
- "get": {
- "operationId": "settings-getReleaseTag",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readDirectories": {
- "get": {
- "operationId": "settings-readDirectories",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateTraefikFile": {
- "post": {
- "operationId": "settings-updateTraefikFile",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "path": {
- "type": "string",
- "minLength": 1
- },
- "traefikConfig": {
- "type": "string",
- "minLength": 1
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": ["path", "traefikConfig"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readTraefikFile": {
- "get": {
- "operationId": "settings-readTraefikFile",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "path",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getIp": {
- "get": {
- "operationId": "settings-getIp",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getOpenApiDocument": {
- "get": {
- "operationId": "settings-getOpenApiDocument",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readTraefikEnv": {
- "get": {
- "operationId": "settings-readTraefikEnv",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.writeTraefikEnv": {
- "post": {
- "operationId": "settings-writeTraefikEnv",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "env": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": ["env"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.haveTraefikDashboardPortEnabled": {
- "get": {
- "operationId": "settings-haveTraefikDashboardPortEnabled",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.haveActivateRequests": {
- "get": {
- "operationId": "settings-haveActivateRequests",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.toggleRequests": {
- "post": {
- "operationId": "settings-toggleRequests",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "enable": {
- "type": "boolean"
- }
- },
- "required": ["enable"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.isCloud": {
- "get": {
- "operationId": "settings-isCloud",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.isUserSubscribed": {
- "get": {
- "operationId": "settings-isUserSubscribed",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.health": {
- "get": {
- "operationId": "settings-health",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.setupGPU": {
- "post": {
- "operationId": "settings-setupGPU",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.checkGPUStatus": {
- "get": {
- "operationId": "settings-checkGPUStatus",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateTraefikPorts": {
- "post": {
- "operationId": "settings-updateTraefikPorts",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- },
- "additionalPorts": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "targetPort": {
- "type": "number"
- },
- "publishedPort": {
- "type": "number"
- },
- "protocol": {
- "type": "string",
- "enum": ["tcp", "udp", "sctp"]
- }
- },
- "required": ["targetPort", "publishedPort", "protocol"],
- "additionalProperties": false
- }
- }
- },
- "required": ["additionalPorts"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getTraefikPorts": {
- "get": {
- "operationId": "settings-getTraefikPorts",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateLogCleanup": {
- "post": {
- "operationId": "settings-updateLogCleanup",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "cronExpression": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["cronExpression"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getLogCleanupStatus": {
- "get": {
- "operationId": "settings-getLogCleanupStatus",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getDokployCloudIps": {
- "get": {
- "operationId": "settings-getDokployCloudIps",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/security.create": {
- "post": {
- "operationId": "security-create",
- "tags": ["security"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["applicationId", "username", "password"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/security.one": {
- "get": {
- "operationId": "security-one",
- "tags": ["security"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "securityId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/security.delete": {
- "post": {
- "operationId": "security-delete",
- "tags": ["security"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "securityId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["securityId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/security.update": {
- "post": {
- "operationId": "security-update",
- "tags": ["security"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "securityId": {
- "type": "string",
- "minLength": 1
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["securityId", "username", "password"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redirects.create": {
- "post": {
- "operationId": "redirects-create",
- "tags": ["redirects"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "regex": {
- "type": "string",
- "minLength": 1
- },
- "replacement": {
- "type": "string",
- "minLength": 1
- },
- "permanent": {
- "type": "boolean"
- },
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "regex",
- "replacement",
- "permanent",
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redirects.one": {
- "get": {
- "operationId": "redirects-one",
- "tags": ["redirects"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "redirectId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redirects.delete": {
- "post": {
- "operationId": "redirects-delete",
- "tags": ["redirects"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redirectId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["redirectId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redirects.update": {
- "post": {
- "operationId": "redirects-update",
- "tags": ["redirects"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redirectId": {
- "type": "string",
- "minLength": 1
- },
- "regex": {
- "type": "string",
- "minLength": 1
- },
- "replacement": {
- "type": "string",
- "minLength": 1
- },
- "permanent": {
- "type": "boolean"
- }
- },
- "required": ["redirectId", "regex", "replacement", "permanent"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/port.create": {
- "post": {
- "operationId": "port-create",
- "tags": ["port"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "publishedPort": {
- "type": "number"
- },
- "publishMode": {
- "type": "string",
- "enum": ["ingress", "host"],
- "default": "ingress"
- },
- "targetPort": {
- "type": "number"
- },
- "protocol": {
- "type": "string",
- "enum": ["tcp", "udp"],
- "default": "tcp"
- },
- "applicationId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["publishedPort", "targetPort", "applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/port.one": {
- "get": {
- "operationId": "port-one",
- "tags": ["port"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "portId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/port.delete": {
- "post": {
- "operationId": "port-delete",
- "tags": ["port"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "portId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["portId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/port.update": {
- "post": {
- "operationId": "port-update",
- "tags": ["port"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "portId": {
- "type": "string",
- "minLength": 1
- },
- "publishedPort": {
- "type": "number"
- },
- "publishMode": {
- "type": "string",
- "enum": ["ingress", "host"],
- "default": "ingress"
- },
- "targetPort": {
- "type": "number"
- },
- "protocol": {
- "type": "string",
- "enum": ["tcp", "udp"],
- "default": "tcp"
- }
- },
- "required": ["portId", "publishedPort", "targetPort"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.create": {
- "post": {
- "operationId": "registry-create",
- "tags": ["registry"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "registryName": {
- "type": "string",
- "minLength": 1
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "registryUrl": {
- "type": "string"
- },
- "registryType": {
- "type": "string",
- "enum": ["cloud"]
- },
- "imagePrefix": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "registryName",
- "username",
- "password",
- "registryUrl",
- "registryType",
- "imagePrefix"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.remove": {
- "post": {
- "operationId": "registry-remove",
- "tags": ["registry"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "registryId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["registryId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.update": {
- "post": {
- "operationId": "registry-update",
- "tags": ["registry"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "registryId": {
- "type": "string",
- "minLength": 1
- },
- "registryName": {
- "type": "string",
- "minLength": 1
- },
- "imagePrefix": {
- "type": "string",
- "nullable": true
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "registryUrl": {
- "type": "string"
- },
- "createdAt": {
- "type": "string"
- },
- "registryType": {
- "type": "string",
- "enum": ["cloud"]
- },
- "organizationId": {
- "type": "string",
- "minLength": 1
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": ["registryId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.all": {
- "get": {
- "operationId": "registry-all",
- "tags": ["registry"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.one": {
- "get": {
- "operationId": "registry-one",
- "tags": ["registry"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "registryId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.testRegistry": {
- "post": {
- "operationId": "registry-testRegistry",
- "tags": ["registry"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "registryName": {
- "type": "string"
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "registryUrl": {
- "type": "string"
- },
- "registryType": {
- "type": "string",
- "enum": ["cloud"]
- },
- "imagePrefix": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "username",
- "password",
- "registryUrl",
- "registryType"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/cluster.getNodes": {
- "get": {
- "operationId": "cluster-getNodes",
- "tags": ["cluster"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/cluster.removeWorker": {
- "post": {
- "operationId": "cluster-removeWorker",
- "tags": ["cluster"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "nodeId": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": ["nodeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/cluster.addWorker": {
- "get": {
- "operationId": "cluster-addWorker",
- "tags": ["cluster"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/cluster.addManager": {
- "get": {
- "operationId": "cluster-addManager",
- "tags": ["cluster"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createSlack": {
- "post": {
- "operationId": "notification-createSlack",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "channel": {
- "type": "string"
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "serverThreshold",
- "webhookUrl",
- "channel"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateSlack": {
- "post": {
- "operationId": "notification-updateSlack",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "channel": {
- "type": "string"
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "slackId": {
- "type": "string"
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": ["notificationId", "slackId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testSlackConnection": {
- "post": {
- "operationId": "notification-testSlackConnection",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "channel": {
- "type": "string"
- }
- },
- "required": ["webhookUrl", "channel"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createTelegram": {
- "post": {
- "operationId": "notification-createTelegram",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "botToken": {
- "type": "string",
- "minLength": 1
- },
- "chatId": {
- "type": "string",
- "minLength": 1
- },
- "messageThreadId": {
- "type": "string"
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "serverThreshold",
- "botToken",
- "chatId",
- "messageThreadId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateTelegram": {
- "post": {
- "operationId": "notification-updateTelegram",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "botToken": {
- "type": "string",
- "minLength": 1
- },
- "chatId": {
- "type": "string",
- "minLength": 1
- },
- "messageThreadId": {
- "type": "string"
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "telegramId": {
- "type": "string",
- "minLength": 1
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": ["notificationId", "telegramId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testTelegramConnection": {
- "post": {
- "operationId": "notification-testTelegramConnection",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "botToken": {
- "type": "string",
- "minLength": 1
- },
- "chatId": {
- "type": "string",
- "minLength": 1
- },
- "messageThreadId": {
- "type": "string"
- }
- },
- "required": ["botToken", "chatId", "messageThreadId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createDiscord": {
- "post": {
- "operationId": "notification-createDiscord",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "decoration": {
- "type": "boolean"
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "serverThreshold",
- "webhookUrl",
- "decoration"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateDiscord": {
- "post": {
- "operationId": "notification-updateDiscord",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "decoration": {
- "type": "boolean"
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "discordId": {
- "type": "string",
- "minLength": 1
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": ["notificationId", "discordId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testDiscordConnection": {
- "post": {
- "operationId": "notification-testDiscordConnection",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "decoration": {
- "type": "boolean"
- }
- },
- "required": ["webhookUrl"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createEmail": {
- "post": {
- "operationId": "notification-createEmail",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "smtpServer": {
- "type": "string",
- "minLength": 1
- },
- "smtpPort": {
- "type": "number",
- "minimum": 1
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "fromAddress": {
- "type": "string",
- "minLength": 1
- },
- "toAddresses": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "minItems": 1
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "serverThreshold",
- "smtpServer",
- "smtpPort",
- "username",
- "password",
- "fromAddress",
- "toAddresses"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateEmail": {
- "post": {
- "operationId": "notification-updateEmail",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "smtpServer": {
- "type": "string",
- "minLength": 1
- },
- "smtpPort": {
- "type": "number",
- "minimum": 1
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "fromAddress": {
- "type": "string",
- "minLength": 1
- },
- "toAddresses": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "minItems": 1
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "emailId": {
- "type": "string",
- "minLength": 1
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": ["notificationId", "emailId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testEmailConnection": {
- "post": {
- "operationId": "notification-testEmailConnection",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "smtpServer": {
- "type": "string",
- "minLength": 1
- },
- "smtpPort": {
- "type": "number",
- "minimum": 1
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "toAddresses": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "minItems": 1
- },
- "fromAddress": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "smtpServer",
- "smtpPort",
- "username",
- "password",
- "toAddresses",
- "fromAddress"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.remove": {
- "post": {
- "operationId": "notification-remove",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "notificationId": {
- "type": "string"
- }
- },
- "required": ["notificationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.one": {
- "get": {
- "operationId": "notification-one",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "notificationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.all": {
- "get": {
- "operationId": "notification-all",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.receiveNotification": {
- "post": {
- "operationId": "notification-receiveNotification",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "ServerType": {
- "type": "string",
- "enum": ["Dokploy", "Remote"],
- "default": "Dokploy"
- },
- "Type": {
- "type": "string",
- "enum": ["Memory", "CPU"]
- },
- "Value": {
- "type": "number"
- },
- "Threshold": {
- "type": "number"
- },
- "Message": {
- "type": "string"
- },
- "Timestamp": {
- "type": "string"
- },
- "Token": {
- "type": "string"
- }
- },
- "required": [
- "Type",
- "Value",
- "Threshold",
- "Message",
- "Timestamp",
- "Token"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createGotify": {
- "post": {
- "operationId": "notification-createGotify",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverUrl": {
- "type": "string",
- "minLength": 1
- },
- "appToken": {
- "type": "string",
- "minLength": 1
- },
- "priority": {
- "type": "number",
- "minimum": 1
- },
- "decoration": {
- "type": "boolean"
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "serverUrl",
- "appToken",
- "priority",
- "decoration"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateGotify": {
- "post": {
- "operationId": "notification-updateGotify",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverUrl": {
- "type": "string",
- "minLength": 1
- },
- "appToken": {
- "type": "string",
- "minLength": 1
- },
- "priority": {
- "type": "number",
- "minimum": 1
- },
- "decoration": {
- "type": "boolean"
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "gotifyId": {
- "type": "string",
- "minLength": 1
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": ["notificationId", "gotifyId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testGotifyConnection": {
- "post": {
- "operationId": "notification-testGotifyConnection",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverUrl": {
- "type": "string",
- "minLength": 1
- },
- "appToken": {
- "type": "string",
- "minLength": 1
- },
- "priority": {
- "type": "number",
- "minimum": 1
- },
- "decoration": {
- "type": "boolean"
- }
- },
- "required": ["serverUrl", "appToken", "priority"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createNtfy": {
- "post": {
- "operationId": "notification-createNtfy",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverUrl": {
- "type": "string",
- "minLength": 1
- },
- "topic": {
- "type": "string",
- "minLength": 1
- },
- "accessToken": {
- "type": "string",
- "minLength": 1
- },
- "priority": {
- "type": "number",
- "minimum": 1
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "serverUrl",
- "topic",
- "accessToken",
- "priority"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateNtfy": {
- "post": {
- "operationId": "notification-updateNtfy",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverUrl": {
- "type": "string",
- "minLength": 1
- },
- "topic": {
- "type": "string",
- "minLength": 1
- },
- "accessToken": {
- "type": "string",
- "minLength": 1
- },
- "priority": {
- "type": "number",
- "minimum": 1
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "ntfyId": {
- "type": "string",
- "minLength": 1
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": ["notificationId", "ntfyId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testNtfyConnection": {
- "post": {
- "operationId": "notification-testNtfyConnection",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverUrl": {
- "type": "string",
- "minLength": 1
- },
- "topic": {
- "type": "string",
- "minLength": 1
- },
- "accessToken": {
- "type": "string",
- "minLength": 1
- },
- "priority": {
- "type": "number",
- "minimum": 1
- }
- },
- "required": ["serverUrl", "topic", "accessToken", "priority"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createLark": {
- "post": {
- "operationId": "notification-createLark",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "serverThreshold",
- "webhookUrl"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateLark": {
- "post": {
- "operationId": "notification-updateLark",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "larkId": {
- "type": "string",
- "minLength": 1
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": ["notificationId", "larkId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testLarkConnection": {
- "post": {
- "operationId": "notification-testLarkConnection",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["webhookUrl"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.getEmailProviders": {
- "get": {
- "operationId": "notification-getEmailProviders",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.create": {
- "post": {
- "operationId": "sshKey-create",
- "tags": ["sshKey"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "privateKey": {
- "type": "string"
- },
- "publicKey": {
- "type": "string"
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "privateKey",
- "publicKey",
- "organizationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.remove": {
- "post": {
- "operationId": "sshKey-remove",
- "tags": ["sshKey"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "sshKeyId": {
- "type": "string"
- }
- },
- "required": ["sshKeyId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.one": {
- "get": {
- "operationId": "sshKey-one",
- "tags": ["sshKey"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "sshKeyId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.all": {
- "get": {
- "operationId": "sshKey-all",
- "tags": ["sshKey"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.generate": {
- "post": {
- "operationId": "sshKey-generate",
- "tags": ["sshKey"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "enum": ["rsa", "ed25519"]
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.update": {
- "post": {
- "operationId": "sshKey-update",
- "tags": ["sshKey"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "lastUsedAt": {
- "type": "string",
- "nullable": true
- },
- "sshKeyId": {
- "type": "string"
- }
- },
- "required": ["sshKeyId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitProvider.getAll": {
- "get": {
- "operationId": "gitProvider-getAll",
- "tags": ["gitProvider"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitProvider.remove": {
- "post": {
- "operationId": "gitProvider-remove",
- "tags": ["gitProvider"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "gitProviderId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["gitProviderId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.create": {
- "post": {
- "operationId": "gitea-create",
- "tags": ["gitea"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "giteaId": {
- "type": "string"
- },
- "giteaUrl": {
- "type": "string",
- "minLength": 1
- },
- "redirectUri": {
- "type": "string"
- },
- "clientId": {
- "type": "string"
- },
- "clientSecret": {
- "type": "string"
- },
- "gitProviderId": {
- "type": "string"
- },
- "accessToken": {
- "type": "string"
- },
- "refreshToken": {
- "type": "string"
- },
- "expiresAt": {
- "type": "number"
- },
- "scopes": {
- "type": "string"
- },
- "lastAuthenticatedAt": {
- "type": "number"
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "giteaUsername": {
- "type": "string"
- },
- "organizationName": {
- "type": "string"
- }
- },
- "required": ["giteaUrl", "name"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.one": {
- "get": {
- "operationId": "gitea-one",
- "tags": ["gitea"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "giteaId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.giteaProviders": {
- "get": {
- "operationId": "gitea-giteaProviders",
- "tags": ["gitea"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.getGiteaRepositories": {
- "get": {
- "operationId": "gitea-getGiteaRepositories",
- "tags": ["gitea"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "giteaId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.getGiteaBranches": {
- "get": {
- "operationId": "gitea-getGiteaBranches",
- "tags": ["gitea"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "owner",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "repositoryName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "giteaId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.testConnection": {
- "post": {
- "operationId": "gitea-testConnection",
- "tags": ["gitea"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "giteaId": {
- "type": "string"
- },
- "organizationName": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.update": {
- "post": {
- "operationId": "gitea-update",
- "tags": ["gitea"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "giteaId": {
- "type": "string",
- "minLength": 1
- },
- "giteaUrl": {
- "type": "string",
- "minLength": 1
- },
- "redirectUri": {
- "type": "string"
- },
- "clientId": {
- "type": "string"
- },
- "clientSecret": {
- "type": "string"
- },
- "gitProviderId": {
- "type": "string"
- },
- "accessToken": {
- "type": "string"
- },
- "refreshToken": {
- "type": "string"
- },
- "expiresAt": {
- "type": "number"
- },
- "scopes": {
- "type": "string"
- },
- "lastAuthenticatedAt": {
- "type": "number"
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "giteaUsername": {
- "type": "string"
- },
- "organizationName": {
- "type": "string"
- }
- },
- "required": ["giteaId", "giteaUrl", "gitProviderId", "name"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.getGiteaUrl": {
- "get": {
- "operationId": "gitea-getGiteaUrl",
- "tags": ["gitea"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "giteaId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.create": {
- "post": {
- "operationId": "bitbucket-create",
- "tags": ["bitbucket"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "bitbucketId": {
- "type": "string"
- },
- "bitbucketUsername": {
- "type": "string"
- },
- "bitbucketEmail": {
- "type": "string",
- "format": "email"
- },
- "appPassword": {
- "type": "string"
- },
- "apiToken": {
- "type": "string"
- },
- "bitbucketWorkspaceName": {
- "type": "string"
- },
- "gitProviderId": {
- "type": "string"
- },
- "authId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["authId", "name"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.one": {
- "get": {
- "operationId": "bitbucket-one",
- "tags": ["bitbucket"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "bitbucketId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.bitbucketProviders": {
- "get": {
- "operationId": "bitbucket-bitbucketProviders",
- "tags": ["bitbucket"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.getBitbucketRepositories": {
- "get": {
- "operationId": "bitbucket-getBitbucketRepositories",
- "tags": ["bitbucket"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "bitbucketId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.getBitbucketBranches": {
- "get": {
- "operationId": "bitbucket-getBitbucketBranches",
- "tags": ["bitbucket"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "owner",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "repo",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "bitbucketId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.testConnection": {
- "post": {
- "operationId": "bitbucket-testConnection",
- "tags": ["bitbucket"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "bitbucketId": {
- "type": "string",
- "minLength": 1
- },
- "bitbucketUsername": {
- "type": "string"
- },
- "bitbucketEmail": {
- "type": "string",
- "format": "email"
- },
- "workspaceName": {
- "type": "string"
- },
- "apiToken": {
- "type": "string"
- },
- "appPassword": {
- "type": "string"
- }
- },
- "required": ["bitbucketId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.update": {
- "post": {
- "operationId": "bitbucket-update",
- "tags": ["bitbucket"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "bitbucketId": {
- "type": "string",
- "minLength": 1
- },
- "bitbucketUsername": {
- "type": "string"
- },
- "bitbucketEmail": {
- "type": "string",
- "format": "email"
- },
- "appPassword": {
- "type": "string"
- },
- "apiToken": {
- "type": "string"
- },
- "bitbucketWorkspaceName": {
- "type": "string"
- },
- "gitProviderId": {
- "type": "string"
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": ["bitbucketId", "gitProviderId", "name"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.create": {
- "post": {
- "operationId": "gitlab-create",
- "tags": ["gitlab"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "gitlabId": {
- "type": "string"
- },
- "gitlabUrl": {
- "type": "string",
- "minLength": 1
- },
- "applicationId": {
- "type": "string"
- },
- "redirectUri": {
- "type": "string"
- },
- "secret": {
- "type": "string"
- },
- "accessToken": {
- "type": "string",
- "nullable": true
- },
- "refreshToken": {
- "type": "string",
- "nullable": true
- },
- "groupName": {
- "type": "string"
- },
- "expiresAt": {
- "type": "number",
- "nullable": true
- },
- "gitProviderId": {
- "type": "string"
- },
- "authId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["gitlabUrl", "authId", "name"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.one": {
- "get": {
- "operationId": "gitlab-one",
- "tags": ["gitlab"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "gitlabId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.gitlabProviders": {
- "get": {
- "operationId": "gitlab-gitlabProviders",
- "tags": ["gitlab"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.getGitlabRepositories": {
- "get": {
- "operationId": "gitlab-getGitlabRepositories",
- "tags": ["gitlab"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "gitlabId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.getGitlabBranches": {
- "get": {
- "operationId": "gitlab-getGitlabBranches",
- "tags": ["gitlab"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "id",
- "in": "query",
- "required": false,
- "schema": {
- "type": "number"
- }
- },
- {
- "name": "owner",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "repo",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "gitlabId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.testConnection": {
- "post": {
- "operationId": "gitlab-testConnection",
- "tags": ["gitlab"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "gitlabId": {
- "type": "string"
- },
- "groupName": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.update": {
- "post": {
- "operationId": "gitlab-update",
- "tags": ["gitlab"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "gitlabId": {
- "type": "string",
- "minLength": 1
- },
- "gitlabUrl": {
- "type": "string",
- "minLength": 1
- },
- "applicationId": {
- "type": "string"
- },
- "redirectUri": {
- "type": "string"
- },
- "secret": {
- "type": "string"
- },
- "accessToken": {
- "type": "string",
- "nullable": true
- },
- "refreshToken": {
- "type": "string",
- "nullable": true
- },
- "groupName": {
- "type": "string"
- },
- "expiresAt": {
- "type": "number",
- "nullable": true
- },
- "gitProviderId": {
- "type": "string"
- },
- "name": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["gitlabId", "gitlabUrl", "gitProviderId", "name"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.one": {
- "get": {
- "operationId": "github-one",
- "tags": ["github"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "githubId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.getGithubRepositories": {
- "get": {
- "operationId": "github-getGithubRepositories",
- "tags": ["github"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "githubId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.getGithubBranches": {
- "get": {
- "operationId": "github-getGithubBranches",
- "tags": ["github"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "repo",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "owner",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "githubId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.githubProviders": {
- "get": {
- "operationId": "github-githubProviders",
- "tags": ["github"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.testConnection": {
- "post": {
- "operationId": "github-testConnection",
- "tags": ["github"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "githubId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["githubId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.update": {
- "post": {
- "operationId": "github-update",
- "tags": ["github"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "githubId": {
- "type": "string",
- "minLength": 1
- },
- "githubAppName": {
- "type": "string",
- "minLength": 1
- },
- "githubAppId": {
- "type": "number",
- "nullable": true
- },
- "githubClientId": {
- "type": "string",
- "nullable": true
- },
- "githubClientSecret": {
- "type": "string",
- "nullable": true
- },
- "githubInstallationId": {
- "type": "string",
- "nullable": true
- },
- "githubPrivateKey": {
- "type": "string",
- "nullable": true
- },
- "githubWebhookSecret": {
- "type": "string",
- "nullable": true
- },
- "gitProviderId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "githubId",
- "githubAppName",
- "gitProviderId",
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.create": {
- "post": {
- "operationId": "server-create",
- "tags": ["server"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "ipAddress": {
- "type": "string"
- },
- "port": {
- "type": "number"
- },
- "username": {
- "type": "string"
- },
- "sshKeyId": {
- "type": "string",
- "nullable": true
- },
- "serverType": {
- "type": "string",
- "enum": ["deploy", "build"]
- }
- },
- "required": [
- "name",
- "ipAddress",
- "port",
- "username",
- "sshKeyId",
- "serverType"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.one": {
- "get": {
- "operationId": "server-one",
- "tags": ["server"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.getDefaultCommand": {
- "get": {
- "operationId": "server-getDefaultCommand",
- "tags": ["server"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.all": {
- "get": {
- "operationId": "server-all",
- "tags": ["server"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.count": {
- "get": {
- "operationId": "server-count",
- "tags": ["server"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.withSSHKey": {
- "get": {
- "operationId": "server-withSSHKey",
- "tags": ["server"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.buildServers": {
- "get": {
- "operationId": "server-buildServers",
- "tags": ["server"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.setup": {
- "post": {
- "operationId": "server-setup",
- "tags": ["server"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["serverId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.validate": {
- "get": {
- "operationId": "server-validate",
- "tags": ["server"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.security": {
- "get": {
- "operationId": "server-security",
- "tags": ["server"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.setupMonitoring": {
- "post": {
- "operationId": "server-setupMonitoring",
- "tags": ["server"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string",
- "minLength": 1
- },
- "metricsConfig": {
- "type": "object",
- "properties": {
- "server": {
- "type": "object",
- "properties": {
- "refreshRate": {
- "type": "number",
- "minimum": 2
- },
- "port": {
- "type": "number",
- "minimum": 1
- },
- "token": {
- "type": "string"
- },
- "urlCallback": {
- "type": "string",
- "format": "uri"
- },
- "retentionDays": {
- "type": "number",
- "minimum": 1
- },
- "cronJob": {
- "type": "string",
- "minLength": 1
- },
- "thresholds": {
- "type": "object",
- "properties": {
- "cpu": {
- "type": "number",
- "minimum": 0
- },
- "memory": {
- "type": "number",
- "minimum": 0
- }
- },
- "required": ["cpu", "memory"],
- "additionalProperties": false
- }
- },
- "required": [
- "refreshRate",
- "port",
- "token",
- "urlCallback",
- "retentionDays",
- "cronJob",
- "thresholds"
- ],
- "additionalProperties": false
- },
- "containers": {
- "type": "object",
- "properties": {
- "refreshRate": {
- "type": "number",
- "minimum": 2
- },
- "services": {
- "type": "object",
- "properties": {
- "include": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "exclude": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- },
- "additionalProperties": false
- }
- },
- "required": ["refreshRate", "services"],
- "additionalProperties": false
- }
- },
- "required": ["server", "containers"],
- "additionalProperties": false
- }
- },
- "required": ["serverId", "metricsConfig"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.remove": {
- "post": {
- "operationId": "server-remove",
- "tags": ["server"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["serverId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.update": {
- "post": {
- "operationId": "server-update",
- "tags": ["server"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string",
- "minLength": 1
- },
- "ipAddress": {
- "type": "string"
- },
- "port": {
- "type": "number"
- },
- "username": {
- "type": "string"
- },
- "sshKeyId": {
- "type": "string",
- "nullable": true
- },
- "serverType": {
- "type": "string",
- "enum": ["deploy", "build"]
- },
- "command": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "serverId",
- "ipAddress",
- "port",
- "username",
- "sshKeyId",
- "serverType"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.publicIp": {
- "get": {
- "operationId": "server-publicIp",
- "tags": ["server"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.getServerTime": {
- "get": {
- "operationId": "server-getServerTime",
- "tags": ["server"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.getServerMetrics": {
- "get": {
- "operationId": "server-getServerMetrics",
- "tags": ["server"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "url",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "token",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "dataPoints",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/stripe.getProducts": {
- "get": {
- "operationId": "stripe-getProducts",
- "tags": ["stripe"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/stripe.createCheckoutSession": {
- "post": {
- "operationId": "stripe-createCheckoutSession",
- "tags": ["stripe"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "productId": {
- "type": "string"
- },
- "serverQuantity": {
- "type": "number",
- "minimum": 1
- },
- "isAnnual": {
- "type": "boolean"
- }
- },
- "required": ["productId", "serverQuantity", "isAnnual"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/stripe.createCustomerPortalSession": {
- "post": {
- "operationId": "stripe-createCustomerPortalSession",
- "tags": ["stripe"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/stripe.canCreateMoreServers": {
- "get": {
- "operationId": "stripe-canCreateMoreServers",
- "tags": ["stripe"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/swarm.getNodes": {
- "get": {
- "operationId": "swarm-getNodes",
- "tags": ["swarm"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/swarm.getNodeInfo": {
- "get": {
- "operationId": "swarm-getNodeInfo",
- "tags": ["swarm"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "nodeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/swarm.getNodeApps": {
- "get": {
- "operationId": "swarm-getNodeApps",
- "tags": ["swarm"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.one": {
- "get": {
- "operationId": "ai-one",
- "tags": ["ai"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "aiId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.getModels": {
- "get": {
- "operationId": "ai-getModels",
- "tags": ["ai"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "apiUrl",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "apiKey",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.create": {
- "post": {
- "operationId": "ai-create",
- "tags": ["ai"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "apiUrl": {
- "type": "string",
- "format": "uri"
- },
- "apiKey": {
- "type": "string"
- },
- "model": {
- "type": "string",
- "minLength": 1
- },
- "isEnabled": {
- "type": "boolean"
- }
- },
- "required": ["name", "apiUrl", "apiKey", "model", "isEnabled"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.update": {
- "post": {
- "operationId": "ai-update",
- "tags": ["ai"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "aiId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "apiUrl": {
- "type": "string",
- "format": "uri"
- },
- "apiKey": {
- "type": "string"
- },
- "model": {
- "type": "string",
- "minLength": 1
- },
- "isEnabled": {
- "type": "boolean"
- },
- "createdAt": {
- "type": "string"
- }
- },
- "required": ["aiId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.getAll": {
- "get": {
- "operationId": "ai-getAll",
- "tags": ["ai"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.get": {
- "get": {
- "operationId": "ai-get",
- "tags": ["ai"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "aiId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.delete": {
- "post": {
- "operationId": "ai-delete",
- "tags": ["ai"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "aiId": {
- "type": "string"
- }
- },
- "required": ["aiId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.suggest": {
- "post": {
- "operationId": "ai-suggest",
- "tags": ["ai"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "aiId": {
- "type": "string"
- },
- "input": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": ["aiId", "input"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.deploy": {
- "post": {
- "operationId": "ai-deploy",
- "tags": ["ai"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "environmentId": {
- "type": "string",
- "minLength": 1
- },
- "id": {
- "type": "string",
- "minLength": 1
- },
- "dockerCompose": {
- "type": "string",
- "minLength": 1
- },
- "envVariables": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string"
- },
- "domains": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "host": {
- "type": "string",
- "minLength": 1
- },
- "port": {
- "type": "number",
- "minimum": 1
- },
- "serviceName": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["host", "port", "serviceName"],
- "additionalProperties": false
- }
- },
- "configFiles": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "filePath": {
- "type": "string",
- "minLength": 1
- },
- "content": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["filePath", "content"],
- "additionalProperties": false
- }
- }
- },
- "required": [
- "environmentId",
- "id",
- "dockerCompose",
- "envVariables",
- "name",
- "description"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.create": {
- "post": {
- "operationId": "organization-create",
- "tags": ["organization"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "logo": {
- "type": "string"
- }
- },
- "required": ["name"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.all": {
- "get": {
- "operationId": "organization-all",
- "tags": ["organization"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.one": {
- "get": {
- "operationId": "organization-one",
- "tags": ["organization"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "organizationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.update": {
- "post": {
- "operationId": "organization-update",
- "tags": ["organization"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "organizationId": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "logo": {
- "type": "string"
- }
- },
- "required": ["organizationId", "name"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.delete": {
- "post": {
- "operationId": "organization-delete",
- "tags": ["organization"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "organizationId": {
- "type": "string"
- }
- },
- "required": ["organizationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.allInvitations": {
- "get": {
- "operationId": "organization-allInvitations",
- "tags": ["organization"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.removeInvitation": {
- "post": {
- "operationId": "organization-removeInvitation",
- "tags": ["organization"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "invitationId": {
- "type": "string"
- }
- },
- "required": ["invitationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.setDefault": {
- "post": {
- "operationId": "organization-setDefault",
- "tags": ["organization"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "organizationId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["organizationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/schedule.create": {
- "post": {
- "operationId": "schedule-create",
- "tags": ["schedule"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "scheduleId": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "cronExpression": {
- "type": "string"
- },
- "appName": {
- "type": "string"
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "shellType": {
- "type": "string",
- "enum": ["bash", "sh"]
- },
- "scheduleType": {
- "type": "string",
- "enum": [
- "application",
- "compose",
- "server",
- "dokploy-server"
- ]
- },
- "command": {
- "type": "string"
- },
- "script": {
- "type": "string",
- "nullable": true
- },
- "applicationId": {
- "type": "string",
- "nullable": true
- },
- "composeId": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string",
- "nullable": true
- },
- "userId": {
- "type": "string",
- "nullable": true
- },
- "enabled": {
- "type": "boolean"
- },
- "createdAt": {
- "type": "string"
- }
- },
- "required": ["name", "cronExpression", "command"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/schedule.update": {
- "post": {
- "operationId": "schedule-update",
- "tags": ["schedule"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "scheduleId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string"
- },
- "cronExpression": {
- "type": "string"
- },
- "appName": {
- "type": "string"
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "shellType": {
- "type": "string",
- "enum": ["bash", "sh"]
- },
- "scheduleType": {
- "type": "string",
- "enum": [
- "application",
- "compose",
- "server",
- "dokploy-server"
- ]
- },
- "command": {
- "type": "string"
- },
- "script": {
- "type": "string",
- "nullable": true
- },
- "applicationId": {
- "type": "string",
- "nullable": true
- },
- "composeId": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string",
- "nullable": true
- },
- "userId": {
- "type": "string",
- "nullable": true
- },
- "enabled": {
- "type": "boolean"
- },
- "createdAt": {
- "type": "string"
- }
- },
- "required": ["scheduleId", "name", "cronExpression", "command"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/schedule.delete": {
- "post": {
- "operationId": "schedule-delete",
- "tags": ["schedule"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "scheduleId": {
- "type": "string"
- }
- },
- "required": ["scheduleId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/schedule.list": {
- "get": {
- "operationId": "schedule-list",
- "tags": ["schedule"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "id",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "scheduleType",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "enum": ["application", "compose", "server", "dokploy-server"]
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/schedule.one": {
- "get": {
- "operationId": "schedule-one",
- "tags": ["schedule"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "scheduleId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/schedule.runManually": {
- "post": {
- "operationId": "schedule-runManually",
- "tags": ["schedule"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "scheduleId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["scheduleId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/rollback.delete": {
- "post": {
- "operationId": "rollback-delete",
- "tags": ["rollback"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "rollbackId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["rollbackId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/rollback.rollback": {
- "post": {
- "operationId": "rollback-rollback",
- "tags": ["rollback"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "rollbackId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["rollbackId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/volumeBackups.list": {
- "get": {
- "operationId": "volumeBackups-list",
- "tags": ["volumeBackups"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "id",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "volumeBackupType",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "enum": [
- "application",
- "postgres",
- "mysql",
- "mariadb",
- "mongo",
- "redis",
- "compose"
- ]
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/volumeBackups.create": {
- "post": {
- "operationId": "volumeBackups-create",
- "tags": ["volumeBackups"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "volumeName": {
- "type": "string"
- },
- "prefix": {
- "type": "string"
- },
- "serviceType": {
- "type": "string",
- "enum": [
- "application",
- "postgres",
- "mysql",
- "mariadb",
- "mongo",
- "redis",
- "compose"
- ]
- },
- "appName": {
- "type": "string"
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "turnOff": {
- "type": "boolean"
- },
- "cronExpression": {
- "type": "string"
- },
- "keepLatestCount": {
- "type": "number",
- "nullable": true
- },
- "enabled": {
- "type": "boolean",
- "nullable": true
- },
- "applicationId": {
- "type": "string",
- "nullable": true
- },
- "postgresId": {
- "type": "string",
- "nullable": true
- },
- "mariadbId": {
- "type": "string",
- "nullable": true
- },
- "mongoId": {
- "type": "string",
- "nullable": true
- },
- "mysqlId": {
- "type": "string",
- "nullable": true
- },
- "redisId": {
- "type": "string",
- "nullable": true
- },
- "composeId": {
- "type": "string",
- "nullable": true
- },
- "createdAt": {
- "type": "string"
- },
- "destinationId": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "volumeName",
- "prefix",
- "cronExpression",
- "destinationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/volumeBackups.one": {
- "get": {
- "operationId": "volumeBackups-one",
- "tags": ["volumeBackups"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "volumeBackupId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/volumeBackups.delete": {
- "post": {
- "operationId": "volumeBackups-delete",
- "tags": ["volumeBackups"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "volumeBackupId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["volumeBackupId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/volumeBackups.update": {
- "post": {
- "operationId": "volumeBackups-update",
- "tags": ["volumeBackups"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "volumeName": {
- "type": "string"
- },
- "prefix": {
- "type": "string"
- },
- "serviceType": {
- "type": "string",
- "enum": [
- "application",
- "postgres",
- "mysql",
- "mariadb",
- "mongo",
- "redis",
- "compose"
- ]
- },
- "appName": {
- "type": "string"
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "turnOff": {
- "type": "boolean"
- },
- "cronExpression": {
- "type": "string"
- },
- "keepLatestCount": {
- "type": "number",
- "nullable": true
- },
- "enabled": {
- "type": "boolean",
- "nullable": true
- },
- "applicationId": {
- "type": "string",
- "nullable": true
- },
- "postgresId": {
- "type": "string",
- "nullable": true
- },
- "mariadbId": {
- "type": "string",
- "nullable": true
- },
- "mongoId": {
- "type": "string",
- "nullable": true
- },
- "mysqlId": {
- "type": "string",
- "nullable": true
- },
- "redisId": {
- "type": "string",
- "nullable": true
- },
- "composeId": {
- "type": "string",
- "nullable": true
- },
- "createdAt": {
- "type": "string"
- },
- "destinationId": {
- "type": "string"
- },
- "volumeBackupId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "name",
- "volumeName",
- "prefix",
- "cronExpression",
- "destinationId",
- "volumeBackupId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/volumeBackups.runManually": {
- "post": {
- "operationId": "volumeBackups-runManually",
- "tags": ["volumeBackups"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "volumeBackupId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["volumeBackupId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/environment.create": {
- "post": {
- "operationId": "environment-create",
- "tags": ["environment"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "projectId": {
- "type": "string"
- }
- },
- "required": ["name", "projectId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/environment.one": {
- "get": {
- "operationId": "environment-one",
- "tags": ["environment"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "environmentId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/environment.byProjectId": {
- "get": {
- "operationId": "environment-byProjectId",
- "tags": ["environment"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "projectId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/environment.remove": {
- "post": {
- "operationId": "environment-remove",
- "tags": ["environment"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "environmentId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["environmentId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/environment.update": {
- "post": {
- "operationId": "environment-update",
- "tags": ["environment"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "environmentId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "createdAt": {
- "type": "string"
- },
- "env": {
- "type": "string"
- },
- "projectId": {
- "type": "string"
- }
- },
- "required": ["environmentId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/environment.duplicate": {
- "post": {
- "operationId": "environment-duplicate",
- "tags": ["environment"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "environmentId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["environmentId", "name"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- }
- },
- "components": {
- "securitySchemes": {
- "apiKey": {
- "type": "apiKey",
- "in": "header",
- "name": "x-api-key",
- "description": "API key authentication. Generate an API key from your Dokploy dashboard under Settings > API Keys."
- }
- },
- "responses": {
- "error": {
- "description": "Error response",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
- },
- "code": {
- "type": "string"
- },
- "issues": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
- }
- },
- "required": ["message"],
- "additionalProperties": false
- }
- }
- },
- "required": ["message", "code"],
- "additionalProperties": false
- }
- }
- }
- }
- }
- },
- "tags": [
- {
- "name": "admin"
- },
- {
- "name": "docker"
- },
- {
- "name": "compose"
- },
- {
- "name": "registry"
- },
- {
- "name": "cluster"
- },
- {
- "name": "user"
- },
- {
- "name": "domain"
- },
- {
- "name": "destination"
- },
- {
- "name": "backup"
- },
- {
- "name": "deployment"
- },
- {
- "name": "mounts"
- },
- {
- "name": "certificates"
- },
- {
- "name": "settings"
- },
- {
- "name": "security"
- },
- {
- "name": "redirects"
- },
- {
- "name": "port"
- },
- {
- "name": "project"
- },
- {
- "name": "application"
- },
- {
- "name": "mysql"
- },
- {
- "name": "postgres"
- },
- {
- "name": "redis"
- },
- {
- "name": "mongo"
- },
- {
- "name": "mariadb"
- },
- {
- "name": "sshRouter"
- },
- {
- "name": "gitProvider"
- },
- {
- "name": "bitbucket"
- },
- {
- "name": "github"
- },
- {
- "name": "gitlab"
- },
- {
- "name": "gitea"
- },
- {
- "name": "server"
- },
- {
- "name": "swarm"
- },
- {
- "name": "ai"
- },
- {
- "name": "organization"
- },
- {
- "name": "schedule"
- },
- {
- "name": "rollback"
- },
- {
- "name": "volumeBackups"
- },
- {
- "name": "environment"
- }
- ],
- "externalDocs": {
- "description": "Full documentation",
- "url": "https://docs.dokploy.com"
- },
- "security": [
- {
- "apiKey": []
- }
- ]
-}
+ "openapi": "3.0.3",
+ "info": {
+ "title": "Dokploy API",
+ "description": "Complete API documentation for Dokploy - Deploy applications, manage databases, and orchestrate your infrastructure. This API allows you to programmatically manage all aspects of your Dokploy instance.",
+ "version": "1.0.0",
+ "contact": {
+ "name": "Dokploy Team",
+ "url": "https://dokploy.com"
+ },
+ "license": {
+ "name": "Apache 2.0",
+ "url": "https://github.com/dokploy/dokploy/blob/canary/LICENSE"
+ }
+ },
+ "servers": [
+ {
+ "url": "https://your-dokploy-instance.com/api"
+ }
+ ],
+ "paths": {
+ "/admin.setupMonitoring": {
+ "post": {
+ "operationId": "admin-setupMonitoring",
+ "tags": [
+ "admin"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "metricsConfig": {
+ "type": "object",
+ "properties": {
+ "server": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number",
+ "minimum": 2
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1
+ },
+ "token": {
+ "type": "string"
+ },
+ "urlCallback": {
+ "type": "string",
+ "format": "uri"
+ },
+ "retentionDays": {
+ "type": "number",
+ "minimum": 1
+ },
+ "cronJob": {
+ "type": "string",
+ "minLength": 1
+ },
+ "thresholds": {
+ "type": "object",
+ "properties": {
+ "cpu": {
+ "type": "number",
+ "minimum": 0
+ },
+ "memory": {
+ "type": "number",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "cpu",
+ "memory"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "refreshRate",
+ "port",
+ "token",
+ "urlCallback",
+ "retentionDays",
+ "cronJob",
+ "thresholds"
+ ],
+ "additionalProperties": false
+ },
+ "containers": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number",
+ "minimum": 2
+ },
+ "services": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "refreshRate",
+ "services"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "server",
+ "containers"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "metricsConfig"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getContainers": {
+ "get": {
+ "operationId": "docker-getContainers",
+ "tags": [
+ "docker"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.restartContainer": {
+ "post": {
+ "operationId": "docker-restartContainer",
+ "tags": [
+ "docker"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "containerId": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ "required": [
+ "containerId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getConfig": {
+ "get": {
+ "operationId": "docker-getConfig",
+ "tags": [
+ "docker"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "containerId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getContainersByAppNameMatch": {
+ "get": {
+ "operationId": "docker-getContainersByAppNameMatch",
+ "tags": [
+ "docker"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appType",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "anyOf": [
+ {
+ "type": "string",
+ "enum": [
+ "stack"
+ ]
+ },
+ {
+ "type": "string",
+ "enum": [
+ "docker-compose"
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getContainersByAppLabel": {
+ "get": {
+ "operationId": "docker-getContainersByAppLabel",
+ "tags": [
+ "docker"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "type",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "enum": [
+ "standalone",
+ "swarm"
+ ]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getStackContainersByAppName": {
+ "get": {
+ "operationId": "docker-getStackContainersByAppName",
+ "tags": [
+ "docker"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getServiceContainersByAppName": {
+ "get": {
+ "operationId": "docker-getServiceContainersByAppName",
+ "tags": [
+ "docker"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.create": {
+ "post": {
+ "operationId": "project-create",
+ "tags": [
+ "project"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.one": {
+ "get": {
+ "operationId": "project-one",
+ "tags": [
+ "project"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.all": {
+ "get": {
+ "operationId": "project-all",
+ "tags": [
+ "project"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.remove": {
+ "post": {
+ "operationId": "project-remove",
+ "tags": [
+ "project"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "projectId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "projectId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.update": {
+ "post": {
+ "operationId": "project-update",
+ "tags": [
+ "project"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "projectId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "organizationId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "projectId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.duplicate": {
+ "post": {
+ "operationId": "project-duplicate",
+ "tags": [
+ "project"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "sourceEnvironmentId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "includeServices": {
+ "type": "boolean",
+ "default": true
+ },
+ "selectedServices": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mariadb",
+ "mongo",
+ "mysql",
+ "redis",
+ "compose"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "duplicateInSameProject": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ "required": [
+ "sourceEnvironmentId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.create": {
+ "post": {
+ "operationId": "application-create",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "environmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.one": {
+ "get": {
+ "operationId": "application-one",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.reload": {
+ "post": {
+ "operationId": "application-reload",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appName": {
+ "type": "string"
+ },
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "appName",
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.delete": {
+ "post": {
+ "operationId": "application-delete",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.stop": {
+ "post": {
+ "operationId": "application-stop",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.start": {
+ "post": {
+ "operationId": "application-start",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.redeploy": {
+ "post": {
+ "operationId": "application-redeploy",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveEnvironment": {
+ "post": {
+ "operationId": "application-saveEnvironment",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildArgs": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildSecrets": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveBuildType": {
+ "post": {
+ "operationId": "application-saveBuildType",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "buildType": {
+ "type": "string",
+ "enum": [
+ "dockerfile",
+ "heroku_buildpacks",
+ "paketo_buildpacks",
+ "nixpacks",
+ "static",
+ "railpack"
+ ]
+ },
+ "dockerfile": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerContextPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerBuildStage": {
+ "type": "string",
+ "nullable": true
+ },
+ "herokuVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "railpackVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "publishDirectory": {
+ "type": "string",
+ "nullable": true
+ },
+ "isStaticSpa": {
+ "type": "boolean",
+ "nullable": true
+ }
+ },
+ "required": [
+ "applicationId",
+ "buildType",
+ "dockerContextPath",
+ "dockerBuildStage"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveGithubProvider": {
+ "post": {
+ "operationId": "application-saveGithubProvider",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "repository": {
+ "type": "string",
+ "nullable": true
+ },
+ "branch": {
+ "type": "string",
+ "nullable": true
+ },
+ "owner": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubId": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ },
+ "triggerType": {
+ "type": "string",
+ "enum": [
+ "push",
+ "tag"
+ ],
+ "default": "push"
+ }
+ },
+ "required": [
+ "applicationId",
+ "owner",
+ "githubId",
+ "enableSubmodules"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveGitlabProvider": {
+ "post": {
+ "operationId": "application-saveGitlabProvider",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "gitlabBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabId": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabProjectId": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitlabPathNamespace": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "applicationId",
+ "gitlabBranch",
+ "gitlabBuildPath",
+ "gitlabOwner",
+ "gitlabRepository",
+ "gitlabId",
+ "gitlabProjectId",
+ "gitlabPathNamespace",
+ "enableSubmodules"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveBitbucketProvider": {
+ "post": {
+ "operationId": "application-saveBitbucketProvider",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "bitbucketBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketId": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "bitbucketBranch",
+ "bitbucketBuildPath",
+ "bitbucketOwner",
+ "bitbucketRepository",
+ "bitbucketId",
+ "applicationId",
+ "enableSubmodules"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveGiteaProvider": {
+ "post": {
+ "operationId": "application-saveGiteaProvider",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "giteaBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaId": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "applicationId",
+ "giteaBranch",
+ "giteaBuildPath",
+ "giteaOwner",
+ "giteaRepository",
+ "giteaId",
+ "enableSubmodules"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveDockerProvider": {
+ "post": {
+ "operationId": "application-saveDockerProvider",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "dockerImage": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string",
+ "nullable": true
+ },
+ "password": {
+ "type": "string",
+ "nullable": true
+ },
+ "registryUrl": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveGitProvider": {
+ "post": {
+ "operationId": "application-saveGitProvider",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "customGitBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "customGitBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ },
+ "customGitSSHKeyId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "applicationId",
+ "enableSubmodules"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.disconnectGitProvider": {
+ "post": {
+ "operationId": "application-disconnectGitProvider",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.markRunning": {
+ "post": {
+ "operationId": "application-markRunning",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.update": {
+ "post": {
+ "operationId": "application-update",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewEnv": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "previewBuildArgs": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewBuildSecrets": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewLabels": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "previewWildcard": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "previewHttps": {
+ "type": "boolean"
+ },
+ "previewPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewCertificateType": {
+ "type": "string",
+ "enum": [
+ "letsencrypt",
+ "none",
+ "custom"
+ ]
+ },
+ "previewCustomCertResolver": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewLimit": {
+ "type": "number",
+ "nullable": true
+ },
+ "isPreviewDeploymentsActive": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "previewRequireCollaboratorPermissions": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "rollbackActive": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "buildArgs": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildSecrets": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "subtitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "refreshToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "sourceType": {
+ "type": "string",
+ "enum": [
+ "github",
+ "docker",
+ "git",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "drop"
+ ]
+ },
+ "cleanCache": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "repository": {
+ "type": "string",
+ "nullable": true
+ },
+ "owner": {
+ "type": "string",
+ "nullable": true
+ },
+ "branch": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "triggerType": {
+ "type": "string",
+ "enum": [
+ "push",
+ "tag"
+ ],
+ "nullable": true
+ },
+ "autoDeploy": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "gitlabProjectId": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitlabRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabPathNamespace": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "username": {
+ "type": "string",
+ "nullable": true
+ },
+ "password": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerImage": {
+ "type": "string",
+ "nullable": true
+ },
+ "registryUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitSSHKeyId": {
+ "type": "string",
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ },
+ "dockerfile": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerContextPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerBuildStage": {
+ "type": "string",
+ "nullable": true
+ },
+ "dropBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "SpreadDescriptor"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "Spread"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Architecture",
+ "OS"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "buildType": {
+ "type": "string",
+ "enum": [
+ "dockerfile",
+ "heroku_buildpacks",
+ "paketo_buildpacks",
+ "nixpacks",
+ "static",
+ "railpack"
+ ]
+ },
+ "railpackVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "herokuVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "publishDirectory": {
+ "type": "string",
+ "nullable": true
+ },
+ "isStaticSpa": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "registryId": {
+ "type": "string",
+ "nullable": true
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "githubId": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabId": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaId": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketId": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildServerId": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildRegistryId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.refreshToken": {
+ "post": {
+ "operationId": "application-refreshToken",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.deploy": {
+ "post": {
+ "operationId": "application-deploy",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.cleanQueues": {
+ "post": {
+ "operationId": "application-cleanQueues",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.killBuild": {
+ "post": {
+ "operationId": "application-killBuild",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.readTraefikConfig": {
+ "get": {
+ "operationId": "application-readTraefikConfig",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.updateTraefikConfig": {
+ "post": {
+ "operationId": "application-updateTraefikConfig",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "traefikConfig": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId",
+ "traefikConfig"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.readAppMonitoring": {
+ "get": {
+ "operationId": "application-readAppMonitoring",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.move": {
+ "post": {
+ "operationId": "application-move",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId",
+ "targetEnvironmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.cancelDeployment": {
+ "post": {
+ "operationId": "application-cancelDeployment",
+ "tags": [
+ "application"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.create": {
+ "post": {
+ "operationId": "mysql-create",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mysql:8"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "databaseRootPassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "environmentId",
+ "databaseName",
+ "databaseUser",
+ "databasePassword",
+ "databaseRootPassword"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.one": {
+ "get": {
+ "operationId": "mysql-one",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "mysqlId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.start": {
+ "post": {
+ "operationId": "mysql-start",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mysqlId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.stop": {
+ "post": {
+ "operationId": "mysql-stop",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mysqlId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.saveExternalPort": {
+ "post": {
+ "operationId": "mysql-saveExternalPort",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": [
+ "mysqlId",
+ "externalPort"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.deploy": {
+ "post": {
+ "operationId": "mysql-deploy",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mysqlId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.changeStatus": {
+ "post": {
+ "operationId": "mysql-changeStatus",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ }
+ },
+ "required": [
+ "mysqlId",
+ "applicationStatus"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.reload": {
+ "post": {
+ "operationId": "mysql-reload",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "mysqlId",
+ "appName"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.remove": {
+ "post": {
+ "operationId": "mysql-remove",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mysqlId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.saveEnvironment": {
+ "post": {
+ "operationId": "mysql-saveEnvironment",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "mysqlId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.update": {
+ "post": {
+ "operationId": "mysql-update",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "databaseRootPassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mysql:8"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "SpreadDescriptor"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "Spread"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Architecture",
+ "OS"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "environmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mysqlId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.move": {
+ "post": {
+ "operationId": "mysql-move",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mysqlId",
+ "targetEnvironmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.rebuild": {
+ "post": {
+ "operationId": "mysql-rebuild",
+ "tags": [
+ "mysql"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mysqlId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.create": {
+ "post": {
+ "operationId": "postgres-create",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "postgres:15"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "databaseName",
+ "databaseUser",
+ "databasePassword",
+ "environmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.one": {
+ "get": {
+ "operationId": "postgres-one",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "postgresId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.start": {
+ "post": {
+ "operationId": "postgres-start",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.stop": {
+ "post": {
+ "operationId": "postgres-stop",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.saveExternalPort": {
+ "post": {
+ "operationId": "postgres-saveExternalPort",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": [
+ "postgresId",
+ "externalPort"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.deploy": {
+ "post": {
+ "operationId": "postgres-deploy",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.changeStatus": {
+ "post": {
+ "operationId": "postgres-changeStatus",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ }
+ },
+ "required": [
+ "postgresId",
+ "applicationStatus"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.remove": {
+ "post": {
+ "operationId": "postgres-remove",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.saveEnvironment": {
+ "post": {
+ "operationId": "postgres-saveEnvironment",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "postgresId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.reload": {
+ "post": {
+ "operationId": "postgres-reload",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId",
+ "appName"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.update": {
+ "post": {
+ "operationId": "postgres-update",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "postgres:15"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "SpreadDescriptor"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "Spread"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Architecture",
+ "OS"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "environmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.move": {
+ "post": {
+ "operationId": "postgres-move",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId",
+ "targetEnvironmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.rebuild": {
+ "post": {
+ "operationId": "postgres-rebuild",
+ "tags": [
+ "postgres"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "postgresId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.create": {
+ "post": {
+ "operationId": "redis-create",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "redis:8"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "databasePassword",
+ "environmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.one": {
+ "get": {
+ "operationId": "redis-one",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "redisId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.start": {
+ "post": {
+ "operationId": "redis-start",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "redisId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.reload": {
+ "post": {
+ "operationId": "redis-reload",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "redisId",
+ "appName"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.stop": {
+ "post": {
+ "operationId": "redis-stop",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "redisId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.saveExternalPort": {
+ "post": {
+ "operationId": "redis-saveExternalPort",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": [
+ "redisId",
+ "externalPort"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.deploy": {
+ "post": {
+ "operationId": "redis-deploy",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "redisId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.changeStatus": {
+ "post": {
+ "operationId": "redis-changeStatus",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ }
+ },
+ "required": [
+ "redisId",
+ "applicationStatus"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.remove": {
+ "post": {
+ "operationId": "redis-remove",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "redisId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.saveEnvironment": {
+ "post": {
+ "operationId": "redis-saveEnvironment",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "redisId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.update": {
+ "post": {
+ "operationId": "redis-update",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databasePassword": {
+ "type": "string"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "redis:8"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "SpreadDescriptor"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "Spread"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Architecture",
+ "OS"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "environmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "redisId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.move": {
+ "post": {
+ "operationId": "redis-move",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "redisId",
+ "targetEnvironmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.rebuild": {
+ "post": {
+ "operationId": "redis-rebuild",
+ "tags": [
+ "redis"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "redisId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.create": {
+ "post": {
+ "operationId": "mongo-create",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mongo:15"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ },
+ "replicaSets": {
+ "type": "boolean",
+ "default": false,
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "environmentId",
+ "databaseUser",
+ "databasePassword"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.one": {
+ "get": {
+ "operationId": "mongo-one",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "mongoId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.start": {
+ "post": {
+ "operationId": "mongo-start",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mongoId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.stop": {
+ "post": {
+ "operationId": "mongo-stop",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mongoId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.saveExternalPort": {
+ "post": {
+ "operationId": "mongo-saveExternalPort",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": [
+ "mongoId",
+ "externalPort"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.deploy": {
+ "post": {
+ "operationId": "mongo-deploy",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mongoId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.changeStatus": {
+ "post": {
+ "operationId": "mongo-changeStatus",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ }
+ },
+ "required": [
+ "mongoId",
+ "applicationStatus"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.reload": {
+ "post": {
+ "operationId": "mongo-reload",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "mongoId",
+ "appName"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.remove": {
+ "post": {
+ "operationId": "mongo-remove",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mongoId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.saveEnvironment": {
+ "post": {
+ "operationId": "mongo-saveEnvironment",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "mongoId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.update": {
+ "post": {
+ "operationId": "mongo-update",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mongo:15"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "SpreadDescriptor"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "Spread"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Architecture",
+ "OS"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "replicaSets": {
+ "type": "boolean",
+ "default": false,
+ "nullable": true
+ }
+ },
+ "required": [
+ "mongoId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.move": {
+ "post": {
+ "operationId": "mongo-move",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mongoId",
+ "targetEnvironmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.rebuild": {
+ "post": {
+ "operationId": "mongo-rebuild",
+ "tags": [
+ "mongo"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mongoId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.create": {
+ "post": {
+ "operationId": "mariadb-create",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mariadb:6"
+ },
+ "databaseRootPassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "databaseRootPassword",
+ "environmentId",
+ "databaseName",
+ "databaseUser",
+ "databasePassword"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.one": {
+ "get": {
+ "operationId": "mariadb-one",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "mariadbId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.start": {
+ "post": {
+ "operationId": "mariadb-start",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mariadbId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.stop": {
+ "post": {
+ "operationId": "mariadb-stop",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mariadbId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.saveExternalPort": {
+ "post": {
+ "operationId": "mariadb-saveExternalPort",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": [
+ "mariadbId",
+ "externalPort"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.deploy": {
+ "post": {
+ "operationId": "mariadb-deploy",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mariadbId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.changeStatus": {
+ "post": {
+ "operationId": "mariadb-changeStatus",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ }
+ },
+ "required": [
+ "mariadbId",
+ "applicationStatus"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.remove": {
+ "post": {
+ "operationId": "mariadb-remove",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mariadbId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.saveEnvironment": {
+ "post": {
+ "operationId": "mariadb-saveEnvironment",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "mariadbId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.reload": {
+ "post": {
+ "operationId": "mariadb-reload",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "mariadbId",
+ "appName"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.update": {
+ "post": {
+ "operationId": "mariadb-update",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "databaseRootPassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mariadb:6"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "SpreadDescriptor"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "Spread"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Architecture",
+ "OS"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Parallelism",
+ "Order"
+ ],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "environmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mariadbId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.move": {
+ "post": {
+ "operationId": "mariadb-move",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mariadbId",
+ "targetEnvironmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.rebuild": {
+ "post": {
+ "operationId": "mariadb-rebuild",
+ "tags": [
+ "mariadb"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mariadbId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.create": {
+ "post": {
+ "operationId": "compose-create",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "composeType": {
+ "type": "string",
+ "enum": [
+ "docker-compose",
+ "stack"
+ ]
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeFile": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "environmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.one": {
+ "get": {
+ "operationId": "compose-one",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.update": {
+ "post": {
+ "operationId": "compose-update",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeFile": {
+ "type": "string"
+ },
+ "refreshToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "sourceType": {
+ "type": "string",
+ "enum": [
+ "git",
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "raw"
+ ]
+ },
+ "composeType": {
+ "type": "string",
+ "enum": [
+ "docker-compose",
+ "stack"
+ ]
+ },
+ "repository": {
+ "type": "string",
+ "nullable": true
+ },
+ "owner": {
+ "type": "string",
+ "nullable": true
+ },
+ "branch": {
+ "type": "string",
+ "nullable": true
+ },
+ "autoDeploy": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "gitlabProjectId": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitlabRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabPathNamespace": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitSSHKeyId": {
+ "type": "string",
+ "nullable": true
+ },
+ "command": {
+ "type": "string"
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ },
+ "composePath": {
+ "type": "string",
+ "minLength": 1
+ },
+ "suffix": {
+ "type": "string"
+ },
+ "randomize": {
+ "type": "boolean"
+ },
+ "isolatedDeployment": {
+ "type": "boolean"
+ },
+ "isolatedDeploymentsVolume": {
+ "type": "boolean"
+ },
+ "triggerType": {
+ "type": "string",
+ "enum": [
+ "push",
+ "tag"
+ ],
+ "nullable": true
+ },
+ "composeStatus": {
+ "type": "string",
+ "enum": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "githubId": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabId": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketId": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.delete": {
+ "post": {
+ "operationId": "compose-delete",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "deleteVolumes": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "composeId",
+ "deleteVolumes"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.cleanQueues": {
+ "post": {
+ "operationId": "compose-cleanQueues",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.killBuild": {
+ "post": {
+ "operationId": "compose-killBuild",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.loadServices": {
+ "get": {
+ "operationId": "compose-loadServices",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "type",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "anyOf": [
+ {
+ "not": {}
+ },
+ {
+ "type": "string",
+ "enum": [
+ "fetch",
+ "cache"
+ ]
+ }
+ ],
+ "default": "cache"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.loadMountsByService": {
+ "get": {
+ "operationId": "compose-loadMountsByService",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "serviceName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.fetchSourceType": {
+ "post": {
+ "operationId": "compose-fetchSourceType",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.randomizeCompose": {
+ "post": {
+ "operationId": "compose-randomizeCompose",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "suffix": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.isolatedDeployment": {
+ "post": {
+ "operationId": "compose-isolatedDeployment",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "suffix": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.getConvertedCompose": {
+ "get": {
+ "operationId": "compose-getConvertedCompose",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.deploy": {
+ "post": {
+ "operationId": "compose-deploy",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.redeploy": {
+ "post": {
+ "operationId": "compose-redeploy",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.stop": {
+ "post": {
+ "operationId": "compose-stop",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.start": {
+ "post": {
+ "operationId": "compose-start",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.getDefaultCommand": {
+ "get": {
+ "operationId": "compose-getDefaultCommand",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.refreshToken": {
+ "post": {
+ "operationId": "compose-refreshToken",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.deployTemplate": {
+ "post": {
+ "operationId": "compose-deployTemplate",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "baseUrl": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "environmentId",
+ "id"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.templates": {
+ "get": {
+ "operationId": "compose-templates",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "baseUrl",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.getTags": {
+ "get": {
+ "operationId": "compose-getTags",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "baseUrl",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.disconnectGitProvider": {
+ "post": {
+ "operationId": "compose-disconnectGitProvider",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.move": {
+ "post": {
+ "operationId": "compose-move",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "composeId",
+ "targetEnvironmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.processTemplate": {
+ "post": {
+ "operationId": "compose-processTemplate",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "base64": {
+ "type": "string"
+ },
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "base64",
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.import": {
+ "post": {
+ "operationId": "compose-import",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "base64": {
+ "type": "string"
+ },
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "base64",
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.cancelDeployment": {
+ "post": {
+ "operationId": "compose-cancelDeployment",
+ "tags": [
+ "compose"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "composeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.all": {
+ "get": {
+ "operationId": "user-all",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.one": {
+ "get": {
+ "operationId": "user-one",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "userId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.get": {
+ "get": {
+ "operationId": "user-get",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.haveRootAccess": {
+ "get": {
+ "operationId": "user-haveRootAccess",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getBackups": {
+ "get": {
+ "operationId": "user-getBackups",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getServerMetrics": {
+ "get": {
+ "operationId": "user-getServerMetrics",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.update": {
+ "post": {
+ "operationId": "user-update",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string"
+ },
+ "isRegistered": {
+ "type": "boolean"
+ },
+ "expirationDate": {
+ "type": "string"
+ },
+ "createdAt2": {
+ "type": "string"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "twoFactorEnabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "email": {
+ "type": "string",
+ "format": "email",
+ "minLength": 1
+ },
+ "emailVerified": {
+ "type": "boolean"
+ },
+ "image": {
+ "type": "string",
+ "nullable": true
+ },
+ "banned": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "banReason": {
+ "type": "string",
+ "nullable": true
+ },
+ "banExpires": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "updatedAt": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "serverIp": {
+ "type": "string",
+ "nullable": true
+ },
+ "certificateType": {
+ "type": "string",
+ "enum": [
+ "letsencrypt",
+ "none",
+ "custom"
+ ]
+ },
+ "https": {
+ "type": "boolean"
+ },
+ "host": {
+ "type": "string",
+ "nullable": true
+ },
+ "letsEncryptEmail": {
+ "type": "string",
+ "nullable": true
+ },
+ "sshPrivateKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "enableDockerCleanup": {
+ "type": "boolean"
+ },
+ "logCleanupCron": {
+ "type": "string",
+ "nullable": true
+ },
+ "enablePaidFeatures": {
+ "type": "boolean"
+ },
+ "allowImpersonation": {
+ "type": "boolean"
+ },
+ "metricsConfig": {
+ "type": "object",
+ "properties": {
+ "server": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "Dokploy",
+ "Remote"
+ ]
+ },
+ "refreshRate": {
+ "type": "number"
+ },
+ "port": {
+ "type": "number"
+ },
+ "token": {
+ "type": "string"
+ },
+ "urlCallback": {
+ "type": "string"
+ },
+ "retentionDays": {
+ "type": "number"
+ },
+ "cronJob": {
+ "type": "string"
+ },
+ "thresholds": {
+ "type": "object",
+ "properties": {
+ "cpu": {
+ "type": "number"
+ },
+ "memory": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "cpu",
+ "memory"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "type",
+ "refreshRate",
+ "port",
+ "token",
+ "urlCallback",
+ "retentionDays",
+ "cronJob",
+ "thresholds"
+ ],
+ "additionalProperties": false
+ },
+ "containers": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number"
+ },
+ "services": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "include",
+ "exclude"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "refreshRate",
+ "services"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "server",
+ "containers"
+ ],
+ "additionalProperties": false
+ },
+ "cleanupCacheApplications": {
+ "type": "boolean"
+ },
+ "cleanupCacheOnPreviews": {
+ "type": "boolean"
+ },
+ "cleanupCacheOnCompose": {
+ "type": "boolean"
+ },
+ "stripeCustomerId": {
+ "type": "string",
+ "nullable": true
+ },
+ "stripeSubscriptionId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serversQuantity": {
+ "type": "number"
+ },
+ "password": {
+ "type": "string"
+ },
+ "currentPassword": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getUserByToken": {
+ "get": {
+ "operationId": "user-getUserByToken",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "token",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getMetricsToken": {
+ "get": {
+ "operationId": "user-getMetricsToken",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.remove": {
+ "post": {
+ "operationId": "user-remove",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "userId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.assignPermissions": {
+ "post": {
+ "operationId": "user-assignPermissions",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessedProjects": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "accessedEnvironments": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "accessedServices": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "canCreateProjects": {
+ "type": "boolean"
+ },
+ "canCreateServices": {
+ "type": "boolean"
+ },
+ "canDeleteProjects": {
+ "type": "boolean"
+ },
+ "canDeleteServices": {
+ "type": "boolean"
+ },
+ "canAccessToDocker": {
+ "type": "boolean"
+ },
+ "canAccessToTraefikFiles": {
+ "type": "boolean"
+ },
+ "canAccessToAPI": {
+ "type": "boolean"
+ },
+ "canAccessToSSHKeys": {
+ "type": "boolean"
+ },
+ "canAccessToGitProviders": {
+ "type": "boolean"
+ },
+ "canDeleteEnvironments": {
+ "type": "boolean"
+ },
+ "canCreateEnvironments": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "id",
+ "accessedProjects",
+ "accessedEnvironments",
+ "accessedServices",
+ "canCreateProjects",
+ "canCreateServices",
+ "canDeleteProjects",
+ "canDeleteServices",
+ "canAccessToDocker",
+ "canAccessToTraefikFiles",
+ "canAccessToAPI",
+ "canAccessToSSHKeys",
+ "canAccessToGitProviders",
+ "canDeleteEnvironments",
+ "canCreateEnvironments"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getInvitations": {
+ "get": {
+ "operationId": "user-getInvitations",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getContainerMetrics": {
+ "get": {
+ "operationId": "user-getContainerMetrics",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "url",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "token",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "dataPoints",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.generateToken": {
+ "post": {
+ "operationId": "user-generateToken",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.deleteApiKey": {
+ "post": {
+ "operationId": "user-deleteApiKey",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "apiKeyId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "apiKeyId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.createApiKey": {
+ "post": {
+ "operationId": "user-createApiKey",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "prefix": {
+ "type": "string"
+ },
+ "expiresIn": {
+ "type": "number"
+ },
+ "metadata": {
+ "type": "object",
+ "properties": {
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "organizationId"
+ ],
+ "additionalProperties": false
+ },
+ "rateLimitEnabled": {
+ "type": "boolean"
+ },
+ "rateLimitTimeWindow": {
+ "type": "number"
+ },
+ "rateLimitMax": {
+ "type": "number"
+ },
+ "remaining": {
+ "type": "number"
+ },
+ "refillAmount": {
+ "type": "number"
+ },
+ "refillInterval": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "name",
+ "metadata"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.checkUserOrganizations": {
+ "get": {
+ "operationId": "user-checkUserOrganizations",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "userId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.sendInvitation": {
+ "post": {
+ "operationId": "user-sendInvitation",
+ "tags": [
+ "user"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "invitationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "invitationId",
+ "notificationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.create": {
+ "post": {
+ "operationId": "domain-create",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "minLength": 1
+ },
+ "path": {
+ "type": "string",
+ "minLength": 1,
+ "nullable": true
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1,
+ "maximum": 65535,
+ "nullable": true
+ },
+ "https": {
+ "type": "boolean"
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "certificateType": {
+ "type": "string",
+ "enum": [
+ "letsencrypt",
+ "none",
+ "custom"
+ ]
+ },
+ "customCertResolver": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "domainType": {
+ "type": "string",
+ "enum": [
+ "compose",
+ "application",
+ "preview"
+ ],
+ "nullable": true
+ },
+ "previewDeploymentId": {
+ "type": "string",
+ "nullable": true
+ },
+ "internalPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "stripPath": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "host"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.byApplicationId": {
+ "get": {
+ "operationId": "domain-byApplicationId",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.byComposeId": {
+ "get": {
+ "operationId": "domain-byComposeId",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.generateDomain": {
+ "post": {
+ "operationId": "domain-generateDomain",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appName": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "appName"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.canGenerateTraefikMeDomains": {
+ "get": {
+ "operationId": "domain-canGenerateTraefikMeDomains",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.update": {
+ "post": {
+ "operationId": "domain-update",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "minLength": 1
+ },
+ "path": {
+ "type": "string",
+ "minLength": 1,
+ "nullable": true
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1,
+ "maximum": 65535,
+ "nullable": true
+ },
+ "https": {
+ "type": "boolean"
+ },
+ "certificateType": {
+ "type": "string",
+ "enum": [
+ "letsencrypt",
+ "none",
+ "custom"
+ ]
+ },
+ "customCertResolver": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "domainType": {
+ "type": "string",
+ "enum": [
+ "compose",
+ "application",
+ "preview"
+ ],
+ "nullable": true
+ },
+ "internalPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "stripPath": {
+ "type": "boolean"
+ },
+ "domainId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "host",
+ "domainId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.one": {
+ "get": {
+ "operationId": "domain-one",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "domainId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.delete": {
+ "post": {
+ "operationId": "domain-delete",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "domainId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "domainId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.validateDomain": {
+ "post": {
+ "operationId": "domain-validateDomain",
+ "tags": [
+ "domain"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "domain": {
+ "type": "string"
+ },
+ "serverIp": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "domain"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.create": {
+ "post": {
+ "operationId": "destination-create",
+ "tags": [
+ "destination"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "provider": {
+ "type": "string",
+ "nullable": true
+ },
+ "accessKey": {
+ "type": "string"
+ },
+ "bucket": {
+ "type": "string"
+ },
+ "region": {
+ "type": "string"
+ },
+ "endpoint": {
+ "type": "string"
+ },
+ "secretAccessKey": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "provider",
+ "accessKey",
+ "bucket",
+ "region",
+ "endpoint",
+ "secretAccessKey"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.testConnection": {
+ "post": {
+ "operationId": "destination-testConnection",
+ "tags": [
+ "destination"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "provider": {
+ "type": "string",
+ "nullable": true
+ },
+ "accessKey": {
+ "type": "string"
+ },
+ "bucket": {
+ "type": "string"
+ },
+ "region": {
+ "type": "string"
+ },
+ "endpoint": {
+ "type": "string"
+ },
+ "secretAccessKey": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "provider",
+ "accessKey",
+ "bucket",
+ "region",
+ "endpoint",
+ "secretAccessKey"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.one": {
+ "get": {
+ "operationId": "destination-one",
+ "tags": [
+ "destination"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "destinationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.all": {
+ "get": {
+ "operationId": "destination-all",
+ "tags": [
+ "destination"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.remove": {
+ "post": {
+ "operationId": "destination-remove",
+ "tags": [
+ "destination"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "destinationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "destinationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.update": {
+ "post": {
+ "operationId": "destination-update",
+ "tags": [
+ "destination"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessKey": {
+ "type": "string"
+ },
+ "bucket": {
+ "type": "string"
+ },
+ "region": {
+ "type": "string"
+ },
+ "endpoint": {
+ "type": "string"
+ },
+ "secretAccessKey": {
+ "type": "string"
+ },
+ "destinationId": {
+ "type": "string"
+ },
+ "provider": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "accessKey",
+ "bucket",
+ "region",
+ "endpoint",
+ "secretAccessKey",
+ "destinationId",
+ "provider"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.create": {
+ "post": {
+ "operationId": "backup-create",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "schedule": {
+ "type": "string"
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "prefix": {
+ "type": "string",
+ "minLength": 1
+ },
+ "destinationId": {
+ "type": "string"
+ },
+ "keepLatestCount": {
+ "type": "number",
+ "nullable": true
+ },
+ "database": {
+ "type": "string",
+ "minLength": 1
+ },
+ "mariadbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mysqlId": {
+ "type": "string",
+ "nullable": true
+ },
+ "postgresId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mongoId": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseType": {
+ "type": "string",
+ "enum": [
+ "postgres",
+ "mariadb",
+ "mysql",
+ "mongo",
+ "web-server"
+ ]
+ },
+ "userId": {
+ "type": "string",
+ "nullable": true
+ },
+ "backupType": {
+ "type": "string",
+ "enum": [
+ "database",
+ "compose"
+ ]
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "metadata": {
+ "nullable": true
+ }
+ },
+ "required": [
+ "schedule",
+ "prefix",
+ "destinationId",
+ "database",
+ "databaseType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.one": {
+ "get": {
+ "operationId": "backup-one",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "backupId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.update": {
+ "post": {
+ "operationId": "backup-update",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "schedule": {
+ "type": "string"
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "prefix": {
+ "type": "string",
+ "minLength": 1
+ },
+ "backupId": {
+ "type": "string"
+ },
+ "destinationId": {
+ "type": "string"
+ },
+ "database": {
+ "type": "string",
+ "minLength": 1
+ },
+ "keepLatestCount": {
+ "type": "number",
+ "nullable": true
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "metadata": {
+ "nullable": true
+ },
+ "databaseType": {
+ "type": "string",
+ "enum": [
+ "postgres",
+ "mariadb",
+ "mysql",
+ "mongo",
+ "web-server"
+ ]
+ }
+ },
+ "required": [
+ "schedule",
+ "prefix",
+ "backupId",
+ "destinationId",
+ "database",
+ "serviceName",
+ "databaseType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.remove": {
+ "post": {
+ "operationId": "backup-remove",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "backupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupPostgres": {
+ "post": {
+ "operationId": "backup-manualBackupPostgres",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "backupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupMySql": {
+ "post": {
+ "operationId": "backup-manualBackupMySql",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "backupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupMariadb": {
+ "post": {
+ "operationId": "backup-manualBackupMariadb",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "backupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupCompose": {
+ "post": {
+ "operationId": "backup-manualBackupCompose",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "backupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupMongo": {
+ "post": {
+ "operationId": "backup-manualBackupMongo",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "backupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupWebServer": {
+ "post": {
+ "operationId": "backup-manualBackupWebServer",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "backupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.listBackupFiles": {
+ "get": {
+ "operationId": "backup-listBackupFiles",
+ "tags": [
+ "backup"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "destinationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "search",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.all": {
+ "get": {
+ "operationId": "deployment-all",
+ "tags": [
+ "deployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.allByCompose": {
+ "get": {
+ "operationId": "deployment-allByCompose",
+ "tags": [
+ "deployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.allByServer": {
+ "get": {
+ "operationId": "deployment-allByServer",
+ "tags": [
+ "deployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.allByType": {
+ "get": {
+ "operationId": "deployment-allByType",
+ "tags": [
+ "deployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "type",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "enum": [
+ "application",
+ "compose",
+ "server",
+ "schedule",
+ "previewDeployment",
+ "backup",
+ "volumeBackup"
+ ]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.killProcess": {
+ "post": {
+ "operationId": "deployment-killProcess",
+ "tags": [
+ "deployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "deploymentId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "deploymentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/previewDeployment.all": {
+ "get": {
+ "operationId": "previewDeployment-all",
+ "tags": [
+ "previewDeployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/previewDeployment.delete": {
+ "post": {
+ "operationId": "previewDeployment-delete",
+ "tags": [
+ "previewDeployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "previewDeploymentId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "previewDeploymentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/previewDeployment.one": {
+ "get": {
+ "operationId": "previewDeployment-one",
+ "tags": [
+ "previewDeployment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "previewDeploymentId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.create": {
+ "post": {
+ "operationId": "mounts-create",
+ "tags": [
+ "mounts"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "bind",
+ "volume",
+ "file"
+ ]
+ },
+ "hostPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "volumeName": {
+ "type": "string",
+ "nullable": true
+ },
+ "content": {
+ "type": "string",
+ "nullable": true
+ },
+ "mountPath": {
+ "type": "string",
+ "minLength": 1
+ },
+ "serviceType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ],
+ "default": "application"
+ },
+ "filePath": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "type",
+ "mountPath",
+ "serviceId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.remove": {
+ "post": {
+ "operationId": "mounts-remove",
+ "tags": [
+ "mounts"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mountId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "mountId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.one": {
+ "get": {
+ "operationId": "mounts-one",
+ "tags": [
+ "mounts"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "mountId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.update": {
+ "post": {
+ "operationId": "mounts-update",
+ "tags": [
+ "mounts"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mountId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "bind",
+ "volume",
+ "file"
+ ]
+ },
+ "hostPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "volumeName": {
+ "type": "string",
+ "nullable": true
+ },
+ "filePath": {
+ "type": "string",
+ "nullable": true
+ },
+ "content": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ],
+ "default": "application"
+ },
+ "mountPath": {
+ "type": "string",
+ "minLength": 1
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "postgresId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mariadbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mongoId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mysqlId": {
+ "type": "string",
+ "nullable": true
+ },
+ "redisId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "mountId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.allNamedByApplicationId": {
+ "get": {
+ "operationId": "mounts-allNamedByApplicationId",
+ "tags": [
+ "mounts"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/certificates.create": {
+ "post": {
+ "operationId": "certificates-create",
+ "tags": [
+ "certificates"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "certificateId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "certificateData": {
+ "type": "string",
+ "minLength": 1
+ },
+ "privateKey": {
+ "type": "string",
+ "minLength": 1
+ },
+ "certificatePath": {
+ "type": "string"
+ },
+ "autoRenew": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "organizationId": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "certificateData",
+ "privateKey",
+ "organizationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/certificates.one": {
+ "get": {
+ "operationId": "certificates-one",
+ "tags": [
+ "certificates"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "certificateId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/certificates.remove": {
+ "post": {
+ "operationId": "certificates-remove",
+ "tags": [
+ "certificates"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "certificateId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "certificateId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/certificates.all": {
+ "get": {
+ "operationId": "certificates-all",
+ "tags": [
+ "certificates"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.reloadServer": {
+ "post": {
+ "operationId": "settings-reloadServer",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanRedis": {
+ "post": {
+ "operationId": "settings-cleanRedis",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.reloadRedis": {
+ "post": {
+ "operationId": "settings-reloadRedis",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.reloadTraefik": {
+ "post": {
+ "operationId": "settings-reloadTraefik",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.toggleDashboard": {
+ "post": {
+ "operationId": "settings-toggleDashboard",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "enableDashboard": {
+ "type": "boolean"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanUnusedImages": {
+ "post": {
+ "operationId": "settings-cleanUnusedImages",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanUnusedVolumes": {
+ "post": {
+ "operationId": "settings-cleanUnusedVolumes",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanStoppedContainers": {
+ "post": {
+ "operationId": "settings-cleanStoppedContainers",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanDockerBuilder": {
+ "post": {
+ "operationId": "settings-cleanDockerBuilder",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanDockerPrune": {
+ "post": {
+ "operationId": "settings-cleanDockerPrune",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanAll": {
+ "post": {
+ "operationId": "settings-cleanAll",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanMonitoring": {
+ "post": {
+ "operationId": "settings-cleanMonitoring",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.saveSSHPrivateKey": {
+ "post": {
+ "operationId": "settings-saveSSHPrivateKey",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "sshPrivateKey": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "sshPrivateKey"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.assignDomainServer": {
+ "post": {
+ "operationId": "settings-assignDomainServer",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "nullable": true
+ },
+ "certificateType": {
+ "type": "string",
+ "enum": [
+ "letsencrypt",
+ "none",
+ "custom"
+ ]
+ },
+ "letsEncryptEmail": {
+ "type": "string",
+ "nullable": true
+ },
+ "https": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "host",
+ "certificateType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanSSHPrivateKey": {
+ "post": {
+ "operationId": "settings-cleanSSHPrivateKey",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateDockerCleanup": {
+ "post": {
+ "operationId": "settings-updateDockerCleanup",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "enableDockerCleanup": {
+ "type": "boolean"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "enableDockerCleanup"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readTraefikConfig": {
+ "get": {
+ "operationId": "settings-readTraefikConfig",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateTraefikConfig": {
+ "post": {
+ "operationId": "settings-updateTraefikConfig",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "traefikConfig": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "traefikConfig"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readWebServerTraefikConfig": {
+ "get": {
+ "operationId": "settings-readWebServerTraefikConfig",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateWebServerTraefikConfig": {
+ "post": {
+ "operationId": "settings-updateWebServerTraefikConfig",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "traefikConfig": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "traefikConfig"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readMiddlewareTraefikConfig": {
+ "get": {
+ "operationId": "settings-readMiddlewareTraefikConfig",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateMiddlewareTraefikConfig": {
+ "post": {
+ "operationId": "settings-updateMiddlewareTraefikConfig",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "traefikConfig": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "traefikConfig"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getUpdateData": {
+ "post": {
+ "operationId": "settings-getUpdateData",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateServer": {
+ "post": {
+ "operationId": "settings-updateServer",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getDokployVersion": {
+ "get": {
+ "operationId": "settings-getDokployVersion",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getReleaseTag": {
+ "get": {
+ "operationId": "settings-getReleaseTag",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readDirectories": {
+ "get": {
+ "operationId": "settings-readDirectories",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateTraefikFile": {
+ "post": {
+ "operationId": "settings-updateTraefikFile",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "path": {
+ "type": "string",
+ "minLength": 1
+ },
+ "traefikConfig": {
+ "type": "string",
+ "minLength": 1
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "path",
+ "traefikConfig"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readTraefikFile": {
+ "get": {
+ "operationId": "settings-readTraefikFile",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "path",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getIp": {
+ "get": {
+ "operationId": "settings-getIp",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getOpenApiDocument": {
+ "get": {
+ "operationId": "settings-getOpenApiDocument",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readTraefikEnv": {
+ "get": {
+ "operationId": "settings-readTraefikEnv",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.writeTraefikEnv": {
+ "post": {
+ "operationId": "settings-writeTraefikEnv",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "env": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "env"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.haveTraefikDashboardPortEnabled": {
+ "get": {
+ "operationId": "settings-haveTraefikDashboardPortEnabled",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.haveActivateRequests": {
+ "get": {
+ "operationId": "settings-haveActivateRequests",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.toggleRequests": {
+ "post": {
+ "operationId": "settings-toggleRequests",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "enable": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "enable"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.isCloud": {
+ "get": {
+ "operationId": "settings-isCloud",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.isUserSubscribed": {
+ "get": {
+ "operationId": "settings-isUserSubscribed",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.health": {
+ "get": {
+ "operationId": "settings-health",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.setupGPU": {
+ "post": {
+ "operationId": "settings-setupGPU",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.checkGPUStatus": {
+ "get": {
+ "operationId": "settings-checkGPUStatus",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateTraefikPorts": {
+ "post": {
+ "operationId": "settings-updateTraefikPorts",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ },
+ "additionalPorts": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "targetPort": {
+ "type": "number"
+ },
+ "publishedPort": {
+ "type": "number"
+ },
+ "protocol": {
+ "type": "string",
+ "enum": [
+ "tcp",
+ "udp",
+ "sctp"
+ ]
+ }
+ },
+ "required": [
+ "targetPort",
+ "publishedPort",
+ "protocol"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "required": [
+ "additionalPorts"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getTraefikPorts": {
+ "get": {
+ "operationId": "settings-getTraefikPorts",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateLogCleanup": {
+ "post": {
+ "operationId": "settings-updateLogCleanup",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "cronExpression": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "cronExpression"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getLogCleanupStatus": {
+ "get": {
+ "operationId": "settings-getLogCleanupStatus",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getDokployCloudIps": {
+ "get": {
+ "operationId": "settings-getDokployCloudIps",
+ "tags": [
+ "settings"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/security.create": {
+ "post": {
+ "operationId": "security-create",
+ "tags": [
+ "security"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "applicationId",
+ "username",
+ "password"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/security.one": {
+ "get": {
+ "operationId": "security-one",
+ "tags": [
+ "security"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "securityId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/security.delete": {
+ "post": {
+ "operationId": "security-delete",
+ "tags": [
+ "security"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "securityId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "securityId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/security.update": {
+ "post": {
+ "operationId": "security-update",
+ "tags": [
+ "security"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "securityId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "securityId",
+ "username",
+ "password"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redirects.create": {
+ "post": {
+ "operationId": "redirects-create",
+ "tags": [
+ "redirects"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "regex": {
+ "type": "string",
+ "minLength": 1
+ },
+ "replacement": {
+ "type": "string",
+ "minLength": 1
+ },
+ "permanent": {
+ "type": "boolean"
+ },
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "regex",
+ "replacement",
+ "permanent",
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redirects.one": {
+ "get": {
+ "operationId": "redirects-one",
+ "tags": [
+ "redirects"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "redirectId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redirects.delete": {
+ "post": {
+ "operationId": "redirects-delete",
+ "tags": [
+ "redirects"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redirectId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "redirectId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redirects.update": {
+ "post": {
+ "operationId": "redirects-update",
+ "tags": [
+ "redirects"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redirectId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "regex": {
+ "type": "string",
+ "minLength": 1
+ },
+ "replacement": {
+ "type": "string",
+ "minLength": 1
+ },
+ "permanent": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "redirectId",
+ "regex",
+ "replacement",
+ "permanent"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/port.create": {
+ "post": {
+ "operationId": "port-create",
+ "tags": [
+ "port"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "publishedPort": {
+ "type": "number"
+ },
+ "publishMode": {
+ "type": "string",
+ "enum": [
+ "ingress",
+ "host"
+ ],
+ "default": "ingress"
+ },
+ "targetPort": {
+ "type": "number"
+ },
+ "protocol": {
+ "type": "string",
+ "enum": [
+ "tcp",
+ "udp"
+ ],
+ "default": "tcp"
+ },
+ "applicationId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "publishedPort",
+ "targetPort",
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/port.one": {
+ "get": {
+ "operationId": "port-one",
+ "tags": [
+ "port"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "portId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/port.delete": {
+ "post": {
+ "operationId": "port-delete",
+ "tags": [
+ "port"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "portId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "portId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/port.update": {
+ "post": {
+ "operationId": "port-update",
+ "tags": [
+ "port"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "portId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "publishedPort": {
+ "type": "number"
+ },
+ "publishMode": {
+ "type": "string",
+ "enum": [
+ "ingress",
+ "host"
+ ],
+ "default": "ingress"
+ },
+ "targetPort": {
+ "type": "number"
+ },
+ "protocol": {
+ "type": "string",
+ "enum": [
+ "tcp",
+ "udp"
+ ],
+ "default": "tcp"
+ }
+ },
+ "required": [
+ "portId",
+ "publishedPort",
+ "targetPort"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.create": {
+ "post": {
+ "operationId": "registry-create",
+ "tags": [
+ "registry"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "registryName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "registryUrl": {
+ "type": "string"
+ },
+ "registryType": {
+ "type": "string",
+ "enum": [
+ "cloud"
+ ]
+ },
+ "imagePrefix": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "registryName",
+ "username",
+ "password",
+ "registryUrl",
+ "registryType",
+ "imagePrefix"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.remove": {
+ "post": {
+ "operationId": "registry-remove",
+ "tags": [
+ "registry"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "registryId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "registryId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.update": {
+ "post": {
+ "operationId": "registry-update",
+ "tags": [
+ "registry"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "registryId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "registryName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "imagePrefix": {
+ "type": "string",
+ "nullable": true
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "registryUrl": {
+ "type": "string"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "registryType": {
+ "type": "string",
+ "enum": [
+ "cloud"
+ ]
+ },
+ "organizationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "registryId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.all": {
+ "get": {
+ "operationId": "registry-all",
+ "tags": [
+ "registry"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.one": {
+ "get": {
+ "operationId": "registry-one",
+ "tags": [
+ "registry"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "registryId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.testRegistry": {
+ "post": {
+ "operationId": "registry-testRegistry",
+ "tags": [
+ "registry"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "registryName": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "registryUrl": {
+ "type": "string"
+ },
+ "registryType": {
+ "type": "string",
+ "enum": [
+ "cloud"
+ ]
+ },
+ "imagePrefix": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "username",
+ "password",
+ "registryUrl",
+ "registryType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/cluster.getNodes": {
+ "get": {
+ "operationId": "cluster-getNodes",
+ "tags": [
+ "cluster"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/cluster.removeWorker": {
+ "post": {
+ "operationId": "cluster-removeWorker",
+ "tags": [
+ "cluster"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "nodeId": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "nodeId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/cluster.addWorker": {
+ "get": {
+ "operationId": "cluster-addWorker",
+ "tags": [
+ "cluster"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/cluster.addManager": {
+ "get": {
+ "operationId": "cluster-addManager",
+ "tags": [
+ "cluster"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createSlack": {
+ "post": {
+ "operationId": "notification-createSlack",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "channel": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "webhookUrl",
+ "channel"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateSlack": {
+ "post": {
+ "operationId": "notification-updateSlack",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "channel": {
+ "type": "string"
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "slackId": {
+ "type": "string"
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId",
+ "slackId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testSlackConnection": {
+ "post": {
+ "operationId": "notification-testSlackConnection",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "channel": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "webhookUrl",
+ "channel"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createTelegram": {
+ "post": {
+ "operationId": "notification-createTelegram",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "botToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "chatId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "messageThreadId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "botToken",
+ "chatId",
+ "messageThreadId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateTelegram": {
+ "post": {
+ "operationId": "notification-updateTelegram",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "botToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "chatId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "messageThreadId": {
+ "type": "string"
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "telegramId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId",
+ "telegramId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testTelegramConnection": {
+ "post": {
+ "operationId": "notification-testTelegramConnection",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "botToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "chatId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "messageThreadId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "botToken",
+ "chatId",
+ "messageThreadId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createDiscord": {
+ "post": {
+ "operationId": "notification-createDiscord",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "webhookUrl",
+ "decoration"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateDiscord": {
+ "post": {
+ "operationId": "notification-updateDiscord",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "discordId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId",
+ "discordId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testDiscordConnection": {
+ "post": {
+ "operationId": "notification-testDiscordConnection",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "webhookUrl"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createEmail": {
+ "post": {
+ "operationId": "notification-createEmail",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "smtpServer": {
+ "type": "string",
+ "minLength": 1
+ },
+ "smtpPort": {
+ "type": "number",
+ "minimum": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "fromAddress": {
+ "type": "string",
+ "minLength": 1
+ },
+ "toAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "smtpServer",
+ "smtpPort",
+ "username",
+ "password",
+ "fromAddress",
+ "toAddresses"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateEmail": {
+ "post": {
+ "operationId": "notification-updateEmail",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "smtpServer": {
+ "type": "string",
+ "minLength": 1
+ },
+ "smtpPort": {
+ "type": "number",
+ "minimum": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "fromAddress": {
+ "type": "string",
+ "minLength": 1
+ },
+ "toAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "emailId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId",
+ "emailId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testEmailConnection": {
+ "post": {
+ "operationId": "notification-testEmailConnection",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "smtpServer": {
+ "type": "string",
+ "minLength": 1
+ },
+ "smtpPort": {
+ "type": "number",
+ "minimum": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "toAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1
+ },
+ "fromAddress": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "smtpServer",
+ "smtpPort",
+ "username",
+ "password",
+ "toAddresses",
+ "fromAddress"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.remove": {
+ "post": {
+ "operationId": "notification-remove",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "notificationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.one": {
+ "get": {
+ "operationId": "notification-one",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "notificationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.all": {
+ "get": {
+ "operationId": "notification-all",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.receiveNotification": {
+ "post": {
+ "operationId": "notification-receiveNotification",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "ServerType": {
+ "type": "string",
+ "enum": [
+ "Dokploy",
+ "Remote"
+ ],
+ "default": "Dokploy"
+ },
+ "Type": {
+ "type": "string",
+ "enum": [
+ "Memory",
+ "CPU"
+ ]
+ },
+ "Value": {
+ "type": "number"
+ },
+ "Threshold": {
+ "type": "number"
+ },
+ "Message": {
+ "type": "string"
+ },
+ "Timestamp": {
+ "type": "string"
+ },
+ "Token": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Type",
+ "Value",
+ "Threshold",
+ "Message",
+ "Timestamp",
+ "Token"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createGotify": {
+ "post": {
+ "operationId": "notification-createGotify",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverUrl",
+ "appToken",
+ "priority",
+ "decoration"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateGotify": {
+ "post": {
+ "operationId": "notification-updateGotify",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "gotifyId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId",
+ "gotifyId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testGotifyConnection": {
+ "post": {
+ "operationId": "notification-testGotifyConnection",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "serverUrl",
+ "appToken",
+ "priority"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createNtfy": {
+ "post": {
+ "operationId": "notification-createNtfy",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "topic": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverUrl",
+ "topic",
+ "accessToken",
+ "priority"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateNtfy": {
+ "post": {
+ "operationId": "notification-updateNtfy",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "topic": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "ntfyId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId",
+ "ntfyId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testNtfyConnection": {
+ "post": {
+ "operationId": "notification-testNtfyConnection",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "topic": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ }
+ },
+ "required": [
+ "serverUrl",
+ "topic",
+ "accessToken",
+ "priority"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createLark": {
+ "post": {
+ "operationId": "notification-createLark",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "webhookUrl"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateLark": {
+ "post": {
+ "operationId": "notification-updateLark",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "larkId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "notificationId",
+ "larkId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testLarkConnection": {
+ "post": {
+ "operationId": "notification-testLarkConnection",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "webhookUrl"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.getEmailProviders": {
+ "get": {
+ "operationId": "notification-getEmailProviders",
+ "tags": [
+ "notification"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.create": {
+ "post": {
+ "operationId": "sshKey-create",
+ "tags": [
+ "sshKey"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "privateKey": {
+ "type": "string"
+ },
+ "publicKey": {
+ "type": "string"
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "privateKey",
+ "publicKey",
+ "organizationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.remove": {
+ "post": {
+ "operationId": "sshKey-remove",
+ "tags": [
+ "sshKey"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "sshKeyId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "sshKeyId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.one": {
+ "get": {
+ "operationId": "sshKey-one",
+ "tags": [
+ "sshKey"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "sshKeyId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.all": {
+ "get": {
+ "operationId": "sshKey-all",
+ "tags": [
+ "sshKey"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.generate": {
+ "post": {
+ "operationId": "sshKey-generate",
+ "tags": [
+ "sshKey"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": [
+ "rsa",
+ "ed25519"
+ ]
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.update": {
+ "post": {
+ "operationId": "sshKey-update",
+ "tags": [
+ "sshKey"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "lastUsedAt": {
+ "type": "string",
+ "nullable": true
+ },
+ "sshKeyId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "sshKeyId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitProvider.getAll": {
+ "get": {
+ "operationId": "gitProvider-getAll",
+ "tags": [
+ "gitProvider"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitProvider.remove": {
+ "post": {
+ "operationId": "gitProvider-remove",
+ "tags": [
+ "gitProvider"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "gitProviderId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "gitProviderId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.create": {
+ "post": {
+ "operationId": "gitea-create",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "giteaId": {
+ "type": "string"
+ },
+ "giteaUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "redirectUri": {
+ "type": "string"
+ },
+ "clientId": {
+ "type": "string"
+ },
+ "clientSecret": {
+ "type": "string"
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "accessToken": {
+ "type": "string"
+ },
+ "refreshToken": {
+ "type": "string"
+ },
+ "expiresAt": {
+ "type": "number"
+ },
+ "scopes": {
+ "type": "string"
+ },
+ "lastAuthenticatedAt": {
+ "type": "number"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "giteaUsername": {
+ "type": "string"
+ },
+ "organizationName": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "giteaUrl",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.one": {
+ "get": {
+ "operationId": "gitea-one",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "giteaId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.giteaProviders": {
+ "get": {
+ "operationId": "gitea-giteaProviders",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.getGiteaRepositories": {
+ "get": {
+ "operationId": "gitea-getGiteaRepositories",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "giteaId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.getGiteaBranches": {
+ "get": {
+ "operationId": "gitea-getGiteaBranches",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "repositoryName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "giteaId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.testConnection": {
+ "post": {
+ "operationId": "gitea-testConnection",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "giteaId": {
+ "type": "string"
+ },
+ "organizationName": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.update": {
+ "post": {
+ "operationId": "gitea-update",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "giteaId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "giteaUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "redirectUri": {
+ "type": "string"
+ },
+ "clientId": {
+ "type": "string"
+ },
+ "clientSecret": {
+ "type": "string"
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "accessToken": {
+ "type": "string"
+ },
+ "refreshToken": {
+ "type": "string"
+ },
+ "expiresAt": {
+ "type": "number"
+ },
+ "scopes": {
+ "type": "string"
+ },
+ "lastAuthenticatedAt": {
+ "type": "number"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "giteaUsername": {
+ "type": "string"
+ },
+ "organizationName": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "giteaId",
+ "giteaUrl",
+ "gitProviderId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.getGiteaUrl": {
+ "get": {
+ "operationId": "gitea-getGiteaUrl",
+ "tags": [
+ "gitea"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "giteaId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.create": {
+ "post": {
+ "operationId": "bitbucket-create",
+ "tags": [
+ "bitbucket"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "bitbucketId": {
+ "type": "string"
+ },
+ "bitbucketUsername": {
+ "type": "string"
+ },
+ "bitbucketEmail": {
+ "type": "string",
+ "format": "email"
+ },
+ "appPassword": {
+ "type": "string"
+ },
+ "apiToken": {
+ "type": "string"
+ },
+ "bitbucketWorkspaceName": {
+ "type": "string"
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "authId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "authId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.one": {
+ "get": {
+ "operationId": "bitbucket-one",
+ "tags": [
+ "bitbucket"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "bitbucketId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.bitbucketProviders": {
+ "get": {
+ "operationId": "bitbucket-bitbucketProviders",
+ "tags": [
+ "bitbucket"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.getBitbucketRepositories": {
+ "get": {
+ "operationId": "bitbucket-getBitbucketRepositories",
+ "tags": [
+ "bitbucket"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "bitbucketId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.getBitbucketBranches": {
+ "get": {
+ "operationId": "bitbucket-getBitbucketBranches",
+ "tags": [
+ "bitbucket"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "repo",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "bitbucketId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.testConnection": {
+ "post": {
+ "operationId": "bitbucket-testConnection",
+ "tags": [
+ "bitbucket"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "bitbucketId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "bitbucketUsername": {
+ "type": "string"
+ },
+ "bitbucketEmail": {
+ "type": "string",
+ "format": "email"
+ },
+ "workspaceName": {
+ "type": "string"
+ },
+ "apiToken": {
+ "type": "string"
+ },
+ "appPassword": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "bitbucketId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.update": {
+ "post": {
+ "operationId": "bitbucket-update",
+ "tags": [
+ "bitbucket"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "bitbucketId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "bitbucketUsername": {
+ "type": "string"
+ },
+ "bitbucketEmail": {
+ "type": "string",
+ "format": "email"
+ },
+ "appPassword": {
+ "type": "string"
+ },
+ "apiToken": {
+ "type": "string"
+ },
+ "bitbucketWorkspaceName": {
+ "type": "string"
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "bitbucketId",
+ "gitProviderId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.create": {
+ "post": {
+ "operationId": "gitlab-create",
+ "tags": [
+ "gitlab"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "gitlabId": {
+ "type": "string"
+ },
+ "gitlabUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "redirectUri": {
+ "type": "string"
+ },
+ "secret": {
+ "type": "string"
+ },
+ "accessToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "refreshToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "groupName": {
+ "type": "string"
+ },
+ "expiresAt": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "authId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "gitlabUrl",
+ "authId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.one": {
+ "get": {
+ "operationId": "gitlab-one",
+ "tags": [
+ "gitlab"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "gitlabId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.gitlabProviders": {
+ "get": {
+ "operationId": "gitlab-gitlabProviders",
+ "tags": [
+ "gitlab"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.getGitlabRepositories": {
+ "get": {
+ "operationId": "gitlab-getGitlabRepositories",
+ "tags": [
+ "gitlab"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "gitlabId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.getGitlabBranches": {
+ "get": {
+ "operationId": "gitlab-getGitlabBranches",
+ "tags": [
+ "gitlab"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "number"
+ }
+ },
+ {
+ "name": "owner",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "repo",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "gitlabId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.testConnection": {
+ "post": {
+ "operationId": "gitlab-testConnection",
+ "tags": [
+ "gitlab"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "gitlabId": {
+ "type": "string"
+ },
+ "groupName": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.update": {
+ "post": {
+ "operationId": "gitlab-update",
+ "tags": [
+ "gitlab"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "gitlabId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "gitlabUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "redirectUri": {
+ "type": "string"
+ },
+ "secret": {
+ "type": "string"
+ },
+ "accessToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "refreshToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "groupName": {
+ "type": "string"
+ },
+ "expiresAt": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "gitlabId",
+ "gitlabUrl",
+ "gitProviderId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.one": {
+ "get": {
+ "operationId": "github-one",
+ "tags": [
+ "github"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "githubId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.getGithubRepositories": {
+ "get": {
+ "operationId": "github-getGithubRepositories",
+ "tags": [
+ "github"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "githubId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.getGithubBranches": {
+ "get": {
+ "operationId": "github-getGithubBranches",
+ "tags": [
+ "github"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "repo",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "owner",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "githubId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.githubProviders": {
+ "get": {
+ "operationId": "github-githubProviders",
+ "tags": [
+ "github"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.testConnection": {
+ "post": {
+ "operationId": "github-testConnection",
+ "tags": [
+ "github"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "githubId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "githubId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.update": {
+ "post": {
+ "operationId": "github-update",
+ "tags": [
+ "github"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "githubId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "githubAppName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "githubAppId": {
+ "type": "number",
+ "nullable": true
+ },
+ "githubClientId": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubClientSecret": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubInstallationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubPrivateKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubWebhookSecret": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitProviderId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "githubId",
+ "githubAppName",
+ "gitProviderId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.create": {
+ "post": {
+ "operationId": "server-create",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "ipAddress": {
+ "type": "string"
+ },
+ "port": {
+ "type": "number"
+ },
+ "username": {
+ "type": "string"
+ },
+ "sshKeyId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverType": {
+ "type": "string",
+ "enum": [
+ "deploy",
+ "build"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "ipAddress",
+ "port",
+ "username",
+ "sshKeyId",
+ "serverType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.one": {
+ "get": {
+ "operationId": "server-one",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.getDefaultCommand": {
+ "get": {
+ "operationId": "server-getDefaultCommand",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.all": {
+ "get": {
+ "operationId": "server-all",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.count": {
+ "get": {
+ "operationId": "server-count",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.withSSHKey": {
+ "get": {
+ "operationId": "server-withSSHKey",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.buildServers": {
+ "get": {
+ "operationId": "server-buildServers",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.setup": {
+ "post": {
+ "operationId": "server-setup",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "serverId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.validate": {
+ "get": {
+ "operationId": "server-validate",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.security": {
+ "get": {
+ "operationId": "server-security",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.setupMonitoring": {
+ "post": {
+ "operationId": "server-setupMonitoring",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "metricsConfig": {
+ "type": "object",
+ "properties": {
+ "server": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number",
+ "minimum": 2
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1
+ },
+ "token": {
+ "type": "string"
+ },
+ "urlCallback": {
+ "type": "string",
+ "format": "uri"
+ },
+ "retentionDays": {
+ "type": "number",
+ "minimum": 1
+ },
+ "cronJob": {
+ "type": "string",
+ "minLength": 1
+ },
+ "thresholds": {
+ "type": "object",
+ "properties": {
+ "cpu": {
+ "type": "number",
+ "minimum": 0
+ },
+ "memory": {
+ "type": "number",
+ "minimum": 0
+ }
+ },
+ "required": [
+ "cpu",
+ "memory"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "refreshRate",
+ "port",
+ "token",
+ "urlCallback",
+ "retentionDays",
+ "cronJob",
+ "thresholds"
+ ],
+ "additionalProperties": false
+ },
+ "containers": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number",
+ "minimum": 2
+ },
+ "services": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "refreshRate",
+ "services"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "server",
+ "containers"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "serverId",
+ "metricsConfig"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.remove": {
+ "post": {
+ "operationId": "server-remove",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "serverId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.update": {
+ "post": {
+ "operationId": "server-update",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "ipAddress": {
+ "type": "string"
+ },
+ "port": {
+ "type": "number"
+ },
+ "username": {
+ "type": "string"
+ },
+ "sshKeyId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverType": {
+ "type": "string",
+ "enum": [
+ "deploy",
+ "build"
+ ]
+ },
+ "command": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "serverId",
+ "ipAddress",
+ "port",
+ "username",
+ "sshKeyId",
+ "serverType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.publicIp": {
+ "get": {
+ "operationId": "server-publicIp",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.getServerTime": {
+ "get": {
+ "operationId": "server-getServerTime",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.getServerMetrics": {
+ "get": {
+ "operationId": "server-getServerMetrics",
+ "tags": [
+ "server"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "url",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "token",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "dataPoints",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/stripe.getProducts": {
+ "get": {
+ "operationId": "stripe-getProducts",
+ "tags": [
+ "stripe"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/stripe.createCheckoutSession": {
+ "post": {
+ "operationId": "stripe-createCheckoutSession",
+ "tags": [
+ "stripe"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "productId": {
+ "type": "string"
+ },
+ "serverQuantity": {
+ "type": "number",
+ "minimum": 1
+ },
+ "isAnnual": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "productId",
+ "serverQuantity",
+ "isAnnual"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/stripe.createCustomerPortalSession": {
+ "post": {
+ "operationId": "stripe-createCustomerPortalSession",
+ "tags": [
+ "stripe"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/stripe.canCreateMoreServers": {
+ "get": {
+ "operationId": "stripe-canCreateMoreServers",
+ "tags": [
+ "stripe"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/swarm.getNodes": {
+ "get": {
+ "operationId": "swarm-getNodes",
+ "tags": [
+ "swarm"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/swarm.getNodeInfo": {
+ "get": {
+ "operationId": "swarm-getNodeInfo",
+ "tags": [
+ "swarm"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "nodeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/swarm.getNodeApps": {
+ "get": {
+ "operationId": "swarm-getNodeApps",
+ "tags": [
+ "swarm"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.one": {
+ "get": {
+ "operationId": "ai-one",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "aiId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.getModels": {
+ "get": {
+ "operationId": "ai-getModels",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "apiUrl",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "apiKey",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.create": {
+ "post": {
+ "operationId": "ai-create",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "apiUrl": {
+ "type": "string",
+ "format": "uri"
+ },
+ "apiKey": {
+ "type": "string"
+ },
+ "model": {
+ "type": "string",
+ "minLength": 1
+ },
+ "isEnabled": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "name",
+ "apiUrl",
+ "apiKey",
+ "model",
+ "isEnabled"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.update": {
+ "post": {
+ "operationId": "ai-update",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "aiId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "apiUrl": {
+ "type": "string",
+ "format": "uri"
+ },
+ "apiKey": {
+ "type": "string"
+ },
+ "model": {
+ "type": "string",
+ "minLength": 1
+ },
+ "isEnabled": {
+ "type": "boolean"
+ },
+ "createdAt": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "aiId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.getAll": {
+ "get": {
+ "operationId": "ai-getAll",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.get": {
+ "get": {
+ "operationId": "ai-get",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "aiId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.delete": {
+ "post": {
+ "operationId": "ai-delete",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "aiId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "aiId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.suggest": {
+ "post": {
+ "operationId": "ai-suggest",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "aiId": {
+ "type": "string"
+ },
+ "input": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "aiId",
+ "input"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.deploy": {
+ "post": {
+ "operationId": "ai-deploy",
+ "tags": [
+ "ai"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "id": {
+ "type": "string",
+ "minLength": 1
+ },
+ "dockerCompose": {
+ "type": "string",
+ "minLength": 1
+ },
+ "envVariables": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string"
+ },
+ "domains": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "minLength": 1
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1
+ },
+ "serviceName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "host",
+ "port",
+ "serviceName"
+ ],
+ "additionalProperties": false
+ }
+ },
+ "configFiles": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "filePath": {
+ "type": "string",
+ "minLength": 1
+ },
+ "content": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "filePath",
+ "content"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "required": [
+ "environmentId",
+ "id",
+ "dockerCompose",
+ "envVariables",
+ "name",
+ "description"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.create": {
+ "post": {
+ "operationId": "organization-create",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "logo": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.all": {
+ "get": {
+ "operationId": "organization-all",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.one": {
+ "get": {
+ "operationId": "organization-one",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "organizationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.update": {
+ "post": {
+ "operationId": "organization-update",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "organizationId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "logo": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "organizationId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.delete": {
+ "post": {
+ "operationId": "organization-delete",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "organizationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.allInvitations": {
+ "get": {
+ "operationId": "organization-allInvitations",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.removeInvitation": {
+ "post": {
+ "operationId": "organization-removeInvitation",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "invitationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "invitationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.setDefault": {
+ "post": {
+ "operationId": "organization-setDefault",
+ "tags": [
+ "organization"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "organizationId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "organizationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.create": {
+ "post": {
+ "operationId": "schedule-create",
+ "tags": [
+ "schedule"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "scheduleId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "cronExpression": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "shellType": {
+ "type": "string",
+ "enum": [
+ "bash",
+ "sh"
+ ]
+ },
+ "scheduleType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "compose",
+ "server",
+ "dokploy-server"
+ ]
+ },
+ "command": {
+ "type": "string"
+ },
+ "script": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ },
+ "userId": {
+ "type": "string",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "createdAt": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "cronExpression",
+ "command"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.update": {
+ "post": {
+ "operationId": "schedule-update",
+ "tags": [
+ "schedule"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "scheduleId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string"
+ },
+ "cronExpression": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "shellType": {
+ "type": "string",
+ "enum": [
+ "bash",
+ "sh"
+ ]
+ },
+ "scheduleType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "compose",
+ "server",
+ "dokploy-server"
+ ]
+ },
+ "command": {
+ "type": "string"
+ },
+ "script": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ },
+ "userId": {
+ "type": "string",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "createdAt": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "scheduleId",
+ "name",
+ "cronExpression",
+ "command"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.delete": {
+ "post": {
+ "operationId": "schedule-delete",
+ "tags": [
+ "schedule"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "scheduleId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "scheduleId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.list": {
+ "get": {
+ "operationId": "schedule-list",
+ "tags": [
+ "schedule"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "scheduleType",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "enum": [
+ "application",
+ "compose",
+ "server",
+ "dokploy-server"
+ ]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.one": {
+ "get": {
+ "operationId": "schedule-one",
+ "tags": [
+ "schedule"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "scheduleId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.runManually": {
+ "post": {
+ "operationId": "schedule-runManually",
+ "tags": [
+ "schedule"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "scheduleId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "scheduleId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/rollback.delete": {
+ "post": {
+ "operationId": "rollback-delete",
+ "tags": [
+ "rollback"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "rollbackId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "rollbackId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/rollback.rollback": {
+ "post": {
+ "operationId": "rollback-rollback",
+ "tags": [
+ "rollback"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "rollbackId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "rollbackId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.list": {
+ "get": {
+ "operationId": "volumeBackups-list",
+ "tags": [
+ "volumeBackups"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "volumeBackupType",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.create": {
+ "post": {
+ "operationId": "volumeBackups-create",
+ "tags": [
+ "volumeBackups"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "volumeName": {
+ "type": "string"
+ },
+ "prefix": {
+ "type": "string"
+ },
+ "serviceType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ]
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "turnOff": {
+ "type": "boolean"
+ },
+ "cronExpression": {
+ "type": "string"
+ },
+ "keepLatestCount": {
+ "type": "number",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "postgresId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mariadbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mongoId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mysqlId": {
+ "type": "string",
+ "nullable": true
+ },
+ "redisId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "destinationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "volumeName",
+ "prefix",
+ "cronExpression",
+ "destinationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.one": {
+ "get": {
+ "operationId": "volumeBackups-one",
+ "tags": [
+ "volumeBackups"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "volumeBackupId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.delete": {
+ "post": {
+ "operationId": "volumeBackups-delete",
+ "tags": [
+ "volumeBackups"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "volumeBackupId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "volumeBackupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.update": {
+ "post": {
+ "operationId": "volumeBackups-update",
+ "tags": [
+ "volumeBackups"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "volumeName": {
+ "type": "string"
+ },
+ "prefix": {
+ "type": "string"
+ },
+ "serviceType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ]
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "turnOff": {
+ "type": "boolean"
+ },
+ "cronExpression": {
+ "type": "string"
+ },
+ "keepLatestCount": {
+ "type": "number",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "postgresId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mariadbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mongoId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mysqlId": {
+ "type": "string",
+ "nullable": true
+ },
+ "redisId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "destinationId": {
+ "type": "string"
+ },
+ "volumeBackupId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "name",
+ "volumeName",
+ "prefix",
+ "cronExpression",
+ "destinationId",
+ "volumeBackupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.runManually": {
+ "post": {
+ "operationId": "volumeBackups-runManually",
+ "tags": [
+ "volumeBackups"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "volumeBackupId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "volumeBackupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.create": {
+ "post": {
+ "operationId": "environment-create",
+ "tags": [
+ "environment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "projectId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "projectId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.one": {
+ "get": {
+ "operationId": "environment-one",
+ "tags": [
+ "environment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "environmentId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.byProjectId": {
+ "get": {
+ "operationId": "environment-byProjectId",
+ "tags": [
+ "environment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.remove": {
+ "post": {
+ "operationId": "environment-remove",
+ "tags": [
+ "environment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "environmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.update": {
+ "post": {
+ "operationId": "environment-update",
+ "tags": [
+ "environment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string"
+ },
+ "projectId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "environmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.duplicate": {
+ "post": {
+ "operationId": "environment-duplicate",
+ "tags": [
+ "environment"
+ ],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "environmentId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ }
+ },
+ "components": {
+ "securitySchemes": {
+ "apiKey": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "x-api-key",
+ "description": "API key authentication. Generate an API key from your Dokploy dashboard under Settings > API Keys."
+ }
+ },
+ "responses": {
+ "error": {
+ "description": "Error response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string"
+ },
+ "code": {
+ "type": "string"
+ },
+ "issues": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "message"
+ ],
+ "additionalProperties": false
+ }
+ }
+ },
+ "required": [
+ "message",
+ "code"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ {
+ "name": "admin"
+ },
+ {
+ "name": "docker"
+ },
+ {
+ "name": "compose"
+ },
+ {
+ "name": "registry"
+ },
+ {
+ "name": "cluster"
+ },
+ {
+ "name": "user"
+ },
+ {
+ "name": "domain"
+ },
+ {
+ "name": "destination"
+ },
+ {
+ "name": "backup"
+ },
+ {
+ "name": "deployment"
+ },
+ {
+ "name": "mounts"
+ },
+ {
+ "name": "certificates"
+ },
+ {
+ "name": "settings"
+ },
+ {
+ "name": "security"
+ },
+ {
+ "name": "redirects"
+ },
+ {
+ "name": "port"
+ },
+ {
+ "name": "project"
+ },
+ {
+ "name": "application"
+ },
+ {
+ "name": "mysql"
+ },
+ {
+ "name": "postgres"
+ },
+ {
+ "name": "redis"
+ },
+ {
+ "name": "mongo"
+ },
+ {
+ "name": "mariadb"
+ },
+ {
+ "name": "sshRouter"
+ },
+ {
+ "name": "gitProvider"
+ },
+ {
+ "name": "bitbucket"
+ },
+ {
+ "name": "github"
+ },
+ {
+ "name": "gitlab"
+ },
+ {
+ "name": "gitea"
+ },
+ {
+ "name": "server"
+ },
+ {
+ "name": "swarm"
+ },
+ {
+ "name": "ai"
+ },
+ {
+ "name": "organization"
+ },
+ {
+ "name": "schedule"
+ },
+ {
+ "name": "rollback"
+ },
+ {
+ "name": "volumeBackups"
+ },
+ {
+ "name": "environment"
+ }
+ ],
+ "externalDocs": {
+ "description": "Full documentation",
+ "url": "https://docs.dokploy.com"
+ },
+ "security": [
+ {
+ "apiKey": []
+ }
+ ]
+}
\ No newline at end of file
From 88b4374019b10515b9aa7a804ea71b2d0724e607 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sun, 30 Nov 2025 00:53:38 -0600
Subject: [PATCH 37/74] chore: update OpenAPI sync workflow to commit changes
- Re-enabled the steps to commit the generated OpenAPI specification to the website repository.
- Improved checks for changes in the OpenAPI spec before committing.
- Enhanced commit message formatting for clarity and added a timestamp to the commit.
---
.github/workflows/sync-openapi-docs.yml | 67 ++++++++++++++-----------
1 file changed, 38 insertions(+), 29 deletions(-)
diff --git a/.github/workflows/sync-openapi-docs.yml b/.github/workflows/sync-openapi-docs.yml
index 76792f826..e17c33131 100644
--- a/.github/workflows/sync-openapi-docs.yml
+++ b/.github/workflows/sync-openapi-docs.yml
@@ -31,46 +31,55 @@ jobs:
run: pnpm install --frozen-lockfile
- name: Generate OpenAPI specification
- run: pnpm generate:openapi
-
- - name: Commit OpenAPI spec
run: |
- git config user.name "Dokploy Bot"
- git config user.email "bot@dokploy.com"
+ pnpm generate:openapi
- # Verifica si el archivo existe
+ # Verifica que se generó correctamente
if [ ! -f openapi.json ]; then
echo "❌ openapi.json not found"
exit 1
fi
- # Usa -f para forzar el add de archivos en .gitignore
- git add -f openapi.json
+ echo "✅ OpenAPI specification generated successfully"
+
+ - name: Sync to website repository
+ run: |
+ # Clona el repositorio de website
+ git clone https://x-access-token:${{ secrets.DOCS_SYNC_TOKEN }}@github.com/dokploy/website.git website-repo
- # Verifica si hay cambios para commitear
- if git diff --cached --quiet; then
- echo "📝 No changes detected in OpenAPI spec"
- echo "HAS_CHANGES=false" >> $GITHUB_ENV
+ cd website-repo
+
+ # Copia el openapi.json al website
+ mkdir -p public
+ cp ../openapi.json public/openapi.json
+
+ # Configura git
+ git config user.name "Dokploy Bot"
+ git config user.email "bot@dokploy.com"
+
+ # Verifica si hay cambios
+ if git diff --quiet public/openapi.json; then
+ echo "📝 No changes detected in website repo"
exit 0
fi
- echo "HAS_CHANGES=true" >> $GITHUB_ENV
-
- # Commit los cambios
- git commit -m "chore: update OpenAPI specification [skip ci]" \
- -m "Generated from commit: ${{ github.sha }}" \
- -m "Triggered by: ${{ github.event_name }}"
-
+ # Commitea y pushea
+ git add public/openapi.json
+ git commit -m "chore: sync OpenAPI specification [skip ci]" \
+ -m "Source: ${{ github.repository }}@${{ github.sha }}" \
+ -m "Updated: $(date -u +'%Y-%m-%d %H:%M:%S UTC')"
git push
- echo "✅ OpenAPI spec committed successfully"
-
- - name: Trigger website sync
- if: env.HAS_CHANGES == 'true'
- uses: peter-evans/repository-dispatch@v2
- with:
- token: ${{ secrets.DOCS_SYNC_TOKEN }}
- repository: dokploy/website
- event-type: openapi-updated
- client-payload: '{"commit": "${{ github.sha }}", "timestamp": "${{ github.event.head_commit.timestamp }}"}'
+ echo "✅ OpenAPI synced to website successfully"
+ continue-on-error: true
+
+ - name: Create summary
+ run: |
+ echo "## 📊 OpenAPI Sync Summary" >> $GITHUB_STEP_SUMMARY
+ echo "" >> $GITHUB_STEP_SUMMARY
+ echo "- **Repository:** \`${{ github.repository }}\`" >> $GITHUB_STEP_SUMMARY
+ echo "- **Commit:** \`${{ github.sha }}\`" >> $GITHUB_STEP_SUMMARY
+ echo "- **Trigger:** \`${{ github.event_name }}\`" >> $GITHUB_STEP_SUMMARY
+ echo "- **Target:** \`dokploy/website\`" >> $GITHUB_STEP_SUMMARY
+ echo "- **Status:** ✅ Success" >> $GITHUB_STEP_SUMMARY
From 8728d4b600ce8a07493f7367619da600b624f37a Mon Sep 17 00:00:00 2001
From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com>
Date: Sun, 30 Nov 2025 06:54:10 +0000
Subject: [PATCH 38/74] [autofix.ci] apply automated fixes
---
openapi.json | 41557 ++++++++++++++++++++++++-------------------------
1 file changed, 20003 insertions(+), 21554 deletions(-)
diff --git a/openapi.json b/openapi.json
index 399e4a13a..76366bdb2 100644
--- a/openapi.json
+++ b/openapi.json
@@ -1,21555 +1,20004 @@
{
- "openapi": "3.0.3",
- "info": {
- "title": "Dokploy API",
- "description": "Complete API documentation for Dokploy - Deploy applications, manage databases, and orchestrate your infrastructure. This API allows you to programmatically manage all aspects of your Dokploy instance.",
- "version": "1.0.0",
- "contact": {
- "name": "Dokploy Team",
- "url": "https://dokploy.com"
- },
- "license": {
- "name": "Apache 2.0",
- "url": "https://github.com/dokploy/dokploy/blob/canary/LICENSE"
- }
- },
- "servers": [
- {
- "url": "https://your-dokploy-instance.com/api"
- }
- ],
- "paths": {
- "/admin.setupMonitoring": {
- "post": {
- "operationId": "admin-setupMonitoring",
- "tags": [
- "admin"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "metricsConfig": {
- "type": "object",
- "properties": {
- "server": {
- "type": "object",
- "properties": {
- "refreshRate": {
- "type": "number",
- "minimum": 2
- },
- "port": {
- "type": "number",
- "minimum": 1
- },
- "token": {
- "type": "string"
- },
- "urlCallback": {
- "type": "string",
- "format": "uri"
- },
- "retentionDays": {
- "type": "number",
- "minimum": 1
- },
- "cronJob": {
- "type": "string",
- "minLength": 1
- },
- "thresholds": {
- "type": "object",
- "properties": {
- "cpu": {
- "type": "number",
- "minimum": 0
- },
- "memory": {
- "type": "number",
- "minimum": 0
- }
- },
- "required": [
- "cpu",
- "memory"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "refreshRate",
- "port",
- "token",
- "urlCallback",
- "retentionDays",
- "cronJob",
- "thresholds"
- ],
- "additionalProperties": false
- },
- "containers": {
- "type": "object",
- "properties": {
- "refreshRate": {
- "type": "number",
- "minimum": 2
- },
- "services": {
- "type": "object",
- "properties": {
- "include": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "exclude": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- },
- "additionalProperties": false
- }
- },
- "required": [
- "refreshRate",
- "services"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "server",
- "containers"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "metricsConfig"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.getContainers": {
- "get": {
- "operationId": "docker-getContainers",
- "tags": [
- "docker"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.restartContainer": {
- "post": {
- "operationId": "docker-restartContainer",
- "tags": [
- "docker"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "containerId": {
- "type": "string",
- "minLength": 1,
- "pattern": "^[a-zA-Z0-9.\\-_]+$"
- }
- },
- "required": [
- "containerId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.getConfig": {
- "get": {
- "operationId": "docker-getConfig",
- "tags": [
- "docker"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "containerId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1,
- "pattern": "^[a-zA-Z0-9.\\-_]+$"
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.getContainersByAppNameMatch": {
- "get": {
- "operationId": "docker-getContainersByAppNameMatch",
- "tags": [
- "docker"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "appType",
- "in": "query",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "stack"
- ]
- },
- {
- "type": "string",
- "enum": [
- "docker-compose"
- ]
- }
- ]
- }
- },
- {
- "name": "appName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1,
- "pattern": "^[a-zA-Z0-9.\\-_]+$"
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.getContainersByAppLabel": {
- "get": {
- "operationId": "docker-getContainersByAppLabel",
- "tags": [
- "docker"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "appName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1,
- "pattern": "^[a-zA-Z0-9.\\-_]+$"
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "type",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "enum": [
- "standalone",
- "swarm"
- ]
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.getStackContainersByAppName": {
- "get": {
- "operationId": "docker-getStackContainersByAppName",
- "tags": [
- "docker"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "appName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1,
- "pattern": "^[a-zA-Z0-9.\\-_]+$"
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.getServiceContainersByAppName": {
- "get": {
- "operationId": "docker-getServiceContainersByAppName",
- "tags": [
- "docker"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "appName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1,
- "pattern": "^[a-zA-Z0-9.\\-_]+$"
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/project.create": {
- "post": {
- "operationId": "project-create",
- "tags": [
- "project"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string"
- }
- },
- "required": [
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/project.one": {
- "get": {
- "operationId": "project-one",
- "tags": [
- "project"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "projectId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/project.all": {
- "get": {
- "operationId": "project-all",
- "tags": [
- "project"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/project.remove": {
- "post": {
- "operationId": "project-remove",
- "tags": [
- "project"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "projectId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "projectId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/project.update": {
- "post": {
- "operationId": "project-update",
- "tags": [
- "project"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "projectId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "createdAt": {
- "type": "string"
- },
- "organizationId": {
- "type": "string"
- },
- "env": {
- "type": "string"
- }
- },
- "required": [
- "projectId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/project.duplicate": {
- "post": {
- "operationId": "project-duplicate",
- "tags": [
- "project"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "sourceEnvironmentId": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "includeServices": {
- "type": "boolean",
- "default": true
- },
- "selectedServices": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "enum": [
- "application",
- "postgres",
- "mariadb",
- "mongo",
- "mysql",
- "redis",
- "compose"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "additionalProperties": false
- }
- },
- "duplicateInSameProject": {
- "type": "boolean",
- "default": false
- }
- },
- "required": [
- "sourceEnvironmentId",
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.create": {
- "post": {
- "operationId": "application-create",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "environmentId": {
- "type": "string"
- },
- "serverId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "name",
- "environmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.one": {
- "get": {
- "operationId": "application-one",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "applicationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.reload": {
- "post": {
- "operationId": "application-reload",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appName": {
- "type": "string"
- },
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "appName",
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.delete": {
- "post": {
- "operationId": "application-delete",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.stop": {
- "post": {
- "operationId": "application-stop",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.start": {
- "post": {
- "operationId": "application-start",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.redeploy": {
- "post": {
- "operationId": "application-redeploy",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string",
- "minLength": 1
- },
- "title": {
- "type": "string"
- },
- "description": {
- "type": "string"
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveEnvironment": {
- "post": {
- "operationId": "application-saveEnvironment",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "buildArgs": {
- "type": "string",
- "nullable": true
- },
- "buildSecrets": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveBuildType": {
- "post": {
- "operationId": "application-saveBuildType",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "buildType": {
- "type": "string",
- "enum": [
- "dockerfile",
- "heroku_buildpacks",
- "paketo_buildpacks",
- "nixpacks",
- "static",
- "railpack"
- ]
- },
- "dockerfile": {
- "type": "string",
- "nullable": true
- },
- "dockerContextPath": {
- "type": "string",
- "nullable": true
- },
- "dockerBuildStage": {
- "type": "string",
- "nullable": true
- },
- "herokuVersion": {
- "type": "string",
- "nullable": true
- },
- "railpackVersion": {
- "type": "string",
- "nullable": true
- },
- "publishDirectory": {
- "type": "string",
- "nullable": true
- },
- "isStaticSpa": {
- "type": "boolean",
- "nullable": true
- }
- },
- "required": [
- "applicationId",
- "buildType",
- "dockerContextPath",
- "dockerBuildStage"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveGithubProvider": {
- "post": {
- "operationId": "application-saveGithubProvider",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "repository": {
- "type": "string",
- "nullable": true
- },
- "branch": {
- "type": "string",
- "nullable": true
- },
- "owner": {
- "type": "string",
- "nullable": true
- },
- "buildPath": {
- "type": "string",
- "nullable": true
- },
- "githubId": {
- "type": "string",
- "nullable": true
- },
- "watchPaths": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "enableSubmodules": {
- "type": "boolean"
- },
- "triggerType": {
- "type": "string",
- "enum": [
- "push",
- "tag"
- ],
- "default": "push"
- }
- },
- "required": [
- "applicationId",
- "owner",
- "githubId",
- "enableSubmodules"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveGitlabProvider": {
- "post": {
- "operationId": "application-saveGitlabProvider",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "gitlabBranch": {
- "type": "string",
- "nullable": true
- },
- "gitlabBuildPath": {
- "type": "string",
- "nullable": true
- },
- "gitlabOwner": {
- "type": "string",
- "nullable": true
- },
- "gitlabRepository": {
- "type": "string",
- "nullable": true
- },
- "gitlabId": {
- "type": "string",
- "nullable": true
- },
- "gitlabProjectId": {
- "type": "number",
- "nullable": true
- },
- "gitlabPathNamespace": {
- "type": "string",
- "nullable": true
- },
- "watchPaths": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "enableSubmodules": {
- "type": "boolean"
- }
- },
- "required": [
- "applicationId",
- "gitlabBranch",
- "gitlabBuildPath",
- "gitlabOwner",
- "gitlabRepository",
- "gitlabId",
- "gitlabProjectId",
- "gitlabPathNamespace",
- "enableSubmodules"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveBitbucketProvider": {
- "post": {
- "operationId": "application-saveBitbucketProvider",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "bitbucketBranch": {
- "type": "string",
- "nullable": true
- },
- "bitbucketBuildPath": {
- "type": "string",
- "nullable": true
- },
- "bitbucketOwner": {
- "type": "string",
- "nullable": true
- },
- "bitbucketRepository": {
- "type": "string",
- "nullable": true
- },
- "bitbucketId": {
- "type": "string",
- "nullable": true
- },
- "applicationId": {
- "type": "string"
- },
- "watchPaths": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "enableSubmodules": {
- "type": "boolean"
- }
- },
- "required": [
- "bitbucketBranch",
- "bitbucketBuildPath",
- "bitbucketOwner",
- "bitbucketRepository",
- "bitbucketId",
- "applicationId",
- "enableSubmodules"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveGiteaProvider": {
- "post": {
- "operationId": "application-saveGiteaProvider",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "giteaBranch": {
- "type": "string",
- "nullable": true
- },
- "giteaBuildPath": {
- "type": "string",
- "nullable": true
- },
- "giteaOwner": {
- "type": "string",
- "nullable": true
- },
- "giteaRepository": {
- "type": "string",
- "nullable": true
- },
- "giteaId": {
- "type": "string",
- "nullable": true
- },
- "watchPaths": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "enableSubmodules": {
- "type": "boolean"
- }
- },
- "required": [
- "applicationId",
- "giteaBranch",
- "giteaBuildPath",
- "giteaOwner",
- "giteaRepository",
- "giteaId",
- "enableSubmodules"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveDockerProvider": {
- "post": {
- "operationId": "application-saveDockerProvider",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "dockerImage": {
- "type": "string",
- "nullable": true
- },
- "applicationId": {
- "type": "string"
- },
- "username": {
- "type": "string",
- "nullable": true
- },
- "password": {
- "type": "string",
- "nullable": true
- },
- "registryUrl": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveGitProvider": {
- "post": {
- "operationId": "application-saveGitProvider",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "customGitBranch": {
- "type": "string",
- "nullable": true
- },
- "applicationId": {
- "type": "string"
- },
- "customGitBuildPath": {
- "type": "string",
- "nullable": true
- },
- "customGitUrl": {
- "type": "string",
- "nullable": true
- },
- "watchPaths": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "enableSubmodules": {
- "type": "boolean"
- },
- "customGitSSHKeyId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "applicationId",
- "enableSubmodules"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.disconnectGitProvider": {
- "post": {
- "operationId": "application-disconnectGitProvider",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.markRunning": {
- "post": {
- "operationId": "application-markRunning",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.update": {
- "post": {
- "operationId": "application-update",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "previewEnv": {
- "type": "string",
- "nullable": true
- },
- "watchPaths": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "previewBuildArgs": {
- "type": "string",
- "nullable": true
- },
- "previewBuildSecrets": {
- "type": "string",
- "nullable": true
- },
- "previewLabels": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "previewWildcard": {
- "type": "string",
- "nullable": true
- },
- "previewPort": {
- "type": "number",
- "nullable": true
- },
- "previewHttps": {
- "type": "boolean"
- },
- "previewPath": {
- "type": "string",
- "nullable": true
- },
- "previewCertificateType": {
- "type": "string",
- "enum": [
- "letsencrypt",
- "none",
- "custom"
- ]
- },
- "previewCustomCertResolver": {
- "type": "string",
- "nullable": true
- },
- "previewLimit": {
- "type": "number",
- "nullable": true
- },
- "isPreviewDeploymentsActive": {
- "type": "boolean",
- "nullable": true
- },
- "previewRequireCollaboratorPermissions": {
- "type": "boolean",
- "nullable": true
- },
- "rollbackActive": {
- "type": "boolean",
- "nullable": true
- },
- "buildArgs": {
- "type": "string",
- "nullable": true
- },
- "buildSecrets": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "string",
- "nullable": true
- },
- "memoryLimit": {
- "type": "string",
- "nullable": true
- },
- "cpuReservation": {
- "type": "string",
- "nullable": true
- },
- "cpuLimit": {
- "type": "string",
- "nullable": true
- },
- "title": {
- "type": "string",
- "nullable": true
- },
- "enabled": {
- "type": "boolean",
- "nullable": true
- },
- "subtitle": {
- "type": "string",
- "nullable": true
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "refreshToken": {
- "type": "string",
- "nullable": true
- },
- "sourceType": {
- "type": "string",
- "enum": [
- "github",
- "docker",
- "git",
- "gitlab",
- "bitbucket",
- "gitea",
- "drop"
- ]
- },
- "cleanCache": {
- "type": "boolean",
- "nullable": true
- },
- "repository": {
- "type": "string",
- "nullable": true
- },
- "owner": {
- "type": "string",
- "nullable": true
- },
- "branch": {
- "type": "string",
- "nullable": true
- },
- "buildPath": {
- "type": "string",
- "nullable": true
- },
- "triggerType": {
- "type": "string",
- "enum": [
- "push",
- "tag"
- ],
- "nullable": true
- },
- "autoDeploy": {
- "type": "boolean",
- "nullable": true
- },
- "gitlabProjectId": {
- "type": "number",
- "nullable": true
- },
- "gitlabRepository": {
- "type": "string",
- "nullable": true
- },
- "gitlabOwner": {
- "type": "string",
- "nullable": true
- },
- "gitlabBranch": {
- "type": "string",
- "nullable": true
- },
- "gitlabBuildPath": {
- "type": "string",
- "nullable": true
- },
- "gitlabPathNamespace": {
- "type": "string",
- "nullable": true
- },
- "giteaRepository": {
- "type": "string",
- "nullable": true
- },
- "giteaOwner": {
- "type": "string",
- "nullable": true
- },
- "giteaBranch": {
- "type": "string",
- "nullable": true
- },
- "giteaBuildPath": {
- "type": "string",
- "nullable": true
- },
- "bitbucketRepository": {
- "type": "string",
- "nullable": true
- },
- "bitbucketOwner": {
- "type": "string",
- "nullable": true
- },
- "bitbucketBranch": {
- "type": "string",
- "nullable": true
- },
- "bitbucketBuildPath": {
- "type": "string",
- "nullable": true
- },
- "username": {
- "type": "string",
- "nullable": true
- },
- "password": {
- "type": "string",
- "nullable": true
- },
- "dockerImage": {
- "type": "string",
- "nullable": true
- },
- "registryUrl": {
- "type": "string",
- "nullable": true
- },
- "customGitUrl": {
- "type": "string",
- "nullable": true
- },
- "customGitBranch": {
- "type": "string",
- "nullable": true
- },
- "customGitBuildPath": {
- "type": "string",
- "nullable": true
- },
- "customGitSSHKeyId": {
- "type": "string",
- "nullable": true
- },
- "enableSubmodules": {
- "type": "boolean"
- },
- "dockerfile": {
- "type": "string",
- "nullable": true
- },
- "dockerContextPath": {
- "type": "string",
- "nullable": true
- },
- "dockerBuildStage": {
- "type": "string",
- "nullable": true
- },
- "dropBuildPath": {
- "type": "string",
- "nullable": true
- },
- "healthCheckSwarm": {
- "type": "object",
- "properties": {
- "Test": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Interval": {
- "type": "number"
- },
- "Timeout": {
- "type": "number"
- },
- "StartPeriod": {
- "type": "number"
- },
- "Retries": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "restartPolicySwarm": {
- "type": "object",
- "properties": {
- "Condition": {
- "type": "string"
- },
- "Delay": {
- "type": "number"
- },
- "MaxAttempts": {
- "type": "number"
- },
- "Window": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "placementSwarm": {
- "type": "object",
- "properties": {
- "Constraints": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Preferences": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Spread": {
- "type": "object",
- "properties": {
- "SpreadDescriptor": {
- "type": "string"
- }
- },
- "required": [
- "SpreadDescriptor"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "Spread"
- ],
- "additionalProperties": false
- }
- },
- "MaxReplicas": {
- "type": "number"
- },
- "Platforms": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Architecture": {
- "type": "string"
- },
- "OS": {
- "type": "string"
- }
- },
- "required": [
- "Architecture",
- "OS"
- ],
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "updateConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "rollbackConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "modeSwarm": {
- "type": "object",
- "properties": {
- "Replicated": {
- "type": "object",
- "properties": {
- "Replicas": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "Global": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- },
- "ReplicatedJob": {
- "type": "object",
- "properties": {
- "MaxConcurrent": {
- "type": "number"
- },
- "TotalCompletions": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "GlobalJob": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "labelsSwarm": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "nullable": true
- },
- "networkSwarm": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Target": {
- "type": "string"
- },
- "Aliases": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "DriverOpts": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false
- },
- "nullable": true
- },
- "stopGracePeriodSwarm": {
- "type": "integer",
- "nullable": true
- },
- "endpointSpecSwarm": {
- "type": "object",
- "properties": {
- "Mode": {
- "type": "string"
- },
- "Ports": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Protocol": {
- "type": "string"
- },
- "TargetPort": {
- "type": "number"
- },
- "PublishedPort": {
- "type": "number"
- },
- "PublishMode": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "replicas": {
- "type": "number"
- },
- "applicationStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- },
- "buildType": {
- "type": "string",
- "enum": [
- "dockerfile",
- "heroku_buildpacks",
- "paketo_buildpacks",
- "nixpacks",
- "static",
- "railpack"
- ]
- },
- "railpackVersion": {
- "type": "string",
- "nullable": true
- },
- "herokuVersion": {
- "type": "string",
- "nullable": true
- },
- "publishDirectory": {
- "type": "string",
- "nullable": true
- },
- "isStaticSpa": {
- "type": "boolean",
- "nullable": true
- },
- "createdAt": {
- "type": "string"
- },
- "registryId": {
- "type": "string",
- "nullable": true
- },
- "environmentId": {
- "type": "string"
- },
- "githubId": {
- "type": "string",
- "nullable": true
- },
- "gitlabId": {
- "type": "string",
- "nullable": true
- },
- "giteaId": {
- "type": "string",
- "nullable": true
- },
- "bitbucketId": {
- "type": "string",
- "nullable": true
- },
- "buildServerId": {
- "type": "string",
- "nullable": true
- },
- "buildRegistryId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.refreshToken": {
- "post": {
- "operationId": "application-refreshToken",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.deploy": {
- "post": {
- "operationId": "application-deploy",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string",
- "minLength": 1
- },
- "title": {
- "type": "string"
- },
- "description": {
- "type": "string"
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.cleanQueues": {
- "post": {
- "operationId": "application-cleanQueues",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.killBuild": {
- "post": {
- "operationId": "application-killBuild",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.readTraefikConfig": {
- "get": {
- "operationId": "application-readTraefikConfig",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "applicationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.updateTraefikConfig": {
- "post": {
- "operationId": "application-updateTraefikConfig",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "traefikConfig": {
- "type": "string"
- }
- },
- "required": [
- "applicationId",
- "traefikConfig"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.readAppMonitoring": {
- "get": {
- "operationId": "application-readAppMonitoring",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "appName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.move": {
- "post": {
- "operationId": "application-move",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "targetEnvironmentId": {
- "type": "string"
- }
- },
- "required": [
- "applicationId",
- "targetEnvironmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.cancelDeployment": {
- "post": {
- "operationId": "application-cancelDeployment",
- "tags": [
- "application"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.create": {
- "post": {
- "operationId": "mysql-create",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "dockerImage": {
- "type": "string",
- "default": "mysql:8"
- },
- "environmentId": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "databaseRootPassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "serverId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "name",
- "appName",
- "environmentId",
- "databaseName",
- "databaseUser",
- "databasePassword",
- "databaseRootPassword"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.one": {
- "get": {
- "operationId": "mysql-one",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "mysqlId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.start": {
- "post": {
- "operationId": "mysql-start",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- }
- },
- "required": [
- "mysqlId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.stop": {
- "post": {
- "operationId": "mysql-stop",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- }
- },
- "required": [
- "mysqlId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.saveExternalPort": {
- "post": {
- "operationId": "mysql-saveExternalPort",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- }
- },
- "required": [
- "mysqlId",
- "externalPort"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.deploy": {
- "post": {
- "operationId": "mysql-deploy",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- }
- },
- "required": [
- "mysqlId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.changeStatus": {
- "post": {
- "operationId": "mysql-changeStatus",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- }
- },
- "required": [
- "mysqlId",
- "applicationStatus"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.reload": {
- "post": {
- "operationId": "mysql-reload",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- },
- "appName": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "mysqlId",
- "appName"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.remove": {
- "post": {
- "operationId": "mysql-remove",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- }
- },
- "required": [
- "mysqlId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.saveEnvironment": {
- "post": {
- "operationId": "mysql-saveEnvironment",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "mysqlId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.update": {
- "post": {
- "operationId": "mysql-update",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "databaseRootPassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "dockerImage": {
- "type": "string",
- "default": "mysql:8"
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "string",
- "nullable": true
- },
- "memoryLimit": {
- "type": "string",
- "nullable": true
- },
- "cpuReservation": {
- "type": "string",
- "nullable": true
- },
- "cpuLimit": {
- "type": "string",
- "nullable": true
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- },
- "applicationStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- },
- "healthCheckSwarm": {
- "type": "object",
- "properties": {
- "Test": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Interval": {
- "type": "number"
- },
- "Timeout": {
- "type": "number"
- },
- "StartPeriod": {
- "type": "number"
- },
- "Retries": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "restartPolicySwarm": {
- "type": "object",
- "properties": {
- "Condition": {
- "type": "string"
- },
- "Delay": {
- "type": "number"
- },
- "MaxAttempts": {
- "type": "number"
- },
- "Window": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "placementSwarm": {
- "type": "object",
- "properties": {
- "Constraints": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Preferences": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Spread": {
- "type": "object",
- "properties": {
- "SpreadDescriptor": {
- "type": "string"
- }
- },
- "required": [
- "SpreadDescriptor"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "Spread"
- ],
- "additionalProperties": false
- }
- },
- "MaxReplicas": {
- "type": "number"
- },
- "Platforms": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Architecture": {
- "type": "string"
- },
- "OS": {
- "type": "string"
- }
- },
- "required": [
- "Architecture",
- "OS"
- ],
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "updateConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "rollbackConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "modeSwarm": {
- "type": "object",
- "properties": {
- "Replicated": {
- "type": "object",
- "properties": {
- "Replicas": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "Global": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- },
- "ReplicatedJob": {
- "type": "object",
- "properties": {
- "MaxConcurrent": {
- "type": "number"
- },
- "TotalCompletions": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "GlobalJob": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "labelsSwarm": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "nullable": true
- },
- "networkSwarm": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Target": {
- "type": "string"
- },
- "Aliases": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "DriverOpts": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false
- },
- "nullable": true
- },
- "stopGracePeriodSwarm": {
- "type": "integer",
- "nullable": true
- },
- "endpointSpecSwarm": {
- "type": "object",
- "properties": {
- "Mode": {
- "type": "string"
- },
- "Ports": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Protocol": {
- "type": "string"
- },
- "TargetPort": {
- "type": "number"
- },
- "PublishedPort": {
- "type": "number"
- },
- "PublishMode": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "replicas": {
- "type": "number"
- },
- "createdAt": {
- "type": "string"
- },
- "environmentId": {
- "type": "string"
- }
- },
- "required": [
- "mysqlId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.move": {
- "post": {
- "operationId": "mysql-move",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- },
- "targetEnvironmentId": {
- "type": "string"
- }
- },
- "required": [
- "mysqlId",
- "targetEnvironmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.rebuild": {
- "post": {
- "operationId": "mysql-rebuild",
- "tags": [
- "mysql"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- }
- },
- "required": [
- "mysqlId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.create": {
- "post": {
- "operationId": "postgres-create",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string"
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "dockerImage": {
- "type": "string",
- "default": "postgres:15"
- },
- "environmentId": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "name",
- "appName",
- "databaseName",
- "databaseUser",
- "databasePassword",
- "environmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.one": {
- "get": {
- "operationId": "postgres-one",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "postgresId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.start": {
- "post": {
- "operationId": "postgres-start",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- }
- },
- "required": [
- "postgresId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.stop": {
- "post": {
- "operationId": "postgres-stop",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- }
- },
- "required": [
- "postgresId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.saveExternalPort": {
- "post": {
- "operationId": "postgres-saveExternalPort",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- }
- },
- "required": [
- "postgresId",
- "externalPort"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.deploy": {
- "post": {
- "operationId": "postgres-deploy",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- }
- },
- "required": [
- "postgresId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.changeStatus": {
- "post": {
- "operationId": "postgres-changeStatus",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- }
- },
- "required": [
- "postgresId",
- "applicationStatus"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.remove": {
- "post": {
- "operationId": "postgres-remove",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- }
- },
- "required": [
- "postgresId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.saveEnvironment": {
- "post": {
- "operationId": "postgres-saveEnvironment",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "postgresId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.reload": {
- "post": {
- "operationId": "postgres-reload",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- },
- "appName": {
- "type": "string"
- }
- },
- "required": [
- "postgresId",
- "appName"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.update": {
- "post": {
- "operationId": "postgres-update",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string"
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "dockerImage": {
- "type": "string",
- "default": "postgres:15"
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "string",
- "nullable": true
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- },
- "memoryLimit": {
- "type": "string",
- "nullable": true
- },
- "cpuReservation": {
- "type": "string",
- "nullable": true
- },
- "cpuLimit": {
- "type": "string",
- "nullable": true
- },
- "applicationStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- },
- "healthCheckSwarm": {
- "type": "object",
- "properties": {
- "Test": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Interval": {
- "type": "number"
- },
- "Timeout": {
- "type": "number"
- },
- "StartPeriod": {
- "type": "number"
- },
- "Retries": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "restartPolicySwarm": {
- "type": "object",
- "properties": {
- "Condition": {
- "type": "string"
- },
- "Delay": {
- "type": "number"
- },
- "MaxAttempts": {
- "type": "number"
- },
- "Window": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "placementSwarm": {
- "type": "object",
- "properties": {
- "Constraints": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Preferences": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Spread": {
- "type": "object",
- "properties": {
- "SpreadDescriptor": {
- "type": "string"
- }
- },
- "required": [
- "SpreadDescriptor"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "Spread"
- ],
- "additionalProperties": false
- }
- },
- "MaxReplicas": {
- "type": "number"
- },
- "Platforms": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Architecture": {
- "type": "string"
- },
- "OS": {
- "type": "string"
- }
- },
- "required": [
- "Architecture",
- "OS"
- ],
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "updateConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "rollbackConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "modeSwarm": {
- "type": "object",
- "properties": {
- "Replicated": {
- "type": "object",
- "properties": {
- "Replicas": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "Global": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- },
- "ReplicatedJob": {
- "type": "object",
- "properties": {
- "MaxConcurrent": {
- "type": "number"
- },
- "TotalCompletions": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "GlobalJob": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "labelsSwarm": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "nullable": true
- },
- "networkSwarm": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Target": {
- "type": "string"
- },
- "Aliases": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "DriverOpts": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false
- },
- "nullable": true
- },
- "stopGracePeriodSwarm": {
- "type": "integer",
- "nullable": true
- },
- "endpointSpecSwarm": {
- "type": "object",
- "properties": {
- "Mode": {
- "type": "string"
- },
- "Ports": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Protocol": {
- "type": "string"
- },
- "TargetPort": {
- "type": "number"
- },
- "PublishedPort": {
- "type": "number"
- },
- "PublishMode": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "replicas": {
- "type": "number"
- },
- "createdAt": {
- "type": "string"
- },
- "environmentId": {
- "type": "string"
- }
- },
- "required": [
- "postgresId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.move": {
- "post": {
- "operationId": "postgres-move",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- },
- "targetEnvironmentId": {
- "type": "string"
- }
- },
- "required": [
- "postgresId",
- "targetEnvironmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.rebuild": {
- "post": {
- "operationId": "postgres-rebuild",
- "tags": [
- "postgres"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- }
- },
- "required": [
- "postgresId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.create": {
- "post": {
- "operationId": "redis-create",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string"
- },
- "dockerImage": {
- "type": "string",
- "default": "redis:8"
- },
- "environmentId": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "name",
- "appName",
- "databasePassword",
- "environmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.one": {
- "get": {
- "operationId": "redis-one",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "redisId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.start": {
- "post": {
- "operationId": "redis-start",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- }
- },
- "required": [
- "redisId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.reload": {
- "post": {
- "operationId": "redis-reload",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- },
- "appName": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "redisId",
- "appName"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.stop": {
- "post": {
- "operationId": "redis-stop",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- }
- },
- "required": [
- "redisId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.saveExternalPort": {
- "post": {
- "operationId": "redis-saveExternalPort",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- }
- },
- "required": [
- "redisId",
- "externalPort"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.deploy": {
- "post": {
- "operationId": "redis-deploy",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- }
- },
- "required": [
- "redisId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.changeStatus": {
- "post": {
- "operationId": "redis-changeStatus",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- }
- },
- "required": [
- "redisId",
- "applicationStatus"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.remove": {
- "post": {
- "operationId": "redis-remove",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- }
- },
- "required": [
- "redisId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.saveEnvironment": {
- "post": {
- "operationId": "redis-saveEnvironment",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "redisId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.update": {
- "post": {
- "operationId": "redis-update",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databasePassword": {
- "type": "string"
- },
- "dockerImage": {
- "type": "string",
- "default": "redis:8"
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "string",
- "nullable": true
- },
- "memoryLimit": {
- "type": "string",
- "nullable": true
- },
- "cpuReservation": {
- "type": "string",
- "nullable": true
- },
- "cpuLimit": {
- "type": "string",
- "nullable": true
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- },
- "createdAt": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- },
- "healthCheckSwarm": {
- "type": "object",
- "properties": {
- "Test": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Interval": {
- "type": "number"
- },
- "Timeout": {
- "type": "number"
- },
- "StartPeriod": {
- "type": "number"
- },
- "Retries": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "restartPolicySwarm": {
- "type": "object",
- "properties": {
- "Condition": {
- "type": "string"
- },
- "Delay": {
- "type": "number"
- },
- "MaxAttempts": {
- "type": "number"
- },
- "Window": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "placementSwarm": {
- "type": "object",
- "properties": {
- "Constraints": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Preferences": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Spread": {
- "type": "object",
- "properties": {
- "SpreadDescriptor": {
- "type": "string"
- }
- },
- "required": [
- "SpreadDescriptor"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "Spread"
- ],
- "additionalProperties": false
- }
- },
- "MaxReplicas": {
- "type": "number"
- },
- "Platforms": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Architecture": {
- "type": "string"
- },
- "OS": {
- "type": "string"
- }
- },
- "required": [
- "Architecture",
- "OS"
- ],
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "updateConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "rollbackConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "modeSwarm": {
- "type": "object",
- "properties": {
- "Replicated": {
- "type": "object",
- "properties": {
- "Replicas": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "Global": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- },
- "ReplicatedJob": {
- "type": "object",
- "properties": {
- "MaxConcurrent": {
- "type": "number"
- },
- "TotalCompletions": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "GlobalJob": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "labelsSwarm": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "nullable": true
- },
- "networkSwarm": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Target": {
- "type": "string"
- },
- "Aliases": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "DriverOpts": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false
- },
- "nullable": true
- },
- "stopGracePeriodSwarm": {
- "type": "integer",
- "nullable": true
- },
- "endpointSpecSwarm": {
- "type": "object",
- "properties": {
- "Mode": {
- "type": "string"
- },
- "Ports": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Protocol": {
- "type": "string"
- },
- "TargetPort": {
- "type": "number"
- },
- "PublishedPort": {
- "type": "number"
- },
- "PublishMode": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "replicas": {
- "type": "number"
- },
- "environmentId": {
- "type": "string"
- }
- },
- "required": [
- "redisId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.move": {
- "post": {
- "operationId": "redis-move",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- },
- "targetEnvironmentId": {
- "type": "string"
- }
- },
- "required": [
- "redisId",
- "targetEnvironmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.rebuild": {
- "post": {
- "operationId": "redis-rebuild",
- "tags": [
- "redis"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- }
- },
- "required": [
- "redisId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.create": {
- "post": {
- "operationId": "mongo-create",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "dockerImage": {
- "type": "string",
- "default": "mongo:15"
- },
- "environmentId": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "serverId": {
- "type": "string",
- "nullable": true
- },
- "replicaSets": {
- "type": "boolean",
- "default": false,
- "nullable": true
- }
- },
- "required": [
- "name",
- "appName",
- "environmentId",
- "databaseUser",
- "databasePassword"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.one": {
- "get": {
- "operationId": "mongo-one",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "mongoId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.start": {
- "post": {
- "operationId": "mongo-start",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- }
- },
- "required": [
- "mongoId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.stop": {
- "post": {
- "operationId": "mongo-stop",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- }
- },
- "required": [
- "mongoId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.saveExternalPort": {
- "post": {
- "operationId": "mongo-saveExternalPort",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- }
- },
- "required": [
- "mongoId",
- "externalPort"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.deploy": {
- "post": {
- "operationId": "mongo-deploy",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- }
- },
- "required": [
- "mongoId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.changeStatus": {
- "post": {
- "operationId": "mongo-changeStatus",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- }
- },
- "required": [
- "mongoId",
- "applicationStatus"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.reload": {
- "post": {
- "operationId": "mongo-reload",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- },
- "appName": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "mongoId",
- "appName"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.remove": {
- "post": {
- "operationId": "mongo-remove",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- }
- },
- "required": [
- "mongoId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.saveEnvironment": {
- "post": {
- "operationId": "mongo-saveEnvironment",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "mongoId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.update": {
- "post": {
- "operationId": "mongo-update",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "dockerImage": {
- "type": "string",
- "default": "mongo:15"
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "string",
- "nullable": true
- },
- "memoryLimit": {
- "type": "string",
- "nullable": true
- },
- "cpuReservation": {
- "type": "string",
- "nullable": true
- },
- "cpuLimit": {
- "type": "string",
- "nullable": true
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- },
- "applicationStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- },
- "healthCheckSwarm": {
- "type": "object",
- "properties": {
- "Test": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Interval": {
- "type": "number"
- },
- "Timeout": {
- "type": "number"
- },
- "StartPeriod": {
- "type": "number"
- },
- "Retries": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "restartPolicySwarm": {
- "type": "object",
- "properties": {
- "Condition": {
- "type": "string"
- },
- "Delay": {
- "type": "number"
- },
- "MaxAttempts": {
- "type": "number"
- },
- "Window": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "placementSwarm": {
- "type": "object",
- "properties": {
- "Constraints": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Preferences": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Spread": {
- "type": "object",
- "properties": {
- "SpreadDescriptor": {
- "type": "string"
- }
- },
- "required": [
- "SpreadDescriptor"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "Spread"
- ],
- "additionalProperties": false
- }
- },
- "MaxReplicas": {
- "type": "number"
- },
- "Platforms": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Architecture": {
- "type": "string"
- },
- "OS": {
- "type": "string"
- }
- },
- "required": [
- "Architecture",
- "OS"
- ],
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "updateConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "rollbackConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "modeSwarm": {
- "type": "object",
- "properties": {
- "Replicated": {
- "type": "object",
- "properties": {
- "Replicas": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "Global": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- },
- "ReplicatedJob": {
- "type": "object",
- "properties": {
- "MaxConcurrent": {
- "type": "number"
- },
- "TotalCompletions": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "GlobalJob": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "labelsSwarm": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "nullable": true
- },
- "networkSwarm": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Target": {
- "type": "string"
- },
- "Aliases": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "DriverOpts": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false
- },
- "nullable": true
- },
- "stopGracePeriodSwarm": {
- "type": "integer",
- "nullable": true
- },
- "endpointSpecSwarm": {
- "type": "object",
- "properties": {
- "Mode": {
- "type": "string"
- },
- "Ports": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Protocol": {
- "type": "string"
- },
- "TargetPort": {
- "type": "number"
- },
- "PublishedPort": {
- "type": "number"
- },
- "PublishMode": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "replicas": {
- "type": "number"
- },
- "createdAt": {
- "type": "string"
- },
- "environmentId": {
- "type": "string"
- },
- "replicaSets": {
- "type": "boolean",
- "default": false,
- "nullable": true
- }
- },
- "required": [
- "mongoId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.move": {
- "post": {
- "operationId": "mongo-move",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- },
- "targetEnvironmentId": {
- "type": "string"
- }
- },
- "required": [
- "mongoId",
- "targetEnvironmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.rebuild": {
- "post": {
- "operationId": "mongo-rebuild",
- "tags": [
- "mongo"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- }
- },
- "required": [
- "mongoId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.create": {
- "post": {
- "operationId": "mariadb-create",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "dockerImage": {
- "type": "string",
- "default": "mariadb:6"
- },
- "databaseRootPassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "environmentId": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "serverId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "name",
- "appName",
- "databaseRootPassword",
- "environmentId",
- "databaseName",
- "databaseUser",
- "databasePassword"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.one": {
- "get": {
- "operationId": "mariadb-one",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "mariadbId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.start": {
- "post": {
- "operationId": "mariadb-start",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- }
- },
- "required": [
- "mariadbId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.stop": {
- "post": {
- "operationId": "mariadb-stop",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- }
- },
- "required": [
- "mariadbId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.saveExternalPort": {
- "post": {
- "operationId": "mariadb-saveExternalPort",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- }
- },
- "required": [
- "mariadbId",
- "externalPort"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.deploy": {
- "post": {
- "operationId": "mariadb-deploy",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- }
- },
- "required": [
- "mariadbId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.changeStatus": {
- "post": {
- "operationId": "mariadb-changeStatus",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- }
- },
- "required": [
- "mariadbId",
- "applicationStatus"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.remove": {
- "post": {
- "operationId": "mariadb-remove",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- }
- },
- "required": [
- "mariadbId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.saveEnvironment": {
- "post": {
- "operationId": "mariadb-saveEnvironment",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "mariadbId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.reload": {
- "post": {
- "operationId": "mariadb-reload",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- },
- "appName": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "mariadbId",
- "appName"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.update": {
- "post": {
- "operationId": "mariadb-update",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "databaseRootPassword": {
- "type": "string",
- "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
- },
- "dockerImage": {
- "type": "string",
- "default": "mariadb:6"
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "string",
- "nullable": true
- },
- "memoryLimit": {
- "type": "string",
- "nullable": true
- },
- "cpuReservation": {
- "type": "string",
- "nullable": true
- },
- "cpuLimit": {
- "type": "string",
- "nullable": true
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- },
- "applicationStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- },
- "healthCheckSwarm": {
- "type": "object",
- "properties": {
- "Test": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Interval": {
- "type": "number"
- },
- "Timeout": {
- "type": "number"
- },
- "StartPeriod": {
- "type": "number"
- },
- "Retries": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "restartPolicySwarm": {
- "type": "object",
- "properties": {
- "Condition": {
- "type": "string"
- },
- "Delay": {
- "type": "number"
- },
- "MaxAttempts": {
- "type": "number"
- },
- "Window": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "placementSwarm": {
- "type": "object",
- "properties": {
- "Constraints": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Preferences": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Spread": {
- "type": "object",
- "properties": {
- "SpreadDescriptor": {
- "type": "string"
- }
- },
- "required": [
- "SpreadDescriptor"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "Spread"
- ],
- "additionalProperties": false
- }
- },
- "MaxReplicas": {
- "type": "number"
- },
- "Platforms": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Architecture": {
- "type": "string"
- },
- "OS": {
- "type": "string"
- }
- },
- "required": [
- "Architecture",
- "OS"
- ],
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "updateConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "rollbackConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": [
- "Parallelism",
- "Order"
- ],
- "additionalProperties": false,
- "nullable": true
- },
- "modeSwarm": {
- "type": "object",
- "properties": {
- "Replicated": {
- "type": "object",
- "properties": {
- "Replicas": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "Global": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- },
- "ReplicatedJob": {
- "type": "object",
- "properties": {
- "MaxConcurrent": {
- "type": "number"
- },
- "TotalCompletions": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "GlobalJob": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "labelsSwarm": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "nullable": true
- },
- "networkSwarm": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Target": {
- "type": "string"
- },
- "Aliases": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "DriverOpts": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false
- },
- "nullable": true
- },
- "stopGracePeriodSwarm": {
- "type": "integer",
- "nullable": true
- },
- "endpointSpecSwarm": {
- "type": "object",
- "properties": {
- "Mode": {
- "type": "string"
- },
- "Ports": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Protocol": {
- "type": "string"
- },
- "TargetPort": {
- "type": "number"
- },
- "PublishedPort": {
- "type": "number"
- },
- "PublishMode": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "replicas": {
- "type": "number"
- },
- "createdAt": {
- "type": "string"
- },
- "environmentId": {
- "type": "string"
- }
- },
- "required": [
- "mariadbId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.move": {
- "post": {
- "operationId": "mariadb-move",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- },
- "targetEnvironmentId": {
- "type": "string"
- }
- },
- "required": [
- "mariadbId",
- "targetEnvironmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.rebuild": {
- "post": {
- "operationId": "mariadb-rebuild",
- "tags": [
- "mariadb"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- }
- },
- "required": [
- "mariadbId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.create": {
- "post": {
- "operationId": "compose-create",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "environmentId": {
- "type": "string"
- },
- "composeType": {
- "type": "string",
- "enum": [
- "docker-compose",
- "stack"
- ]
- },
- "appName": {
- "type": "string"
- },
- "serverId": {
- "type": "string",
- "nullable": true
- },
- "composeFile": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "environmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.one": {
- "get": {
- "operationId": "compose-one",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.update": {
- "post": {
- "operationId": "compose-update",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string"
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "composeFile": {
- "type": "string"
- },
- "refreshToken": {
- "type": "string",
- "nullable": true
- },
- "sourceType": {
- "type": "string",
- "enum": [
- "git",
- "github",
- "gitlab",
- "bitbucket",
- "gitea",
- "raw"
- ]
- },
- "composeType": {
- "type": "string",
- "enum": [
- "docker-compose",
- "stack"
- ]
- },
- "repository": {
- "type": "string",
- "nullable": true
- },
- "owner": {
- "type": "string",
- "nullable": true
- },
- "branch": {
- "type": "string",
- "nullable": true
- },
- "autoDeploy": {
- "type": "boolean",
- "nullable": true
- },
- "gitlabProjectId": {
- "type": "number",
- "nullable": true
- },
- "gitlabRepository": {
- "type": "string",
- "nullable": true
- },
- "gitlabOwner": {
- "type": "string",
- "nullable": true
- },
- "gitlabBranch": {
- "type": "string",
- "nullable": true
- },
- "gitlabPathNamespace": {
- "type": "string",
- "nullable": true
- },
- "bitbucketRepository": {
- "type": "string",
- "nullable": true
- },
- "bitbucketOwner": {
- "type": "string",
- "nullable": true
- },
- "bitbucketBranch": {
- "type": "string",
- "nullable": true
- },
- "giteaRepository": {
- "type": "string",
- "nullable": true
- },
- "giteaOwner": {
- "type": "string",
- "nullable": true
- },
- "giteaBranch": {
- "type": "string",
- "nullable": true
- },
- "customGitUrl": {
- "type": "string",
- "nullable": true
- },
- "customGitBranch": {
- "type": "string",
- "nullable": true
- },
- "customGitSSHKeyId": {
- "type": "string",
- "nullable": true
- },
- "command": {
- "type": "string"
- },
- "enableSubmodules": {
- "type": "boolean"
- },
- "composePath": {
- "type": "string",
- "minLength": 1
- },
- "suffix": {
- "type": "string"
- },
- "randomize": {
- "type": "boolean"
- },
- "isolatedDeployment": {
- "type": "boolean"
- },
- "isolatedDeploymentsVolume": {
- "type": "boolean"
- },
- "triggerType": {
- "type": "string",
- "enum": [
- "push",
- "tag"
- ],
- "nullable": true
- },
- "composeStatus": {
- "type": "string",
- "enum": [
- "idle",
- "running",
- "done",
- "error"
- ]
- },
- "environmentId": {
- "type": "string"
- },
- "createdAt": {
- "type": "string"
- },
- "watchPaths": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "nullable": true
- },
- "githubId": {
- "type": "string",
- "nullable": true
- },
- "gitlabId": {
- "type": "string",
- "nullable": true
- },
- "bitbucketId": {
- "type": "string",
- "nullable": true
- },
- "giteaId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.delete": {
- "post": {
- "operationId": "compose-delete",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- },
- "deleteVolumes": {
- "type": "boolean"
- }
- },
- "required": [
- "composeId",
- "deleteVolumes"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.cleanQueues": {
- "post": {
- "operationId": "compose-cleanQueues",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.killBuild": {
- "post": {
- "operationId": "compose-killBuild",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.loadServices": {
- "get": {
- "operationId": "compose-loadServices",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "type",
- "in": "query",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "not": {}
- },
- {
- "type": "string",
- "enum": [
- "fetch",
- "cache"
- ]
- }
- ],
- "default": "cache"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.loadMountsByService": {
- "get": {
- "operationId": "compose-loadMountsByService",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "serviceName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.fetchSourceType": {
- "post": {
- "operationId": "compose-fetchSourceType",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.randomizeCompose": {
- "post": {
- "operationId": "compose-randomizeCompose",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- },
- "suffix": {
- "type": "string"
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.isolatedDeployment": {
- "post": {
- "operationId": "compose-isolatedDeployment",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- },
- "suffix": {
- "type": "string"
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.getConvertedCompose": {
- "get": {
- "operationId": "compose-getConvertedCompose",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.deploy": {
- "post": {
- "operationId": "compose-deploy",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- },
- "title": {
- "type": "string"
- },
- "description": {
- "type": "string"
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.redeploy": {
- "post": {
- "operationId": "compose-redeploy",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- },
- "title": {
- "type": "string"
- },
- "description": {
- "type": "string"
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.stop": {
- "post": {
- "operationId": "compose-stop",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.start": {
- "post": {
- "operationId": "compose-start",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.getDefaultCommand": {
- "get": {
- "operationId": "compose-getDefaultCommand",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.refreshToken": {
- "post": {
- "operationId": "compose-refreshToken",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.deployTemplate": {
- "post": {
- "operationId": "compose-deployTemplate",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "environmentId": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- },
- "id": {
- "type": "string"
- },
- "baseUrl": {
- "type": "string"
- }
- },
- "required": [
- "environmentId",
- "id"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.templates": {
- "get": {
- "operationId": "compose-templates",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "baseUrl",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.getTags": {
- "get": {
- "operationId": "compose-getTags",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "baseUrl",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.disconnectGitProvider": {
- "post": {
- "operationId": "compose-disconnectGitProvider",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.move": {
- "post": {
- "operationId": "compose-move",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string"
- },
- "targetEnvironmentId": {
- "type": "string"
- }
- },
- "required": [
- "composeId",
- "targetEnvironmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.processTemplate": {
- "post": {
- "operationId": "compose-processTemplate",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "base64": {
- "type": "string"
- },
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "base64",
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.import": {
- "post": {
- "operationId": "compose-import",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "base64": {
- "type": "string"
- },
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "base64",
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.cancelDeployment": {
- "post": {
- "operationId": "compose-cancelDeployment",
- "tags": [
- "compose"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "composeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.all": {
- "get": {
- "operationId": "user-all",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.one": {
- "get": {
- "operationId": "user-one",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "userId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.get": {
- "get": {
- "operationId": "user-get",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.haveRootAccess": {
- "get": {
- "operationId": "user-haveRootAccess",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.getBackups": {
- "get": {
- "operationId": "user-getBackups",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.getServerMetrics": {
- "get": {
- "operationId": "user-getServerMetrics",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.update": {
- "post": {
- "operationId": "user-update",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string"
- },
- "isRegistered": {
- "type": "boolean"
- },
- "expirationDate": {
- "type": "string"
- },
- "createdAt2": {
- "type": "string"
- },
- "createdAt": {
- "type": "string",
- "format": "date-time",
- "nullable": true
- },
- "twoFactorEnabled": {
- "type": "boolean",
- "nullable": true
- },
- "email": {
- "type": "string",
- "format": "email",
- "minLength": 1
- },
- "emailVerified": {
- "type": "boolean"
- },
- "image": {
- "type": "string",
- "nullable": true
- },
- "banned": {
- "type": "boolean",
- "nullable": true
- },
- "banReason": {
- "type": "string",
- "nullable": true
- },
- "banExpires": {
- "type": "string",
- "format": "date-time",
- "nullable": true
- },
- "updatedAt": {
- "type": "string",
- "format": "date-time"
- },
- "serverIp": {
- "type": "string",
- "nullable": true
- },
- "certificateType": {
- "type": "string",
- "enum": [
- "letsencrypt",
- "none",
- "custom"
- ]
- },
- "https": {
- "type": "boolean"
- },
- "host": {
- "type": "string",
- "nullable": true
- },
- "letsEncryptEmail": {
- "type": "string",
- "nullable": true
- },
- "sshPrivateKey": {
- "type": "string",
- "nullable": true
- },
- "enableDockerCleanup": {
- "type": "boolean"
- },
- "logCleanupCron": {
- "type": "string",
- "nullable": true
- },
- "enablePaidFeatures": {
- "type": "boolean"
- },
- "allowImpersonation": {
- "type": "boolean"
- },
- "metricsConfig": {
- "type": "object",
- "properties": {
- "server": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "enum": [
- "Dokploy",
- "Remote"
- ]
- },
- "refreshRate": {
- "type": "number"
- },
- "port": {
- "type": "number"
- },
- "token": {
- "type": "string"
- },
- "urlCallback": {
- "type": "string"
- },
- "retentionDays": {
- "type": "number"
- },
- "cronJob": {
- "type": "string"
- },
- "thresholds": {
- "type": "object",
- "properties": {
- "cpu": {
- "type": "number"
- },
- "memory": {
- "type": "number"
- }
- },
- "required": [
- "cpu",
- "memory"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "type",
- "refreshRate",
- "port",
- "token",
- "urlCallback",
- "retentionDays",
- "cronJob",
- "thresholds"
- ],
- "additionalProperties": false
- },
- "containers": {
- "type": "object",
- "properties": {
- "refreshRate": {
- "type": "number"
- },
- "services": {
- "type": "object",
- "properties": {
- "include": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "exclude": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- },
- "required": [
- "include",
- "exclude"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "refreshRate",
- "services"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "server",
- "containers"
- ],
- "additionalProperties": false
- },
- "cleanupCacheApplications": {
- "type": "boolean"
- },
- "cleanupCacheOnPreviews": {
- "type": "boolean"
- },
- "cleanupCacheOnCompose": {
- "type": "boolean"
- },
- "stripeCustomerId": {
- "type": "string",
- "nullable": true
- },
- "stripeSubscriptionId": {
- "type": "string",
- "nullable": true
- },
- "serversQuantity": {
- "type": "number"
- },
- "password": {
- "type": "string"
- },
- "currentPassword": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.getUserByToken": {
- "get": {
- "operationId": "user-getUserByToken",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "token",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.getMetricsToken": {
- "get": {
- "operationId": "user-getMetricsToken",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.remove": {
- "post": {
- "operationId": "user-remove",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "userId": {
- "type": "string"
- }
- },
- "required": [
- "userId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.assignPermissions": {
- "post": {
- "operationId": "user-assignPermissions",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string",
- "minLength": 1
- },
- "accessedProjects": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "accessedEnvironments": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "accessedServices": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "canCreateProjects": {
- "type": "boolean"
- },
- "canCreateServices": {
- "type": "boolean"
- },
- "canDeleteProjects": {
- "type": "boolean"
- },
- "canDeleteServices": {
- "type": "boolean"
- },
- "canAccessToDocker": {
- "type": "boolean"
- },
- "canAccessToTraefikFiles": {
- "type": "boolean"
- },
- "canAccessToAPI": {
- "type": "boolean"
- },
- "canAccessToSSHKeys": {
- "type": "boolean"
- },
- "canAccessToGitProviders": {
- "type": "boolean"
- },
- "canDeleteEnvironments": {
- "type": "boolean"
- },
- "canCreateEnvironments": {
- "type": "boolean"
- }
- },
- "required": [
- "id",
- "accessedProjects",
- "accessedEnvironments",
- "accessedServices",
- "canCreateProjects",
- "canCreateServices",
- "canDeleteProjects",
- "canDeleteServices",
- "canAccessToDocker",
- "canAccessToTraefikFiles",
- "canAccessToAPI",
- "canAccessToSSHKeys",
- "canAccessToGitProviders",
- "canDeleteEnvironments",
- "canCreateEnvironments"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.getInvitations": {
- "get": {
- "operationId": "user-getInvitations",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.getContainerMetrics": {
- "get": {
- "operationId": "user-getContainerMetrics",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "url",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "token",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "appName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "dataPoints",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.generateToken": {
- "post": {
- "operationId": "user-generateToken",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.deleteApiKey": {
- "post": {
- "operationId": "user-deleteApiKey",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "apiKeyId": {
- "type": "string"
- }
- },
- "required": [
- "apiKeyId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.createApiKey": {
- "post": {
- "operationId": "user-createApiKey",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "prefix": {
- "type": "string"
- },
- "expiresIn": {
- "type": "number"
- },
- "metadata": {
- "type": "object",
- "properties": {
- "organizationId": {
- "type": "string"
- }
- },
- "required": [
- "organizationId"
- ],
- "additionalProperties": false
- },
- "rateLimitEnabled": {
- "type": "boolean"
- },
- "rateLimitTimeWindow": {
- "type": "number"
- },
- "rateLimitMax": {
- "type": "number"
- },
- "remaining": {
- "type": "number"
- },
- "refillAmount": {
- "type": "number"
- },
- "refillInterval": {
- "type": "number"
- }
- },
- "required": [
- "name",
- "metadata"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.checkUserOrganizations": {
- "get": {
- "operationId": "user-checkUserOrganizations",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "userId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.sendInvitation": {
- "post": {
- "operationId": "user-sendInvitation",
- "tags": [
- "user"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "invitationId": {
- "type": "string",
- "minLength": 1
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "invitationId",
- "notificationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.create": {
- "post": {
- "operationId": "domain-create",
- "tags": [
- "domain"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "host": {
- "type": "string",
- "minLength": 1
- },
- "path": {
- "type": "string",
- "minLength": 1,
- "nullable": true
- },
- "port": {
- "type": "number",
- "minimum": 1,
- "maximum": 65535,
- "nullable": true
- },
- "https": {
- "type": "boolean"
- },
- "applicationId": {
- "type": "string",
- "nullable": true
- },
- "certificateType": {
- "type": "string",
- "enum": [
- "letsencrypt",
- "none",
- "custom"
- ]
- },
- "customCertResolver": {
- "type": "string",
- "nullable": true
- },
- "composeId": {
- "type": "string",
- "nullable": true
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "domainType": {
- "type": "string",
- "enum": [
- "compose",
- "application",
- "preview"
- ],
- "nullable": true
- },
- "previewDeploymentId": {
- "type": "string",
- "nullable": true
- },
- "internalPath": {
- "type": "string",
- "nullable": true
- },
- "stripPath": {
- "type": "boolean"
- }
- },
- "required": [
- "host"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.byApplicationId": {
- "get": {
- "operationId": "domain-byApplicationId",
- "tags": [
- "domain"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "applicationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.byComposeId": {
- "get": {
- "operationId": "domain-byComposeId",
- "tags": [
- "domain"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.generateDomain": {
- "post": {
- "operationId": "domain-generateDomain",
- "tags": [
- "domain"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appName": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "appName"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.canGenerateTraefikMeDomains": {
- "get": {
- "operationId": "domain-canGenerateTraefikMeDomains",
- "tags": [
- "domain"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.update": {
- "post": {
- "operationId": "domain-update",
- "tags": [
- "domain"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "host": {
- "type": "string",
- "minLength": 1
- },
- "path": {
- "type": "string",
- "minLength": 1,
- "nullable": true
- },
- "port": {
- "type": "number",
- "minimum": 1,
- "maximum": 65535,
- "nullable": true
- },
- "https": {
- "type": "boolean"
- },
- "certificateType": {
- "type": "string",
- "enum": [
- "letsencrypt",
- "none",
- "custom"
- ]
- },
- "customCertResolver": {
- "type": "string",
- "nullable": true
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "domainType": {
- "type": "string",
- "enum": [
- "compose",
- "application",
- "preview"
- ],
- "nullable": true
- },
- "internalPath": {
- "type": "string",
- "nullable": true
- },
- "stripPath": {
- "type": "boolean"
- },
- "domainId": {
- "type": "string"
- }
- },
- "required": [
- "host",
- "domainId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.one": {
- "get": {
- "operationId": "domain-one",
- "tags": [
- "domain"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "domainId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.delete": {
- "post": {
- "operationId": "domain-delete",
- "tags": [
- "domain"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "domainId": {
- "type": "string"
- }
- },
- "required": [
- "domainId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.validateDomain": {
- "post": {
- "operationId": "domain-validateDomain",
- "tags": [
- "domain"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "domain": {
- "type": "string"
- },
- "serverIp": {
- "type": "string"
- }
- },
- "required": [
- "domain"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.create": {
- "post": {
- "operationId": "destination-create",
- "tags": [
- "destination"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "provider": {
- "type": "string",
- "nullable": true
- },
- "accessKey": {
- "type": "string"
- },
- "bucket": {
- "type": "string"
- },
- "region": {
- "type": "string"
- },
- "endpoint": {
- "type": "string"
- },
- "secretAccessKey": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "provider",
- "accessKey",
- "bucket",
- "region",
- "endpoint",
- "secretAccessKey"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.testConnection": {
- "post": {
- "operationId": "destination-testConnection",
- "tags": [
- "destination"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "provider": {
- "type": "string",
- "nullable": true
- },
- "accessKey": {
- "type": "string"
- },
- "bucket": {
- "type": "string"
- },
- "region": {
- "type": "string"
- },
- "endpoint": {
- "type": "string"
- },
- "secretAccessKey": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "provider",
- "accessKey",
- "bucket",
- "region",
- "endpoint",
- "secretAccessKey"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.one": {
- "get": {
- "operationId": "destination-one",
- "tags": [
- "destination"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "destinationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.all": {
- "get": {
- "operationId": "destination-all",
- "tags": [
- "destination"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.remove": {
- "post": {
- "operationId": "destination-remove",
- "tags": [
- "destination"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "destinationId": {
- "type": "string"
- }
- },
- "required": [
- "destinationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.update": {
- "post": {
- "operationId": "destination-update",
- "tags": [
- "destination"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "accessKey": {
- "type": "string"
- },
- "bucket": {
- "type": "string"
- },
- "region": {
- "type": "string"
- },
- "endpoint": {
- "type": "string"
- },
- "secretAccessKey": {
- "type": "string"
- },
- "destinationId": {
- "type": "string"
- },
- "provider": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "accessKey",
- "bucket",
- "region",
- "endpoint",
- "secretAccessKey",
- "destinationId",
- "provider"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.create": {
- "post": {
- "operationId": "backup-create",
- "tags": [
- "backup"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "schedule": {
- "type": "string"
- },
- "enabled": {
- "type": "boolean",
- "nullable": true
- },
- "prefix": {
- "type": "string",
- "minLength": 1
- },
- "destinationId": {
- "type": "string"
- },
- "keepLatestCount": {
- "type": "number",
- "nullable": true
- },
- "database": {
- "type": "string",
- "minLength": 1
- },
- "mariadbId": {
- "type": "string",
- "nullable": true
- },
- "mysqlId": {
- "type": "string",
- "nullable": true
- },
- "postgresId": {
- "type": "string",
- "nullable": true
- },
- "mongoId": {
- "type": "string",
- "nullable": true
- },
- "databaseType": {
- "type": "string",
- "enum": [
- "postgres",
- "mariadb",
- "mysql",
- "mongo",
- "web-server"
- ]
- },
- "userId": {
- "type": "string",
- "nullable": true
- },
- "backupType": {
- "type": "string",
- "enum": [
- "database",
- "compose"
- ]
- },
- "composeId": {
- "type": "string",
- "nullable": true
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "metadata": {
- "nullable": true
- }
- },
- "required": [
- "schedule",
- "prefix",
- "destinationId",
- "database",
- "databaseType"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.one": {
- "get": {
- "operationId": "backup-one",
- "tags": [
- "backup"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "backupId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.update": {
- "post": {
- "operationId": "backup-update",
- "tags": [
- "backup"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "schedule": {
- "type": "string"
- },
- "enabled": {
- "type": "boolean",
- "nullable": true
- },
- "prefix": {
- "type": "string",
- "minLength": 1
- },
- "backupId": {
- "type": "string"
- },
- "destinationId": {
- "type": "string"
- },
- "database": {
- "type": "string",
- "minLength": 1
- },
- "keepLatestCount": {
- "type": "number",
- "nullable": true
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "metadata": {
- "nullable": true
- },
- "databaseType": {
- "type": "string",
- "enum": [
- "postgres",
- "mariadb",
- "mysql",
- "mongo",
- "web-server"
- ]
- }
- },
- "required": [
- "schedule",
- "prefix",
- "backupId",
- "destinationId",
- "database",
- "serviceName",
- "databaseType"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.remove": {
- "post": {
- "operationId": "backup-remove",
- "tags": [
- "backup"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": [
- "backupId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.manualBackupPostgres": {
- "post": {
- "operationId": "backup-manualBackupPostgres",
- "tags": [
- "backup"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": [
- "backupId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.manualBackupMySql": {
- "post": {
- "operationId": "backup-manualBackupMySql",
- "tags": [
- "backup"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": [
- "backupId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.manualBackupMariadb": {
- "post": {
- "operationId": "backup-manualBackupMariadb",
- "tags": [
- "backup"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": [
- "backupId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.manualBackupCompose": {
- "post": {
- "operationId": "backup-manualBackupCompose",
- "tags": [
- "backup"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": [
- "backupId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.manualBackupMongo": {
- "post": {
- "operationId": "backup-manualBackupMongo",
- "tags": [
- "backup"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": [
- "backupId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.manualBackupWebServer": {
- "post": {
- "operationId": "backup-manualBackupWebServer",
- "tags": [
- "backup"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": [
- "backupId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.listBackupFiles": {
- "get": {
- "operationId": "backup-listBackupFiles",
- "tags": [
- "backup"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "destinationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "search",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/deployment.all": {
- "get": {
- "operationId": "deployment-all",
- "tags": [
- "deployment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "applicationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/deployment.allByCompose": {
- "get": {
- "operationId": "deployment-allByCompose",
- "tags": [
- "deployment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/deployment.allByServer": {
- "get": {
- "operationId": "deployment-allByServer",
- "tags": [
- "deployment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/deployment.allByType": {
- "get": {
- "operationId": "deployment-allByType",
- "tags": [
- "deployment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "id",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "type",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "enum": [
- "application",
- "compose",
- "server",
- "schedule",
- "previewDeployment",
- "backup",
- "volumeBackup"
- ]
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/deployment.killProcess": {
- "post": {
- "operationId": "deployment-killProcess",
- "tags": [
- "deployment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "deploymentId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "deploymentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/previewDeployment.all": {
- "get": {
- "operationId": "previewDeployment-all",
- "tags": [
- "previewDeployment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "applicationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/previewDeployment.delete": {
- "post": {
- "operationId": "previewDeployment-delete",
- "tags": [
- "previewDeployment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "previewDeploymentId": {
- "type": "string"
- }
- },
- "required": [
- "previewDeploymentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/previewDeployment.one": {
- "get": {
- "operationId": "previewDeployment-one",
- "tags": [
- "previewDeployment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "previewDeploymentId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mounts.create": {
- "post": {
- "operationId": "mounts-create",
- "tags": [
- "mounts"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "enum": [
- "bind",
- "volume",
- "file"
- ]
- },
- "hostPath": {
- "type": "string",
- "nullable": true
- },
- "volumeName": {
- "type": "string",
- "nullable": true
- },
- "content": {
- "type": "string",
- "nullable": true
- },
- "mountPath": {
- "type": "string",
- "minLength": 1
- },
- "serviceType": {
- "type": "string",
- "enum": [
- "application",
- "postgres",
- "mysql",
- "mariadb",
- "mongo",
- "redis",
- "compose"
- ],
- "default": "application"
- },
- "filePath": {
- "type": "string",
- "nullable": true
- },
- "serviceId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "type",
- "mountPath",
- "serviceId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mounts.remove": {
- "post": {
- "operationId": "mounts-remove",
- "tags": [
- "mounts"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mountId": {
- "type": "string"
- }
- },
- "required": [
- "mountId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mounts.one": {
- "get": {
- "operationId": "mounts-one",
- "tags": [
- "mounts"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "mountId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mounts.update": {
- "post": {
- "operationId": "mounts-update",
- "tags": [
- "mounts"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mountId": {
- "type": "string",
- "minLength": 1
- },
- "type": {
- "type": "string",
- "enum": [
- "bind",
- "volume",
- "file"
- ]
- },
- "hostPath": {
- "type": "string",
- "nullable": true
- },
- "volumeName": {
- "type": "string",
- "nullable": true
- },
- "filePath": {
- "type": "string",
- "nullable": true
- },
- "content": {
- "type": "string",
- "nullable": true
- },
- "serviceType": {
- "type": "string",
- "enum": [
- "application",
- "postgres",
- "mysql",
- "mariadb",
- "mongo",
- "redis",
- "compose"
- ],
- "default": "application"
- },
- "mountPath": {
- "type": "string",
- "minLength": 1
- },
- "applicationId": {
- "type": "string",
- "nullable": true
- },
- "postgresId": {
- "type": "string",
- "nullable": true
- },
- "mariadbId": {
- "type": "string",
- "nullable": true
- },
- "mongoId": {
- "type": "string",
- "nullable": true
- },
- "mysqlId": {
- "type": "string",
- "nullable": true
- },
- "redisId": {
- "type": "string",
- "nullable": true
- },
- "composeId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "mountId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mounts.allNamedByApplicationId": {
- "get": {
- "operationId": "mounts-allNamedByApplicationId",
- "tags": [
- "mounts"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "applicationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/certificates.create": {
- "post": {
- "operationId": "certificates-create",
- "tags": [
- "certificates"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "certificateId": {
- "type": "string"
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "certificateData": {
- "type": "string",
- "minLength": 1
- },
- "privateKey": {
- "type": "string",
- "minLength": 1
- },
- "certificatePath": {
- "type": "string"
- },
- "autoRenew": {
- "type": "boolean",
- "nullable": true
- },
- "organizationId": {
- "type": "string"
- },
- "serverId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "name",
- "certificateData",
- "privateKey",
- "organizationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/certificates.one": {
- "get": {
- "operationId": "certificates-one",
- "tags": [
- "certificates"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "certificateId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/certificates.remove": {
- "post": {
- "operationId": "certificates-remove",
- "tags": [
- "certificates"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "certificateId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "certificateId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/certificates.all": {
- "get": {
- "operationId": "certificates-all",
- "tags": [
- "certificates"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.reloadServer": {
- "post": {
- "operationId": "settings-reloadServer",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanRedis": {
- "post": {
- "operationId": "settings-cleanRedis",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.reloadRedis": {
- "post": {
- "operationId": "settings-reloadRedis",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.reloadTraefik": {
- "post": {
- "operationId": "settings-reloadTraefik",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": false,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.toggleDashboard": {
- "post": {
- "operationId": "settings-toggleDashboard",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "enableDashboard": {
- "type": "boolean"
- },
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanUnusedImages": {
- "post": {
- "operationId": "settings-cleanUnusedImages",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": false,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanUnusedVolumes": {
- "post": {
- "operationId": "settings-cleanUnusedVolumes",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": false,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanStoppedContainers": {
- "post": {
- "operationId": "settings-cleanStoppedContainers",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": false,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanDockerBuilder": {
- "post": {
- "operationId": "settings-cleanDockerBuilder",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": false,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanDockerPrune": {
- "post": {
- "operationId": "settings-cleanDockerPrune",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": false,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanAll": {
- "post": {
- "operationId": "settings-cleanAll",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": false,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanMonitoring": {
- "post": {
- "operationId": "settings-cleanMonitoring",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.saveSSHPrivateKey": {
- "post": {
- "operationId": "settings-saveSSHPrivateKey",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "sshPrivateKey": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "sshPrivateKey"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.assignDomainServer": {
- "post": {
- "operationId": "settings-assignDomainServer",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "host": {
- "type": "string",
- "nullable": true
- },
- "certificateType": {
- "type": "string",
- "enum": [
- "letsencrypt",
- "none",
- "custom"
- ]
- },
- "letsEncryptEmail": {
- "type": "string",
- "nullable": true
- },
- "https": {
- "type": "boolean"
- }
- },
- "required": [
- "host",
- "certificateType"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanSSHPrivateKey": {
- "post": {
- "operationId": "settings-cleanSSHPrivateKey",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateDockerCleanup": {
- "post": {
- "operationId": "settings-updateDockerCleanup",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "enableDockerCleanup": {
- "type": "boolean"
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "enableDockerCleanup"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readTraefikConfig": {
- "get": {
- "operationId": "settings-readTraefikConfig",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateTraefikConfig": {
- "post": {
- "operationId": "settings-updateTraefikConfig",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "traefikConfig": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "traefikConfig"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readWebServerTraefikConfig": {
- "get": {
- "operationId": "settings-readWebServerTraefikConfig",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateWebServerTraefikConfig": {
- "post": {
- "operationId": "settings-updateWebServerTraefikConfig",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "traefikConfig": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "traefikConfig"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readMiddlewareTraefikConfig": {
- "get": {
- "operationId": "settings-readMiddlewareTraefikConfig",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateMiddlewareTraefikConfig": {
- "post": {
- "operationId": "settings-updateMiddlewareTraefikConfig",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "traefikConfig": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "traefikConfig"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getUpdateData": {
- "post": {
- "operationId": "settings-getUpdateData",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateServer": {
- "post": {
- "operationId": "settings-updateServer",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getDokployVersion": {
- "get": {
- "operationId": "settings-getDokployVersion",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getReleaseTag": {
- "get": {
- "operationId": "settings-getReleaseTag",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readDirectories": {
- "get": {
- "operationId": "settings-readDirectories",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateTraefikFile": {
- "post": {
- "operationId": "settings-updateTraefikFile",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "path": {
- "type": "string",
- "minLength": 1
- },
- "traefikConfig": {
- "type": "string",
- "minLength": 1
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "path",
- "traefikConfig"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readTraefikFile": {
- "get": {
- "operationId": "settings-readTraefikFile",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "path",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getIp": {
- "get": {
- "operationId": "settings-getIp",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getOpenApiDocument": {
- "get": {
- "operationId": "settings-getOpenApiDocument",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readTraefikEnv": {
- "get": {
- "operationId": "settings-readTraefikEnv",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.writeTraefikEnv": {
- "post": {
- "operationId": "settings-writeTraefikEnv",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "env": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "env"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.haveTraefikDashboardPortEnabled": {
- "get": {
- "operationId": "settings-haveTraefikDashboardPortEnabled",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.haveActivateRequests": {
- "get": {
- "operationId": "settings-haveActivateRequests",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.toggleRequests": {
- "post": {
- "operationId": "settings-toggleRequests",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "enable": {
- "type": "boolean"
- }
- },
- "required": [
- "enable"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.isCloud": {
- "get": {
- "operationId": "settings-isCloud",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.isUserSubscribed": {
- "get": {
- "operationId": "settings-isUserSubscribed",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.health": {
- "get": {
- "operationId": "settings-health",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.setupGPU": {
- "post": {
- "operationId": "settings-setupGPU",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.checkGPUStatus": {
- "get": {
- "operationId": "settings-checkGPUStatus",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateTraefikPorts": {
- "post": {
- "operationId": "settings-updateTraefikPorts",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string"
- },
- "additionalPorts": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "targetPort": {
- "type": "number"
- },
- "publishedPort": {
- "type": "number"
- },
- "protocol": {
- "type": "string",
- "enum": [
- "tcp",
- "udp",
- "sctp"
- ]
- }
- },
- "required": [
- "targetPort",
- "publishedPort",
- "protocol"
- ],
- "additionalProperties": false
- }
- }
- },
- "required": [
- "additionalPorts"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getTraefikPorts": {
- "get": {
- "operationId": "settings-getTraefikPorts",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateLogCleanup": {
- "post": {
- "operationId": "settings-updateLogCleanup",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "cronExpression": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "cronExpression"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getLogCleanupStatus": {
- "get": {
- "operationId": "settings-getLogCleanupStatus",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getDokployCloudIps": {
- "get": {
- "operationId": "settings-getDokployCloudIps",
- "tags": [
- "settings"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/security.create": {
- "post": {
- "operationId": "security-create",
- "tags": [
- "security"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "applicationId",
- "username",
- "password"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/security.one": {
- "get": {
- "operationId": "security-one",
- "tags": [
- "security"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "securityId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/security.delete": {
- "post": {
- "operationId": "security-delete",
- "tags": [
- "security"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "securityId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "securityId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/security.update": {
- "post": {
- "operationId": "security-update",
- "tags": [
- "security"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "securityId": {
- "type": "string",
- "minLength": 1
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "securityId",
- "username",
- "password"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redirects.create": {
- "post": {
- "operationId": "redirects-create",
- "tags": [
- "redirects"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "regex": {
- "type": "string",
- "minLength": 1
- },
- "replacement": {
- "type": "string",
- "minLength": 1
- },
- "permanent": {
- "type": "boolean"
- },
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "regex",
- "replacement",
- "permanent",
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redirects.one": {
- "get": {
- "operationId": "redirects-one",
- "tags": [
- "redirects"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "redirectId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redirects.delete": {
- "post": {
- "operationId": "redirects-delete",
- "tags": [
- "redirects"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redirectId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "redirectId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redirects.update": {
- "post": {
- "operationId": "redirects-update",
- "tags": [
- "redirects"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redirectId": {
- "type": "string",
- "minLength": 1
- },
- "regex": {
- "type": "string",
- "minLength": 1
- },
- "replacement": {
- "type": "string",
- "minLength": 1
- },
- "permanent": {
- "type": "boolean"
- }
- },
- "required": [
- "redirectId",
- "regex",
- "replacement",
- "permanent"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/port.create": {
- "post": {
- "operationId": "port-create",
- "tags": [
- "port"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "publishedPort": {
- "type": "number"
- },
- "publishMode": {
- "type": "string",
- "enum": [
- "ingress",
- "host"
- ],
- "default": "ingress"
- },
- "targetPort": {
- "type": "number"
- },
- "protocol": {
- "type": "string",
- "enum": [
- "tcp",
- "udp"
- ],
- "default": "tcp"
- },
- "applicationId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "publishedPort",
- "targetPort",
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/port.one": {
- "get": {
- "operationId": "port-one",
- "tags": [
- "port"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "portId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/port.delete": {
- "post": {
- "operationId": "port-delete",
- "tags": [
- "port"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "portId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "portId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/port.update": {
- "post": {
- "operationId": "port-update",
- "tags": [
- "port"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "portId": {
- "type": "string",
- "minLength": 1
- },
- "publishedPort": {
- "type": "number"
- },
- "publishMode": {
- "type": "string",
- "enum": [
- "ingress",
- "host"
- ],
- "default": "ingress"
- },
- "targetPort": {
- "type": "number"
- },
- "protocol": {
- "type": "string",
- "enum": [
- "tcp",
- "udp"
- ],
- "default": "tcp"
- }
- },
- "required": [
- "portId",
- "publishedPort",
- "targetPort"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.create": {
- "post": {
- "operationId": "registry-create",
- "tags": [
- "registry"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "registryName": {
- "type": "string",
- "minLength": 1
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "registryUrl": {
- "type": "string"
- },
- "registryType": {
- "type": "string",
- "enum": [
- "cloud"
- ]
- },
- "imagePrefix": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "registryName",
- "username",
- "password",
- "registryUrl",
- "registryType",
- "imagePrefix"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.remove": {
- "post": {
- "operationId": "registry-remove",
- "tags": [
- "registry"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "registryId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "registryId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.update": {
- "post": {
- "operationId": "registry-update",
- "tags": [
- "registry"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "registryId": {
- "type": "string",
- "minLength": 1
- },
- "registryName": {
- "type": "string",
- "minLength": 1
- },
- "imagePrefix": {
- "type": "string",
- "nullable": true
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "registryUrl": {
- "type": "string"
- },
- "createdAt": {
- "type": "string"
- },
- "registryType": {
- "type": "string",
- "enum": [
- "cloud"
- ]
- },
- "organizationId": {
- "type": "string",
- "minLength": 1
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "registryId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.all": {
- "get": {
- "operationId": "registry-all",
- "tags": [
- "registry"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.one": {
- "get": {
- "operationId": "registry-one",
- "tags": [
- "registry"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "registryId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.testRegistry": {
- "post": {
- "operationId": "registry-testRegistry",
- "tags": [
- "registry"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "registryName": {
- "type": "string"
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "registryUrl": {
- "type": "string"
- },
- "registryType": {
- "type": "string",
- "enum": [
- "cloud"
- ]
- },
- "imagePrefix": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "username",
- "password",
- "registryUrl",
- "registryType"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/cluster.getNodes": {
- "get": {
- "operationId": "cluster-getNodes",
- "tags": [
- "cluster"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/cluster.removeWorker": {
- "post": {
- "operationId": "cluster-removeWorker",
- "tags": [
- "cluster"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "nodeId": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "nodeId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/cluster.addWorker": {
- "get": {
- "operationId": "cluster-addWorker",
- "tags": [
- "cluster"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/cluster.addManager": {
- "get": {
- "operationId": "cluster-addManager",
- "tags": [
- "cluster"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createSlack": {
- "post": {
- "operationId": "notification-createSlack",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "channel": {
- "type": "string"
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "serverThreshold",
- "webhookUrl",
- "channel"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateSlack": {
- "post": {
- "operationId": "notification-updateSlack",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "channel": {
- "type": "string"
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "slackId": {
- "type": "string"
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": [
- "notificationId",
- "slackId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testSlackConnection": {
- "post": {
- "operationId": "notification-testSlackConnection",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "channel": {
- "type": "string"
- }
- },
- "required": [
- "webhookUrl",
- "channel"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createTelegram": {
- "post": {
- "operationId": "notification-createTelegram",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "botToken": {
- "type": "string",
- "minLength": 1
- },
- "chatId": {
- "type": "string",
- "minLength": 1
- },
- "messageThreadId": {
- "type": "string"
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "serverThreshold",
- "botToken",
- "chatId",
- "messageThreadId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateTelegram": {
- "post": {
- "operationId": "notification-updateTelegram",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "botToken": {
- "type": "string",
- "minLength": 1
- },
- "chatId": {
- "type": "string",
- "minLength": 1
- },
- "messageThreadId": {
- "type": "string"
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "telegramId": {
- "type": "string",
- "minLength": 1
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": [
- "notificationId",
- "telegramId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testTelegramConnection": {
- "post": {
- "operationId": "notification-testTelegramConnection",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "botToken": {
- "type": "string",
- "minLength": 1
- },
- "chatId": {
- "type": "string",
- "minLength": 1
- },
- "messageThreadId": {
- "type": "string"
- }
- },
- "required": [
- "botToken",
- "chatId",
- "messageThreadId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createDiscord": {
- "post": {
- "operationId": "notification-createDiscord",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "decoration": {
- "type": "boolean"
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "serverThreshold",
- "webhookUrl",
- "decoration"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateDiscord": {
- "post": {
- "operationId": "notification-updateDiscord",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "decoration": {
- "type": "boolean"
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "discordId": {
- "type": "string",
- "minLength": 1
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": [
- "notificationId",
- "discordId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testDiscordConnection": {
- "post": {
- "operationId": "notification-testDiscordConnection",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "decoration": {
- "type": "boolean"
- }
- },
- "required": [
- "webhookUrl"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createEmail": {
- "post": {
- "operationId": "notification-createEmail",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "smtpServer": {
- "type": "string",
- "minLength": 1
- },
- "smtpPort": {
- "type": "number",
- "minimum": 1
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "fromAddress": {
- "type": "string",
- "minLength": 1
- },
- "toAddresses": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "minItems": 1
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "serverThreshold",
- "smtpServer",
- "smtpPort",
- "username",
- "password",
- "fromAddress",
- "toAddresses"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateEmail": {
- "post": {
- "operationId": "notification-updateEmail",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "smtpServer": {
- "type": "string",
- "minLength": 1
- },
- "smtpPort": {
- "type": "number",
- "minimum": 1
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "fromAddress": {
- "type": "string",
- "minLength": 1
- },
- "toAddresses": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "minItems": 1
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "emailId": {
- "type": "string",
- "minLength": 1
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": [
- "notificationId",
- "emailId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testEmailConnection": {
- "post": {
- "operationId": "notification-testEmailConnection",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "smtpServer": {
- "type": "string",
- "minLength": 1
- },
- "smtpPort": {
- "type": "number",
- "minimum": 1
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "toAddresses": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "minItems": 1
- },
- "fromAddress": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "smtpServer",
- "smtpPort",
- "username",
- "password",
- "toAddresses",
- "fromAddress"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.remove": {
- "post": {
- "operationId": "notification-remove",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "notificationId": {
- "type": "string"
- }
- },
- "required": [
- "notificationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.one": {
- "get": {
- "operationId": "notification-one",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "notificationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.all": {
- "get": {
- "operationId": "notification-all",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.receiveNotification": {
- "post": {
- "operationId": "notification-receiveNotification",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "ServerType": {
- "type": "string",
- "enum": [
- "Dokploy",
- "Remote"
- ],
- "default": "Dokploy"
- },
- "Type": {
- "type": "string",
- "enum": [
- "Memory",
- "CPU"
- ]
- },
- "Value": {
- "type": "number"
- },
- "Threshold": {
- "type": "number"
- },
- "Message": {
- "type": "string"
- },
- "Timestamp": {
- "type": "string"
- },
- "Token": {
- "type": "string"
- }
- },
- "required": [
- "Type",
- "Value",
- "Threshold",
- "Message",
- "Timestamp",
- "Token"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createGotify": {
- "post": {
- "operationId": "notification-createGotify",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverUrl": {
- "type": "string",
- "minLength": 1
- },
- "appToken": {
- "type": "string",
- "minLength": 1
- },
- "priority": {
- "type": "number",
- "minimum": 1
- },
- "decoration": {
- "type": "boolean"
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "serverUrl",
- "appToken",
- "priority",
- "decoration"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateGotify": {
- "post": {
- "operationId": "notification-updateGotify",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverUrl": {
- "type": "string",
- "minLength": 1
- },
- "appToken": {
- "type": "string",
- "minLength": 1
- },
- "priority": {
- "type": "number",
- "minimum": 1
- },
- "decoration": {
- "type": "boolean"
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "gotifyId": {
- "type": "string",
- "minLength": 1
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": [
- "notificationId",
- "gotifyId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testGotifyConnection": {
- "post": {
- "operationId": "notification-testGotifyConnection",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverUrl": {
- "type": "string",
- "minLength": 1
- },
- "appToken": {
- "type": "string",
- "minLength": 1
- },
- "priority": {
- "type": "number",
- "minimum": 1
- },
- "decoration": {
- "type": "boolean"
- }
- },
- "required": [
- "serverUrl",
- "appToken",
- "priority"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createNtfy": {
- "post": {
- "operationId": "notification-createNtfy",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverUrl": {
- "type": "string",
- "minLength": 1
- },
- "topic": {
- "type": "string",
- "minLength": 1
- },
- "accessToken": {
- "type": "string",
- "minLength": 1
- },
- "priority": {
- "type": "number",
- "minimum": 1
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "serverUrl",
- "topic",
- "accessToken",
- "priority"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateNtfy": {
- "post": {
- "operationId": "notification-updateNtfy",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverUrl": {
- "type": "string",
- "minLength": 1
- },
- "topic": {
- "type": "string",
- "minLength": 1
- },
- "accessToken": {
- "type": "string",
- "minLength": 1
- },
- "priority": {
- "type": "number",
- "minimum": 1
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "ntfyId": {
- "type": "string",
- "minLength": 1
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": [
- "notificationId",
- "ntfyId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testNtfyConnection": {
- "post": {
- "operationId": "notification-testNtfyConnection",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverUrl": {
- "type": "string",
- "minLength": 1
- },
- "topic": {
- "type": "string",
- "minLength": 1
- },
- "accessToken": {
- "type": "string",
- "minLength": 1
- },
- "priority": {
- "type": "number",
- "minimum": 1
- }
- },
- "required": [
- "serverUrl",
- "topic",
- "accessToken",
- "priority"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createLark": {
- "post": {
- "operationId": "notification-createLark",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "serverThreshold",
- "webhookUrl"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateLark": {
- "post": {
- "operationId": "notification-updateLark",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "serverThreshold": {
- "type": "boolean"
- },
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "larkId": {
- "type": "string",
- "minLength": 1
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": [
- "notificationId",
- "larkId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testLarkConnection": {
- "post": {
- "operationId": "notification-testLarkConnection",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "webhookUrl"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.getEmailProviders": {
- "get": {
- "operationId": "notification-getEmailProviders",
- "tags": [
- "notification"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.create": {
- "post": {
- "operationId": "sshKey-create",
- "tags": [
- "sshKey"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "privateKey": {
- "type": "string"
- },
- "publicKey": {
- "type": "string"
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "privateKey",
- "publicKey",
- "organizationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.remove": {
- "post": {
- "operationId": "sshKey-remove",
- "tags": [
- "sshKey"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "sshKeyId": {
- "type": "string"
- }
- },
- "required": [
- "sshKeyId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.one": {
- "get": {
- "operationId": "sshKey-one",
- "tags": [
- "sshKey"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "sshKeyId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.all": {
- "get": {
- "operationId": "sshKey-all",
- "tags": [
- "sshKey"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.generate": {
- "post": {
- "operationId": "sshKey-generate",
- "tags": [
- "sshKey"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "enum": [
- "rsa",
- "ed25519"
- ]
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.update": {
- "post": {
- "operationId": "sshKey-update",
- "tags": [
- "sshKey"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "lastUsedAt": {
- "type": "string",
- "nullable": true
- },
- "sshKeyId": {
- "type": "string"
- }
- },
- "required": [
- "sshKeyId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitProvider.getAll": {
- "get": {
- "operationId": "gitProvider-getAll",
- "tags": [
- "gitProvider"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitProvider.remove": {
- "post": {
- "operationId": "gitProvider-remove",
- "tags": [
- "gitProvider"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "gitProviderId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "gitProviderId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.create": {
- "post": {
- "operationId": "gitea-create",
- "tags": [
- "gitea"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "giteaId": {
- "type": "string"
- },
- "giteaUrl": {
- "type": "string",
- "minLength": 1
- },
- "redirectUri": {
- "type": "string"
- },
- "clientId": {
- "type": "string"
- },
- "clientSecret": {
- "type": "string"
- },
- "gitProviderId": {
- "type": "string"
- },
- "accessToken": {
- "type": "string"
- },
- "refreshToken": {
- "type": "string"
- },
- "expiresAt": {
- "type": "number"
- },
- "scopes": {
- "type": "string"
- },
- "lastAuthenticatedAt": {
- "type": "number"
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "giteaUsername": {
- "type": "string"
- },
- "organizationName": {
- "type": "string"
- }
- },
- "required": [
- "giteaUrl",
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.one": {
- "get": {
- "operationId": "gitea-one",
- "tags": [
- "gitea"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "giteaId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.giteaProviders": {
- "get": {
- "operationId": "gitea-giteaProviders",
- "tags": [
- "gitea"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.getGiteaRepositories": {
- "get": {
- "operationId": "gitea-getGiteaRepositories",
- "tags": [
- "gitea"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "giteaId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.getGiteaBranches": {
- "get": {
- "operationId": "gitea-getGiteaBranches",
- "tags": [
- "gitea"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "owner",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "repositoryName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "giteaId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.testConnection": {
- "post": {
- "operationId": "gitea-testConnection",
- "tags": [
- "gitea"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "giteaId": {
- "type": "string"
- },
- "organizationName": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.update": {
- "post": {
- "operationId": "gitea-update",
- "tags": [
- "gitea"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "giteaId": {
- "type": "string",
- "minLength": 1
- },
- "giteaUrl": {
- "type": "string",
- "minLength": 1
- },
- "redirectUri": {
- "type": "string"
- },
- "clientId": {
- "type": "string"
- },
- "clientSecret": {
- "type": "string"
- },
- "gitProviderId": {
- "type": "string"
- },
- "accessToken": {
- "type": "string"
- },
- "refreshToken": {
- "type": "string"
- },
- "expiresAt": {
- "type": "number"
- },
- "scopes": {
- "type": "string"
- },
- "lastAuthenticatedAt": {
- "type": "number"
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "giteaUsername": {
- "type": "string"
- },
- "organizationName": {
- "type": "string"
- }
- },
- "required": [
- "giteaId",
- "giteaUrl",
- "gitProviderId",
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitea.getGiteaUrl": {
- "get": {
- "operationId": "gitea-getGiteaUrl",
- "tags": [
- "gitea"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "giteaId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.create": {
- "post": {
- "operationId": "bitbucket-create",
- "tags": [
- "bitbucket"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "bitbucketId": {
- "type": "string"
- },
- "bitbucketUsername": {
- "type": "string"
- },
- "bitbucketEmail": {
- "type": "string",
- "format": "email"
- },
- "appPassword": {
- "type": "string"
- },
- "apiToken": {
- "type": "string"
- },
- "bitbucketWorkspaceName": {
- "type": "string"
- },
- "gitProviderId": {
- "type": "string"
- },
- "authId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "authId",
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.one": {
- "get": {
- "operationId": "bitbucket-one",
- "tags": [
- "bitbucket"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "bitbucketId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.bitbucketProviders": {
- "get": {
- "operationId": "bitbucket-bitbucketProviders",
- "tags": [
- "bitbucket"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.getBitbucketRepositories": {
- "get": {
- "operationId": "bitbucket-getBitbucketRepositories",
- "tags": [
- "bitbucket"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "bitbucketId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.getBitbucketBranches": {
- "get": {
- "operationId": "bitbucket-getBitbucketBranches",
- "tags": [
- "bitbucket"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "owner",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "repo",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "bitbucketId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.testConnection": {
- "post": {
- "operationId": "bitbucket-testConnection",
- "tags": [
- "bitbucket"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "bitbucketId": {
- "type": "string",
- "minLength": 1
- },
- "bitbucketUsername": {
- "type": "string"
- },
- "bitbucketEmail": {
- "type": "string",
- "format": "email"
- },
- "workspaceName": {
- "type": "string"
- },
- "apiToken": {
- "type": "string"
- },
- "appPassword": {
- "type": "string"
- }
- },
- "required": [
- "bitbucketId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.update": {
- "post": {
- "operationId": "bitbucket-update",
- "tags": [
- "bitbucket"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "bitbucketId": {
- "type": "string",
- "minLength": 1
- },
- "bitbucketUsername": {
- "type": "string"
- },
- "bitbucketEmail": {
- "type": "string",
- "format": "email"
- },
- "appPassword": {
- "type": "string"
- },
- "apiToken": {
- "type": "string"
- },
- "bitbucketWorkspaceName": {
- "type": "string"
- },
- "gitProviderId": {
- "type": "string"
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "organizationId": {
- "type": "string"
- }
- },
- "required": [
- "bitbucketId",
- "gitProviderId",
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.create": {
- "post": {
- "operationId": "gitlab-create",
- "tags": [
- "gitlab"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "gitlabId": {
- "type": "string"
- },
- "gitlabUrl": {
- "type": "string",
- "minLength": 1
- },
- "applicationId": {
- "type": "string"
- },
- "redirectUri": {
- "type": "string"
- },
- "secret": {
- "type": "string"
- },
- "accessToken": {
- "type": "string",
- "nullable": true
- },
- "refreshToken": {
- "type": "string",
- "nullable": true
- },
- "groupName": {
- "type": "string"
- },
- "expiresAt": {
- "type": "number",
- "nullable": true
- },
- "gitProviderId": {
- "type": "string"
- },
- "authId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "gitlabUrl",
- "authId",
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.one": {
- "get": {
- "operationId": "gitlab-one",
- "tags": [
- "gitlab"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "gitlabId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.gitlabProviders": {
- "get": {
- "operationId": "gitlab-gitlabProviders",
- "tags": [
- "gitlab"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.getGitlabRepositories": {
- "get": {
- "operationId": "gitlab-getGitlabRepositories",
- "tags": [
- "gitlab"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "gitlabId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.getGitlabBranches": {
- "get": {
- "operationId": "gitlab-getGitlabBranches",
- "tags": [
- "gitlab"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "id",
- "in": "query",
- "required": false,
- "schema": {
- "type": "number"
- }
- },
- {
- "name": "owner",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "repo",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "gitlabId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.testConnection": {
- "post": {
- "operationId": "gitlab-testConnection",
- "tags": [
- "gitlab"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "gitlabId": {
- "type": "string"
- },
- "groupName": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.update": {
- "post": {
- "operationId": "gitlab-update",
- "tags": [
- "gitlab"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "gitlabId": {
- "type": "string",
- "minLength": 1
- },
- "gitlabUrl": {
- "type": "string",
- "minLength": 1
- },
- "applicationId": {
- "type": "string"
- },
- "redirectUri": {
- "type": "string"
- },
- "secret": {
- "type": "string"
- },
- "accessToken": {
- "type": "string",
- "nullable": true
- },
- "refreshToken": {
- "type": "string",
- "nullable": true
- },
- "groupName": {
- "type": "string"
- },
- "expiresAt": {
- "type": "number",
- "nullable": true
- },
- "gitProviderId": {
- "type": "string"
- },
- "name": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "gitlabId",
- "gitlabUrl",
- "gitProviderId",
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.one": {
- "get": {
- "operationId": "github-one",
- "tags": [
- "github"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "githubId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.getGithubRepositories": {
- "get": {
- "operationId": "github-getGithubRepositories",
- "tags": [
- "github"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "githubId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.getGithubBranches": {
- "get": {
- "operationId": "github-getGithubBranches",
- "tags": [
- "github"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "repo",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "owner",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "githubId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.githubProviders": {
- "get": {
- "operationId": "github-githubProviders",
- "tags": [
- "github"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.testConnection": {
- "post": {
- "operationId": "github-testConnection",
- "tags": [
- "github"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "githubId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "githubId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.update": {
- "post": {
- "operationId": "github-update",
- "tags": [
- "github"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "githubId": {
- "type": "string",
- "minLength": 1
- },
- "githubAppName": {
- "type": "string",
- "minLength": 1
- },
- "githubAppId": {
- "type": "number",
- "nullable": true
- },
- "githubClientId": {
- "type": "string",
- "nullable": true
- },
- "githubClientSecret": {
- "type": "string",
- "nullable": true
- },
- "githubInstallationId": {
- "type": "string",
- "nullable": true
- },
- "githubPrivateKey": {
- "type": "string",
- "nullable": true
- },
- "githubWebhookSecret": {
- "type": "string",
- "nullable": true
- },
- "gitProviderId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "githubId",
- "githubAppName",
- "gitProviderId",
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.create": {
- "post": {
- "operationId": "server-create",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "ipAddress": {
- "type": "string"
- },
- "port": {
- "type": "number"
- },
- "username": {
- "type": "string"
- },
- "sshKeyId": {
- "type": "string",
- "nullable": true
- },
- "serverType": {
- "type": "string",
- "enum": [
- "deploy",
- "build"
- ]
- }
- },
- "required": [
- "name",
- "ipAddress",
- "port",
- "username",
- "sshKeyId",
- "serverType"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.one": {
- "get": {
- "operationId": "server-one",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.getDefaultCommand": {
- "get": {
- "operationId": "server-getDefaultCommand",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.all": {
- "get": {
- "operationId": "server-all",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.count": {
- "get": {
- "operationId": "server-count",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.withSSHKey": {
- "get": {
- "operationId": "server-withSSHKey",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.buildServers": {
- "get": {
- "operationId": "server-buildServers",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.setup": {
- "post": {
- "operationId": "server-setup",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "serverId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.validate": {
- "get": {
- "operationId": "server-validate",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.security": {
- "get": {
- "operationId": "server-security",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.setupMonitoring": {
- "post": {
- "operationId": "server-setupMonitoring",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string",
- "minLength": 1
- },
- "metricsConfig": {
- "type": "object",
- "properties": {
- "server": {
- "type": "object",
- "properties": {
- "refreshRate": {
- "type": "number",
- "minimum": 2
- },
- "port": {
- "type": "number",
- "minimum": 1
- },
- "token": {
- "type": "string"
- },
- "urlCallback": {
- "type": "string",
- "format": "uri"
- },
- "retentionDays": {
- "type": "number",
- "minimum": 1
- },
- "cronJob": {
- "type": "string",
- "minLength": 1
- },
- "thresholds": {
- "type": "object",
- "properties": {
- "cpu": {
- "type": "number",
- "minimum": 0
- },
- "memory": {
- "type": "number",
- "minimum": 0
- }
- },
- "required": [
- "cpu",
- "memory"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "refreshRate",
- "port",
- "token",
- "urlCallback",
- "retentionDays",
- "cronJob",
- "thresholds"
- ],
- "additionalProperties": false
- },
- "containers": {
- "type": "object",
- "properties": {
- "refreshRate": {
- "type": "number",
- "minimum": 2
- },
- "services": {
- "type": "object",
- "properties": {
- "include": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "exclude": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- },
- "additionalProperties": false
- }
- },
- "required": [
- "refreshRate",
- "services"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "server",
- "containers"
- ],
- "additionalProperties": false
- }
- },
- "required": [
- "serverId",
- "metricsConfig"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.remove": {
- "post": {
- "operationId": "server-remove",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "serverId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "serverId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.update": {
- "post": {
- "operationId": "server-update",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string",
- "minLength": 1
- },
- "ipAddress": {
- "type": "string"
- },
- "port": {
- "type": "number"
- },
- "username": {
- "type": "string"
- },
- "sshKeyId": {
- "type": "string",
- "nullable": true
- },
- "serverType": {
- "type": "string",
- "enum": [
- "deploy",
- "build"
- ]
- },
- "command": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "serverId",
- "ipAddress",
- "port",
- "username",
- "sshKeyId",
- "serverType"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.publicIp": {
- "get": {
- "operationId": "server-publicIp",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.getServerTime": {
- "get": {
- "operationId": "server-getServerTime",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/server.getServerMetrics": {
- "get": {
- "operationId": "server-getServerMetrics",
- "tags": [
- "server"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "url",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "token",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "dataPoints",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/stripe.getProducts": {
- "get": {
- "operationId": "stripe-getProducts",
- "tags": [
- "stripe"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/stripe.createCheckoutSession": {
- "post": {
- "operationId": "stripe-createCheckoutSession",
- "tags": [
- "stripe"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "productId": {
- "type": "string"
- },
- "serverQuantity": {
- "type": "number",
- "minimum": 1
- },
- "isAnnual": {
- "type": "boolean"
- }
- },
- "required": [
- "productId",
- "serverQuantity",
- "isAnnual"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/stripe.createCustomerPortalSession": {
- "post": {
- "operationId": "stripe-createCustomerPortalSession",
- "tags": [
- "stripe"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/stripe.canCreateMoreServers": {
- "get": {
- "operationId": "stripe-canCreateMoreServers",
- "tags": [
- "stripe"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/swarm.getNodes": {
- "get": {
- "operationId": "swarm-getNodes",
- "tags": [
- "swarm"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/swarm.getNodeInfo": {
- "get": {
- "operationId": "swarm-getNodeInfo",
- "tags": [
- "swarm"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "nodeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/swarm.getNodeApps": {
- "get": {
- "operationId": "swarm-getNodeApps",
- "tags": [
- "swarm"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "serverId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.one": {
- "get": {
- "operationId": "ai-one",
- "tags": [
- "ai"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "aiId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.getModels": {
- "get": {
- "operationId": "ai-getModels",
- "tags": [
- "ai"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "apiUrl",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "apiKey",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.create": {
- "post": {
- "operationId": "ai-create",
- "tags": [
- "ai"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "apiUrl": {
- "type": "string",
- "format": "uri"
- },
- "apiKey": {
- "type": "string"
- },
- "model": {
- "type": "string",
- "minLength": 1
- },
- "isEnabled": {
- "type": "boolean"
- }
- },
- "required": [
- "name",
- "apiUrl",
- "apiKey",
- "model",
- "isEnabled"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.update": {
- "post": {
- "operationId": "ai-update",
- "tags": [
- "ai"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "aiId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "apiUrl": {
- "type": "string",
- "format": "uri"
- },
- "apiKey": {
- "type": "string"
- },
- "model": {
- "type": "string",
- "minLength": 1
- },
- "isEnabled": {
- "type": "boolean"
- },
- "createdAt": {
- "type": "string"
- }
- },
- "required": [
- "aiId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.getAll": {
- "get": {
- "operationId": "ai-getAll",
- "tags": [
- "ai"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.get": {
- "get": {
- "operationId": "ai-get",
- "tags": [
- "ai"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "aiId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.delete": {
- "post": {
- "operationId": "ai-delete",
- "tags": [
- "ai"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "aiId": {
- "type": "string"
- }
- },
- "required": [
- "aiId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.suggest": {
- "post": {
- "operationId": "ai-suggest",
- "tags": [
- "ai"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "aiId": {
- "type": "string"
- },
- "input": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- }
- },
- "required": [
- "aiId",
- "input"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/ai.deploy": {
- "post": {
- "operationId": "ai-deploy",
- "tags": [
- "ai"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "environmentId": {
- "type": "string",
- "minLength": 1
- },
- "id": {
- "type": "string",
- "minLength": 1
- },
- "dockerCompose": {
- "type": "string",
- "minLength": 1
- },
- "envVariables": {
- "type": "string"
- },
- "serverId": {
- "type": "string"
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string"
- },
- "domains": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "host": {
- "type": "string",
- "minLength": 1
- },
- "port": {
- "type": "number",
- "minimum": 1
- },
- "serviceName": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "host",
- "port",
- "serviceName"
- ],
- "additionalProperties": false
- }
- },
- "configFiles": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "filePath": {
- "type": "string",
- "minLength": 1
- },
- "content": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "filePath",
- "content"
- ],
- "additionalProperties": false
- }
- }
- },
- "required": [
- "environmentId",
- "id",
- "dockerCompose",
- "envVariables",
- "name",
- "description"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.create": {
- "post": {
- "operationId": "organization-create",
- "tags": [
- "organization"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "logo": {
- "type": "string"
- }
- },
- "required": [
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.all": {
- "get": {
- "operationId": "organization-all",
- "tags": [
- "organization"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.one": {
- "get": {
- "operationId": "organization-one",
- "tags": [
- "organization"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "organizationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.update": {
- "post": {
- "operationId": "organization-update",
- "tags": [
- "organization"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "organizationId": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "logo": {
- "type": "string"
- }
- },
- "required": [
- "organizationId",
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.delete": {
- "post": {
- "operationId": "organization-delete",
- "tags": [
- "organization"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "organizationId": {
- "type": "string"
- }
- },
- "required": [
- "organizationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.allInvitations": {
- "get": {
- "operationId": "organization-allInvitations",
- "tags": [
- "organization"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.removeInvitation": {
- "post": {
- "operationId": "organization-removeInvitation",
- "tags": [
- "organization"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "invitationId": {
- "type": "string"
- }
- },
- "required": [
- "invitationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/organization.setDefault": {
- "post": {
- "operationId": "organization-setDefault",
- "tags": [
- "organization"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "organizationId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "organizationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/schedule.create": {
- "post": {
- "operationId": "schedule-create",
- "tags": [
- "schedule"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "scheduleId": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "cronExpression": {
- "type": "string"
- },
- "appName": {
- "type": "string"
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "shellType": {
- "type": "string",
- "enum": [
- "bash",
- "sh"
- ]
- },
- "scheduleType": {
- "type": "string",
- "enum": [
- "application",
- "compose",
- "server",
- "dokploy-server"
- ]
- },
- "command": {
- "type": "string"
- },
- "script": {
- "type": "string",
- "nullable": true
- },
- "applicationId": {
- "type": "string",
- "nullable": true
- },
- "composeId": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string",
- "nullable": true
- },
- "userId": {
- "type": "string",
- "nullable": true
- },
- "enabled": {
- "type": "boolean"
- },
- "createdAt": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "cronExpression",
- "command"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/schedule.update": {
- "post": {
- "operationId": "schedule-update",
- "tags": [
- "schedule"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "scheduleId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string"
- },
- "cronExpression": {
- "type": "string"
- },
- "appName": {
- "type": "string"
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "shellType": {
- "type": "string",
- "enum": [
- "bash",
- "sh"
- ]
- },
- "scheduleType": {
- "type": "string",
- "enum": [
- "application",
- "compose",
- "server",
- "dokploy-server"
- ]
- },
- "command": {
- "type": "string"
- },
- "script": {
- "type": "string",
- "nullable": true
- },
- "applicationId": {
- "type": "string",
- "nullable": true
- },
- "composeId": {
- "type": "string",
- "nullable": true
- },
- "serverId": {
- "type": "string",
- "nullable": true
- },
- "userId": {
- "type": "string",
- "nullable": true
- },
- "enabled": {
- "type": "boolean"
- },
- "createdAt": {
- "type": "string"
- }
- },
- "required": [
- "scheduleId",
- "name",
- "cronExpression",
- "command"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/schedule.delete": {
- "post": {
- "operationId": "schedule-delete",
- "tags": [
- "schedule"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "scheduleId": {
- "type": "string"
- }
- },
- "required": [
- "scheduleId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/schedule.list": {
- "get": {
- "operationId": "schedule-list",
- "tags": [
- "schedule"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "id",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "scheduleType",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "enum": [
- "application",
- "compose",
- "server",
- "dokploy-server"
- ]
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/schedule.one": {
- "get": {
- "operationId": "schedule-one",
- "tags": [
- "schedule"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "scheduleId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/schedule.runManually": {
- "post": {
- "operationId": "schedule-runManually",
- "tags": [
- "schedule"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "scheduleId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "scheduleId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/rollback.delete": {
- "post": {
- "operationId": "rollback-delete",
- "tags": [
- "rollback"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "rollbackId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "rollbackId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/rollback.rollback": {
- "post": {
- "operationId": "rollback-rollback",
- "tags": [
- "rollback"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "rollbackId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "rollbackId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/volumeBackups.list": {
- "get": {
- "operationId": "volumeBackups-list",
- "tags": [
- "volumeBackups"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "id",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "volumeBackupType",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "enum": [
- "application",
- "postgres",
- "mysql",
- "mariadb",
- "mongo",
- "redis",
- "compose"
- ]
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/volumeBackups.create": {
- "post": {
- "operationId": "volumeBackups-create",
- "tags": [
- "volumeBackups"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "volumeName": {
- "type": "string"
- },
- "prefix": {
- "type": "string"
- },
- "serviceType": {
- "type": "string",
- "enum": [
- "application",
- "postgres",
- "mysql",
- "mariadb",
- "mongo",
- "redis",
- "compose"
- ]
- },
- "appName": {
- "type": "string"
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "turnOff": {
- "type": "boolean"
- },
- "cronExpression": {
- "type": "string"
- },
- "keepLatestCount": {
- "type": "number",
- "nullable": true
- },
- "enabled": {
- "type": "boolean",
- "nullable": true
- },
- "applicationId": {
- "type": "string",
- "nullable": true
- },
- "postgresId": {
- "type": "string",
- "nullable": true
- },
- "mariadbId": {
- "type": "string",
- "nullable": true
- },
- "mongoId": {
- "type": "string",
- "nullable": true
- },
- "mysqlId": {
- "type": "string",
- "nullable": true
- },
- "redisId": {
- "type": "string",
- "nullable": true
- },
- "composeId": {
- "type": "string",
- "nullable": true
- },
- "createdAt": {
- "type": "string"
- },
- "destinationId": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "volumeName",
- "prefix",
- "cronExpression",
- "destinationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/volumeBackups.one": {
- "get": {
- "operationId": "volumeBackups-one",
- "tags": [
- "volumeBackups"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "volumeBackupId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/volumeBackups.delete": {
- "post": {
- "operationId": "volumeBackups-delete",
- "tags": [
- "volumeBackups"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "volumeBackupId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "volumeBackupId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/volumeBackups.update": {
- "post": {
- "operationId": "volumeBackups-update",
- "tags": [
- "volumeBackups"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "volumeName": {
- "type": "string"
- },
- "prefix": {
- "type": "string"
- },
- "serviceType": {
- "type": "string",
- "enum": [
- "application",
- "postgres",
- "mysql",
- "mariadb",
- "mongo",
- "redis",
- "compose"
- ]
- },
- "appName": {
- "type": "string"
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "turnOff": {
- "type": "boolean"
- },
- "cronExpression": {
- "type": "string"
- },
- "keepLatestCount": {
- "type": "number",
- "nullable": true
- },
- "enabled": {
- "type": "boolean",
- "nullable": true
- },
- "applicationId": {
- "type": "string",
- "nullable": true
- },
- "postgresId": {
- "type": "string",
- "nullable": true
- },
- "mariadbId": {
- "type": "string",
- "nullable": true
- },
- "mongoId": {
- "type": "string",
- "nullable": true
- },
- "mysqlId": {
- "type": "string",
- "nullable": true
- },
- "redisId": {
- "type": "string",
- "nullable": true
- },
- "composeId": {
- "type": "string",
- "nullable": true
- },
- "createdAt": {
- "type": "string"
- },
- "destinationId": {
- "type": "string"
- },
- "volumeBackupId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "name",
- "volumeName",
- "prefix",
- "cronExpression",
- "destinationId",
- "volumeBackupId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/volumeBackups.runManually": {
- "post": {
- "operationId": "volumeBackups-runManually",
- "tags": [
- "volumeBackups"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "volumeBackupId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "volumeBackupId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/environment.create": {
- "post": {
- "operationId": "environment-create",
- "tags": [
- "environment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "projectId": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "projectId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/environment.one": {
- "get": {
- "operationId": "environment-one",
- "tags": [
- "environment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "environmentId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/environment.byProjectId": {
- "get": {
- "operationId": "environment-byProjectId",
- "tags": [
- "environment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "projectId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/environment.remove": {
- "post": {
- "operationId": "environment-remove",
- "tags": [
- "environment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "environmentId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "environmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/environment.update": {
- "post": {
- "operationId": "environment-update",
- "tags": [
- "environment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "environmentId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "createdAt": {
- "type": "string"
- },
- "env": {
- "type": "string"
- },
- "projectId": {
- "type": "string"
- }
- },
- "required": [
- "environmentId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/environment.duplicate": {
- "post": {
- "operationId": "environment-duplicate",
- "tags": [
- "environment"
- ],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "environmentId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "environmentId",
- "name"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- }
- },
- "components": {
- "securitySchemes": {
- "apiKey": {
- "type": "apiKey",
- "in": "header",
- "name": "x-api-key",
- "description": "API key authentication. Generate an API key from your Dokploy dashboard under Settings > API Keys."
- }
- },
- "responses": {
- "error": {
- "description": "Error response",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
- },
- "code": {
- "type": "string"
- },
- "issues": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
- }
- },
- "required": [
- "message"
- ],
- "additionalProperties": false
- }
- }
- },
- "required": [
- "message",
- "code"
- ],
- "additionalProperties": false
- }
- }
- }
- }
- }
- },
- "tags": [
- {
- "name": "admin"
- },
- {
- "name": "docker"
- },
- {
- "name": "compose"
- },
- {
- "name": "registry"
- },
- {
- "name": "cluster"
- },
- {
- "name": "user"
- },
- {
- "name": "domain"
- },
- {
- "name": "destination"
- },
- {
- "name": "backup"
- },
- {
- "name": "deployment"
- },
- {
- "name": "mounts"
- },
- {
- "name": "certificates"
- },
- {
- "name": "settings"
- },
- {
- "name": "security"
- },
- {
- "name": "redirects"
- },
- {
- "name": "port"
- },
- {
- "name": "project"
- },
- {
- "name": "application"
- },
- {
- "name": "mysql"
- },
- {
- "name": "postgres"
- },
- {
- "name": "redis"
- },
- {
- "name": "mongo"
- },
- {
- "name": "mariadb"
- },
- {
- "name": "sshRouter"
- },
- {
- "name": "gitProvider"
- },
- {
- "name": "bitbucket"
- },
- {
- "name": "github"
- },
- {
- "name": "gitlab"
- },
- {
- "name": "gitea"
- },
- {
- "name": "server"
- },
- {
- "name": "swarm"
- },
- {
- "name": "ai"
- },
- {
- "name": "organization"
- },
- {
- "name": "schedule"
- },
- {
- "name": "rollback"
- },
- {
- "name": "volumeBackups"
- },
- {
- "name": "environment"
- }
- ],
- "externalDocs": {
- "description": "Full documentation",
- "url": "https://docs.dokploy.com"
- },
- "security": [
- {
- "apiKey": []
- }
- ]
-}
\ No newline at end of file
+ "openapi": "3.0.3",
+ "info": {
+ "title": "Dokploy API",
+ "description": "Complete API documentation for Dokploy - Deploy applications, manage databases, and orchestrate your infrastructure. This API allows you to programmatically manage all aspects of your Dokploy instance.",
+ "version": "1.0.0",
+ "contact": {
+ "name": "Dokploy Team",
+ "url": "https://dokploy.com"
+ },
+ "license": {
+ "name": "Apache 2.0",
+ "url": "https://github.com/dokploy/dokploy/blob/canary/LICENSE"
+ }
+ },
+ "servers": [
+ {
+ "url": "https://your-dokploy-instance.com/api"
+ }
+ ],
+ "paths": {
+ "/admin.setupMonitoring": {
+ "post": {
+ "operationId": "admin-setupMonitoring",
+ "tags": ["admin"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "metricsConfig": {
+ "type": "object",
+ "properties": {
+ "server": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number",
+ "minimum": 2
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1
+ },
+ "token": {
+ "type": "string"
+ },
+ "urlCallback": {
+ "type": "string",
+ "format": "uri"
+ },
+ "retentionDays": {
+ "type": "number",
+ "minimum": 1
+ },
+ "cronJob": {
+ "type": "string",
+ "minLength": 1
+ },
+ "thresholds": {
+ "type": "object",
+ "properties": {
+ "cpu": {
+ "type": "number",
+ "minimum": 0
+ },
+ "memory": {
+ "type": "number",
+ "minimum": 0
+ }
+ },
+ "required": ["cpu", "memory"],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "refreshRate",
+ "port",
+ "token",
+ "urlCallback",
+ "retentionDays",
+ "cronJob",
+ "thresholds"
+ ],
+ "additionalProperties": false
+ },
+ "containers": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number",
+ "minimum": 2
+ },
+ "services": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "required": ["refreshRate", "services"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["server", "containers"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["metricsConfig"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getContainers": {
+ "get": {
+ "operationId": "docker-getContainers",
+ "tags": ["docker"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.restartContainer": {
+ "post": {
+ "operationId": "docker-restartContainer",
+ "tags": ["docker"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "containerId": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ "required": ["containerId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getConfig": {
+ "get": {
+ "operationId": "docker-getConfig",
+ "tags": ["docker"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "containerId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getContainersByAppNameMatch": {
+ "get": {
+ "operationId": "docker-getContainersByAppNameMatch",
+ "tags": ["docker"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appType",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "anyOf": [
+ {
+ "type": "string",
+ "enum": ["stack"]
+ },
+ {
+ "type": "string",
+ "enum": ["docker-compose"]
+ }
+ ]
+ }
+ },
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getContainersByAppLabel": {
+ "get": {
+ "operationId": "docker-getContainersByAppLabel",
+ "tags": ["docker"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "type",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "enum": ["standalone", "swarm"]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getStackContainersByAppName": {
+ "get": {
+ "operationId": "docker-getStackContainersByAppName",
+ "tags": ["docker"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/docker.getServiceContainersByAppName": {
+ "get": {
+ "operationId": "docker-getServiceContainersByAppName",
+ "tags": ["docker"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9.\\-_]+$"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.create": {
+ "post": {
+ "operationId": "project-create",
+ "tags": ["project"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string"
+ }
+ },
+ "required": ["name"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.one": {
+ "get": {
+ "operationId": "project-one",
+ "tags": ["project"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.all": {
+ "get": {
+ "operationId": "project-all",
+ "tags": ["project"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.remove": {
+ "post": {
+ "operationId": "project-remove",
+ "tags": ["project"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "projectId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["projectId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.update": {
+ "post": {
+ "operationId": "project-update",
+ "tags": ["project"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "projectId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "organizationId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string"
+ }
+ },
+ "required": ["projectId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/project.duplicate": {
+ "post": {
+ "operationId": "project-duplicate",
+ "tags": ["project"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "sourceEnvironmentId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "includeServices": {
+ "type": "boolean",
+ "default": true
+ },
+ "selectedServices": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mariadb",
+ "mongo",
+ "mysql",
+ "redis",
+ "compose"
+ ]
+ }
+ },
+ "required": ["id", "type"],
+ "additionalProperties": false
+ }
+ },
+ "duplicateInSameProject": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ "required": ["sourceEnvironmentId", "name"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.create": {
+ "post": {
+ "operationId": "application-create",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["name", "environmentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.one": {
+ "get": {
+ "operationId": "application-one",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.reload": {
+ "post": {
+ "operationId": "application-reload",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appName": {
+ "type": "string"
+ },
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": ["appName", "applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.delete": {
+ "post": {
+ "operationId": "application-delete",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.stop": {
+ "post": {
+ "operationId": "application-stop",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.start": {
+ "post": {
+ "operationId": "application-start",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.redeploy": {
+ "post": {
+ "operationId": "application-redeploy",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveEnvironment": {
+ "post": {
+ "operationId": "application-saveEnvironment",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildArgs": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildSecrets": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveBuildType": {
+ "post": {
+ "operationId": "application-saveBuildType",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "buildType": {
+ "type": "string",
+ "enum": [
+ "dockerfile",
+ "heroku_buildpacks",
+ "paketo_buildpacks",
+ "nixpacks",
+ "static",
+ "railpack"
+ ]
+ },
+ "dockerfile": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerContextPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerBuildStage": {
+ "type": "string",
+ "nullable": true
+ },
+ "herokuVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "railpackVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "publishDirectory": {
+ "type": "string",
+ "nullable": true
+ },
+ "isStaticSpa": {
+ "type": "boolean",
+ "nullable": true
+ }
+ },
+ "required": [
+ "applicationId",
+ "buildType",
+ "dockerContextPath",
+ "dockerBuildStage"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveGithubProvider": {
+ "post": {
+ "operationId": "application-saveGithubProvider",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "repository": {
+ "type": "string",
+ "nullable": true
+ },
+ "branch": {
+ "type": "string",
+ "nullable": true
+ },
+ "owner": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubId": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ },
+ "triggerType": {
+ "type": "string",
+ "enum": ["push", "tag"],
+ "default": "push"
+ }
+ },
+ "required": [
+ "applicationId",
+ "owner",
+ "githubId",
+ "enableSubmodules"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveGitlabProvider": {
+ "post": {
+ "operationId": "application-saveGitlabProvider",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "gitlabBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabId": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabProjectId": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitlabPathNamespace": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "applicationId",
+ "gitlabBranch",
+ "gitlabBuildPath",
+ "gitlabOwner",
+ "gitlabRepository",
+ "gitlabId",
+ "gitlabProjectId",
+ "gitlabPathNamespace",
+ "enableSubmodules"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveBitbucketProvider": {
+ "post": {
+ "operationId": "application-saveBitbucketProvider",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "bitbucketBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketId": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "bitbucketBranch",
+ "bitbucketBuildPath",
+ "bitbucketOwner",
+ "bitbucketRepository",
+ "bitbucketId",
+ "applicationId",
+ "enableSubmodules"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveGiteaProvider": {
+ "post": {
+ "operationId": "application-saveGiteaProvider",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "giteaBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaId": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "applicationId",
+ "giteaBranch",
+ "giteaBuildPath",
+ "giteaOwner",
+ "giteaRepository",
+ "giteaId",
+ "enableSubmodules"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveDockerProvider": {
+ "post": {
+ "operationId": "application-saveDockerProvider",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "dockerImage": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string",
+ "nullable": true
+ },
+ "password": {
+ "type": "string",
+ "nullable": true
+ },
+ "registryUrl": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.saveGitProvider": {
+ "post": {
+ "operationId": "application-saveGitProvider",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "customGitBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "customGitBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ },
+ "customGitSSHKeyId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["applicationId", "enableSubmodules"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.disconnectGitProvider": {
+ "post": {
+ "operationId": "application-disconnectGitProvider",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.markRunning": {
+ "post": {
+ "operationId": "application-markRunning",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.update": {
+ "post": {
+ "operationId": "application-update",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewEnv": {
+ "type": "string",
+ "nullable": true
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "previewBuildArgs": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewBuildSecrets": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewLabels": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "previewWildcard": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "previewHttps": {
+ "type": "boolean"
+ },
+ "previewPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewCertificateType": {
+ "type": "string",
+ "enum": ["letsencrypt", "none", "custom"]
+ },
+ "previewCustomCertResolver": {
+ "type": "string",
+ "nullable": true
+ },
+ "previewLimit": {
+ "type": "number",
+ "nullable": true
+ },
+ "isPreviewDeploymentsActive": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "previewRequireCollaboratorPermissions": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "rollbackActive": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "buildArgs": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildSecrets": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "subtitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "refreshToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "sourceType": {
+ "type": "string",
+ "enum": [
+ "github",
+ "docker",
+ "git",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "drop"
+ ]
+ },
+ "cleanCache": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "repository": {
+ "type": "string",
+ "nullable": true
+ },
+ "owner": {
+ "type": "string",
+ "nullable": true
+ },
+ "branch": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "triggerType": {
+ "type": "string",
+ "enum": ["push", "tag"],
+ "nullable": true
+ },
+ "autoDeploy": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "gitlabProjectId": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitlabRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabPathNamespace": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "username": {
+ "type": "string",
+ "nullable": true
+ },
+ "password": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerImage": {
+ "type": "string",
+ "nullable": true
+ },
+ "registryUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitSSHKeyId": {
+ "type": "string",
+ "nullable": true
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ },
+ "dockerfile": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerContextPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerBuildStage": {
+ "type": "string",
+ "nullable": true
+ },
+ "dropBuildPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": ["SpreadDescriptor"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["Spread"],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": ["Architecture", "OS"],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ },
+ "buildType": {
+ "type": "string",
+ "enum": [
+ "dockerfile",
+ "heroku_buildpacks",
+ "paketo_buildpacks",
+ "nixpacks",
+ "static",
+ "railpack"
+ ]
+ },
+ "railpackVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "herokuVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "publishDirectory": {
+ "type": "string",
+ "nullable": true
+ },
+ "isStaticSpa": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "registryId": {
+ "type": "string",
+ "nullable": true
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "githubId": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabId": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaId": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketId": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildServerId": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildRegistryId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.refreshToken": {
+ "post": {
+ "operationId": "application-refreshToken",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.deploy": {
+ "post": {
+ "operationId": "application-deploy",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.cleanQueues": {
+ "post": {
+ "operationId": "application-cleanQueues",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.killBuild": {
+ "post": {
+ "operationId": "application-killBuild",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.readTraefikConfig": {
+ "get": {
+ "operationId": "application-readTraefikConfig",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.updateTraefikConfig": {
+ "post": {
+ "operationId": "application-updateTraefikConfig",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "traefikConfig": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId", "traefikConfig"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.readAppMonitoring": {
+ "get": {
+ "operationId": "application-readAppMonitoring",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.move": {
+ "post": {
+ "operationId": "application-move",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId", "targetEnvironmentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/application.cancelDeployment": {
+ "post": {
+ "operationId": "application-cancelDeployment",
+ "tags": ["application"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": ["applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.create": {
+ "post": {
+ "operationId": "mysql-create",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mysql:8"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "databaseRootPassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "environmentId",
+ "databaseName",
+ "databaseUser",
+ "databasePassword",
+ "databaseRootPassword"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.one": {
+ "get": {
+ "operationId": "mysql-one",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "mysqlId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.start": {
+ "post": {
+ "operationId": "mysql-start",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": ["mysqlId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.stop": {
+ "post": {
+ "operationId": "mysql-stop",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": ["mysqlId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.saveExternalPort": {
+ "post": {
+ "operationId": "mysql-saveExternalPort",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": ["mysqlId", "externalPort"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.deploy": {
+ "post": {
+ "operationId": "mysql-deploy",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": ["mysqlId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.changeStatus": {
+ "post": {
+ "operationId": "mysql-changeStatus",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ }
+ },
+ "required": ["mysqlId", "applicationStatus"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.reload": {
+ "post": {
+ "operationId": "mysql-reload",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["mysqlId", "appName"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.remove": {
+ "post": {
+ "operationId": "mysql-remove",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": ["mysqlId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.saveEnvironment": {
+ "post": {
+ "operationId": "mysql-saveEnvironment",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["mysqlId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.update": {
+ "post": {
+ "operationId": "mysql-update",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "databaseRootPassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mysql:8"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": ["SpreadDescriptor"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["Spread"],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": ["Architecture", "OS"],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "environmentId": {
+ "type": "string"
+ }
+ },
+ "required": ["mysqlId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.move": {
+ "post": {
+ "operationId": "mysql-move",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": ["mysqlId", "targetEnvironmentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mysql.rebuild": {
+ "post": {
+ "operationId": "mysql-rebuild",
+ "tags": ["mysql"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mysqlId": {
+ "type": "string"
+ }
+ },
+ "required": ["mysqlId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.create": {
+ "post": {
+ "operationId": "postgres-create",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "postgres:15"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "databaseName",
+ "databaseUser",
+ "databasePassword",
+ "environmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.one": {
+ "get": {
+ "operationId": "postgres-one",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "postgresId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.start": {
+ "post": {
+ "operationId": "postgres-start",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": ["postgresId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.stop": {
+ "post": {
+ "operationId": "postgres-stop",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": ["postgresId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.saveExternalPort": {
+ "post": {
+ "operationId": "postgres-saveExternalPort",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": ["postgresId", "externalPort"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.deploy": {
+ "post": {
+ "operationId": "postgres-deploy",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": ["postgresId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.changeStatus": {
+ "post": {
+ "operationId": "postgres-changeStatus",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ }
+ },
+ "required": ["postgresId", "applicationStatus"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.remove": {
+ "post": {
+ "operationId": "postgres-remove",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": ["postgresId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.saveEnvironment": {
+ "post": {
+ "operationId": "postgres-saveEnvironment",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["postgresId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.reload": {
+ "post": {
+ "operationId": "postgres-reload",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string"
+ }
+ },
+ "required": ["postgresId", "appName"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.update": {
+ "post": {
+ "operationId": "postgres-update",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "postgres:15"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": ["SpreadDescriptor"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["Spread"],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": ["Architecture", "OS"],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "environmentId": {
+ "type": "string"
+ }
+ },
+ "required": ["postgresId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.move": {
+ "post": {
+ "operationId": "postgres-move",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": ["postgresId", "targetEnvironmentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/postgres.rebuild": {
+ "post": {
+ "operationId": "postgres-rebuild",
+ "tags": ["postgres"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "postgresId": {
+ "type": "string"
+ }
+ },
+ "required": ["postgresId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.create": {
+ "post": {
+ "operationId": "redis-create",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "redis:8"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "databasePassword",
+ "environmentId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.one": {
+ "get": {
+ "operationId": "redis-one",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "redisId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.start": {
+ "post": {
+ "operationId": "redis-start",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": ["redisId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.reload": {
+ "post": {
+ "operationId": "redis-reload",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["redisId", "appName"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.stop": {
+ "post": {
+ "operationId": "redis-stop",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": ["redisId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.saveExternalPort": {
+ "post": {
+ "operationId": "redis-saveExternalPort",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": ["redisId", "externalPort"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.deploy": {
+ "post": {
+ "operationId": "redis-deploy",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": ["redisId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.changeStatus": {
+ "post": {
+ "operationId": "redis-changeStatus",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ }
+ },
+ "required": ["redisId", "applicationStatus"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.remove": {
+ "post": {
+ "operationId": "redis-remove",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": ["redisId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.saveEnvironment": {
+ "post": {
+ "operationId": "redis-saveEnvironment",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["redisId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.update": {
+ "post": {
+ "operationId": "redis-update",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databasePassword": {
+ "type": "string"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "redis:8"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": ["SpreadDescriptor"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["Spread"],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": ["Architecture", "OS"],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "environmentId": {
+ "type": "string"
+ }
+ },
+ "required": ["redisId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.move": {
+ "post": {
+ "operationId": "redis-move",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": ["redisId", "targetEnvironmentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redis.rebuild": {
+ "post": {
+ "operationId": "redis-rebuild",
+ "tags": ["redis"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redisId": {
+ "type": "string"
+ }
+ },
+ "required": ["redisId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.create": {
+ "post": {
+ "operationId": "mongo-create",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mongo:15"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ },
+ "replicaSets": {
+ "type": "boolean",
+ "default": false,
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "environmentId",
+ "databaseUser",
+ "databasePassword"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.one": {
+ "get": {
+ "operationId": "mongo-one",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "mongoId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.start": {
+ "post": {
+ "operationId": "mongo-start",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": ["mongoId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.stop": {
+ "post": {
+ "operationId": "mongo-stop",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": ["mongoId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.saveExternalPort": {
+ "post": {
+ "operationId": "mongo-saveExternalPort",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": ["mongoId", "externalPort"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.deploy": {
+ "post": {
+ "operationId": "mongo-deploy",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": ["mongoId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.changeStatus": {
+ "post": {
+ "operationId": "mongo-changeStatus",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ }
+ },
+ "required": ["mongoId", "applicationStatus"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.reload": {
+ "post": {
+ "operationId": "mongo-reload",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["mongoId", "appName"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.remove": {
+ "post": {
+ "operationId": "mongo-remove",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": ["mongoId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.saveEnvironment": {
+ "post": {
+ "operationId": "mongo-saveEnvironment",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["mongoId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.update": {
+ "post": {
+ "operationId": "mongo-update",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mongo:15"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": ["SpreadDescriptor"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["Spread"],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": ["Architecture", "OS"],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "replicaSets": {
+ "type": "boolean",
+ "default": false,
+ "nullable": true
+ }
+ },
+ "required": ["mongoId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.move": {
+ "post": {
+ "operationId": "mongo-move",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": ["mongoId", "targetEnvironmentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mongo.rebuild": {
+ "post": {
+ "operationId": "mongo-rebuild",
+ "tags": ["mongo"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mongoId": {
+ "type": "string"
+ }
+ },
+ "required": ["mongoId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.create": {
+ "post": {
+ "operationId": "mariadb-create",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mariadb:6"
+ },
+ "databaseRootPassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "appName",
+ "databaseRootPassword",
+ "environmentId",
+ "databaseName",
+ "databaseUser",
+ "databasePassword"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.one": {
+ "get": {
+ "operationId": "mariadb-one",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "mariadbId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.start": {
+ "post": {
+ "operationId": "mariadb-start",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": ["mariadbId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.stop": {
+ "post": {
+ "operationId": "mariadb-stop",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": ["mariadbId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.saveExternalPort": {
+ "post": {
+ "operationId": "mariadb-saveExternalPort",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ }
+ },
+ "required": ["mariadbId", "externalPort"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.deploy": {
+ "post": {
+ "operationId": "mariadb-deploy",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": ["mariadbId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.changeStatus": {
+ "post": {
+ "operationId": "mariadb-changeStatus",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ }
+ },
+ "required": ["mariadbId", "applicationStatus"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.remove": {
+ "post": {
+ "operationId": "mariadb-remove",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": ["mariadbId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.saveEnvironment": {
+ "post": {
+ "operationId": "mariadb-saveEnvironment",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["mariadbId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.reload": {
+ "post": {
+ "operationId": "mariadb-reload",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["mariadbId", "appName"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.update": {
+ "post": {
+ "operationId": "mariadb-update",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databaseUser": {
+ "type": "string",
+ "minLength": 1
+ },
+ "databasePassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "databaseRootPassword": {
+ "type": "string",
+ "pattern": "^[a-zA-Z0-9@#%^&*()_+\\-=[\\]{}|;:,.<>?~`]*$"
+ },
+ "dockerImage": {
+ "type": "string",
+ "default": "mariadb:6"
+ },
+ "command": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "memoryLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuReservation": {
+ "type": "string",
+ "nullable": true
+ },
+ "cpuLimit": {
+ "type": "string",
+ "nullable": true
+ },
+ "externalPort": {
+ "type": "number",
+ "nullable": true
+ },
+ "applicationStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ },
+ "healthCheckSwarm": {
+ "type": "object",
+ "properties": {
+ "Test": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Interval": {
+ "type": "number"
+ },
+ "Timeout": {
+ "type": "number"
+ },
+ "StartPeriod": {
+ "type": "number"
+ },
+ "Retries": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "restartPolicySwarm": {
+ "type": "object",
+ "properties": {
+ "Condition": {
+ "type": "string"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "MaxAttempts": {
+ "type": "number"
+ },
+ "Window": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "placementSwarm": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Preferences": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Spread": {
+ "type": "object",
+ "properties": {
+ "SpreadDescriptor": {
+ "type": "string"
+ }
+ },
+ "required": ["SpreadDescriptor"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["Spread"],
+ "additionalProperties": false
+ }
+ },
+ "MaxReplicas": {
+ "type": "number"
+ },
+ "Platforms": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Architecture": {
+ "type": "string"
+ },
+ "OS": {
+ "type": "string"
+ }
+ },
+ "required": ["Architecture", "OS"],
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "updateConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "rollbackConfigSwarm": {
+ "type": "object",
+ "properties": {
+ "Parallelism": {
+ "type": "number"
+ },
+ "Delay": {
+ "type": "number"
+ },
+ "FailureAction": {
+ "type": "string"
+ },
+ "Monitor": {
+ "type": "number"
+ },
+ "MaxFailureRatio": {
+ "type": "number"
+ },
+ "Order": {
+ "type": "string"
+ }
+ },
+ "required": ["Parallelism", "Order"],
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "modeSwarm": {
+ "type": "object",
+ "properties": {
+ "Replicated": {
+ "type": "object",
+ "properties": {
+ "Replicas": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Global": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ },
+ "ReplicatedJob": {
+ "type": "object",
+ "properties": {
+ "MaxConcurrent": {
+ "type": "number"
+ },
+ "TotalCompletions": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "GlobalJob": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "labelsSwarm": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "networkSwarm": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ },
+ "Aliases": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DriverOpts": {
+ "type": "object",
+ "properties": {},
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "nullable": true
+ },
+ "stopGracePeriodSwarm": {
+ "type": "integer",
+ "nullable": true
+ },
+ "endpointSpecSwarm": {
+ "type": "object",
+ "properties": {
+ "Mode": {
+ "type": "string"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "Protocol": {
+ "type": "string"
+ },
+ "TargetPort": {
+ "type": "number"
+ },
+ "PublishedPort": {
+ "type": "number"
+ },
+ "PublishMode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false,
+ "nullable": true
+ },
+ "replicas": {
+ "type": "number"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "environmentId": {
+ "type": "string"
+ }
+ },
+ "required": ["mariadbId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.move": {
+ "post": {
+ "operationId": "mariadb-move",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": ["mariadbId", "targetEnvironmentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mariadb.rebuild": {
+ "post": {
+ "operationId": "mariadb-rebuild",
+ "tags": ["mariadb"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mariadbId": {
+ "type": "string"
+ }
+ },
+ "required": ["mariadbId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.create": {
+ "post": {
+ "operationId": "compose-create",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "composeType": {
+ "type": "string",
+ "enum": ["docker-compose", "stack"]
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeFile": {
+ "type": "string"
+ }
+ },
+ "required": ["name", "environmentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.one": {
+ "get": {
+ "operationId": "compose-one",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.update": {
+ "post": {
+ "operationId": "compose-update",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appName": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "env": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeFile": {
+ "type": "string"
+ },
+ "refreshToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "sourceType": {
+ "type": "string",
+ "enum": [
+ "git",
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "raw"
+ ]
+ },
+ "composeType": {
+ "type": "string",
+ "enum": ["docker-compose", "stack"]
+ },
+ "repository": {
+ "type": "string",
+ "nullable": true
+ },
+ "owner": {
+ "type": "string",
+ "nullable": true
+ },
+ "branch": {
+ "type": "string",
+ "nullable": true
+ },
+ "autoDeploy": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "gitlabProjectId": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitlabRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabPathNamespace": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaRepository": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaOwner": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitBranch": {
+ "type": "string",
+ "nullable": true
+ },
+ "customGitSSHKeyId": {
+ "type": "string",
+ "nullable": true
+ },
+ "command": {
+ "type": "string"
+ },
+ "enableSubmodules": {
+ "type": "boolean"
+ },
+ "composePath": {
+ "type": "string",
+ "minLength": 1
+ },
+ "suffix": {
+ "type": "string"
+ },
+ "randomize": {
+ "type": "boolean"
+ },
+ "isolatedDeployment": {
+ "type": "boolean"
+ },
+ "isolatedDeploymentsVolume": {
+ "type": "boolean"
+ },
+ "triggerType": {
+ "type": "string",
+ "enum": ["push", "tag"],
+ "nullable": true
+ },
+ "composeStatus": {
+ "type": "string",
+ "enum": ["idle", "running", "done", "error"]
+ },
+ "environmentId": {
+ "type": "string"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "watchPaths": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "githubId": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitlabId": {
+ "type": "string",
+ "nullable": true
+ },
+ "bitbucketId": {
+ "type": "string",
+ "nullable": true
+ },
+ "giteaId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.delete": {
+ "post": {
+ "operationId": "compose-delete",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "deleteVolumes": {
+ "type": "boolean"
+ }
+ },
+ "required": ["composeId", "deleteVolumes"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.cleanQueues": {
+ "post": {
+ "operationId": "compose-cleanQueues",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.killBuild": {
+ "post": {
+ "operationId": "compose-killBuild",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.loadServices": {
+ "get": {
+ "operationId": "compose-loadServices",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "type",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "anyOf": [
+ {
+ "not": {}
+ },
+ {
+ "type": "string",
+ "enum": ["fetch", "cache"]
+ }
+ ],
+ "default": "cache"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.loadMountsByService": {
+ "get": {
+ "operationId": "compose-loadMountsByService",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "serviceName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.fetchSourceType": {
+ "post": {
+ "operationId": "compose-fetchSourceType",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.randomizeCompose": {
+ "post": {
+ "operationId": "compose-randomizeCompose",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "suffix": {
+ "type": "string"
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.isolatedDeployment": {
+ "post": {
+ "operationId": "compose-isolatedDeployment",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "suffix": {
+ "type": "string"
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.getConvertedCompose": {
+ "get": {
+ "operationId": "compose-getConvertedCompose",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.deploy": {
+ "post": {
+ "operationId": "compose-deploy",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.redeploy": {
+ "post": {
+ "operationId": "compose-redeploy",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.stop": {
+ "post": {
+ "operationId": "compose-stop",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.start": {
+ "post": {
+ "operationId": "compose-start",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.getDefaultCommand": {
+ "get": {
+ "operationId": "compose-getDefaultCommand",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.refreshToken": {
+ "post": {
+ "operationId": "compose-refreshToken",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.deployTemplate": {
+ "post": {
+ "operationId": "compose-deployTemplate",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "baseUrl": {
+ "type": "string"
+ }
+ },
+ "required": ["environmentId", "id"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.templates": {
+ "get": {
+ "operationId": "compose-templates",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "baseUrl",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.getTags": {
+ "get": {
+ "operationId": "compose-getTags",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "baseUrl",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.disconnectGitProvider": {
+ "post": {
+ "operationId": "compose-disconnectGitProvider",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.move": {
+ "post": {
+ "operationId": "compose-move",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string"
+ },
+ "targetEnvironmentId": {
+ "type": "string"
+ }
+ },
+ "required": ["composeId", "targetEnvironmentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.processTemplate": {
+ "post": {
+ "operationId": "compose-processTemplate",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "base64": {
+ "type": "string"
+ },
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["base64", "composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.import": {
+ "post": {
+ "operationId": "compose-import",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "base64": {
+ "type": "string"
+ },
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["base64", "composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/compose.cancelDeployment": {
+ "post": {
+ "operationId": "compose-cancelDeployment",
+ "tags": ["compose"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "composeId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["composeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.all": {
+ "get": {
+ "operationId": "user-all",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.one": {
+ "get": {
+ "operationId": "user-one",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "userId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.get": {
+ "get": {
+ "operationId": "user-get",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.haveRootAccess": {
+ "get": {
+ "operationId": "user-haveRootAccess",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getBackups": {
+ "get": {
+ "operationId": "user-getBackups",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getServerMetrics": {
+ "get": {
+ "operationId": "user-getServerMetrics",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.update": {
+ "post": {
+ "operationId": "user-update",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string"
+ },
+ "isRegistered": {
+ "type": "boolean"
+ },
+ "expirationDate": {
+ "type": "string"
+ },
+ "createdAt2": {
+ "type": "string"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "twoFactorEnabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "email": {
+ "type": "string",
+ "format": "email",
+ "minLength": 1
+ },
+ "emailVerified": {
+ "type": "boolean"
+ },
+ "image": {
+ "type": "string",
+ "nullable": true
+ },
+ "banned": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "banReason": {
+ "type": "string",
+ "nullable": true
+ },
+ "banExpires": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "updatedAt": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "serverIp": {
+ "type": "string",
+ "nullable": true
+ },
+ "certificateType": {
+ "type": "string",
+ "enum": ["letsencrypt", "none", "custom"]
+ },
+ "https": {
+ "type": "boolean"
+ },
+ "host": {
+ "type": "string",
+ "nullable": true
+ },
+ "letsEncryptEmail": {
+ "type": "string",
+ "nullable": true
+ },
+ "sshPrivateKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "enableDockerCleanup": {
+ "type": "boolean"
+ },
+ "logCleanupCron": {
+ "type": "string",
+ "nullable": true
+ },
+ "enablePaidFeatures": {
+ "type": "boolean"
+ },
+ "allowImpersonation": {
+ "type": "boolean"
+ },
+ "metricsConfig": {
+ "type": "object",
+ "properties": {
+ "server": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": ["Dokploy", "Remote"]
+ },
+ "refreshRate": {
+ "type": "number"
+ },
+ "port": {
+ "type": "number"
+ },
+ "token": {
+ "type": "string"
+ },
+ "urlCallback": {
+ "type": "string"
+ },
+ "retentionDays": {
+ "type": "number"
+ },
+ "cronJob": {
+ "type": "string"
+ },
+ "thresholds": {
+ "type": "object",
+ "properties": {
+ "cpu": {
+ "type": "number"
+ },
+ "memory": {
+ "type": "number"
+ }
+ },
+ "required": ["cpu", "memory"],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "type",
+ "refreshRate",
+ "port",
+ "token",
+ "urlCallback",
+ "retentionDays",
+ "cronJob",
+ "thresholds"
+ ],
+ "additionalProperties": false
+ },
+ "containers": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number"
+ },
+ "services": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": ["include", "exclude"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["refreshRate", "services"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["server", "containers"],
+ "additionalProperties": false
+ },
+ "cleanupCacheApplications": {
+ "type": "boolean"
+ },
+ "cleanupCacheOnPreviews": {
+ "type": "boolean"
+ },
+ "cleanupCacheOnCompose": {
+ "type": "boolean"
+ },
+ "stripeCustomerId": {
+ "type": "string",
+ "nullable": true
+ },
+ "stripeSubscriptionId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serversQuantity": {
+ "type": "number"
+ },
+ "password": {
+ "type": "string"
+ },
+ "currentPassword": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getUserByToken": {
+ "get": {
+ "operationId": "user-getUserByToken",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "token",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getMetricsToken": {
+ "get": {
+ "operationId": "user-getMetricsToken",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.remove": {
+ "post": {
+ "operationId": "user-remove",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string"
+ }
+ },
+ "required": ["userId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.assignPermissions": {
+ "post": {
+ "operationId": "user-assignPermissions",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessedProjects": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "accessedEnvironments": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "accessedServices": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "canCreateProjects": {
+ "type": "boolean"
+ },
+ "canCreateServices": {
+ "type": "boolean"
+ },
+ "canDeleteProjects": {
+ "type": "boolean"
+ },
+ "canDeleteServices": {
+ "type": "boolean"
+ },
+ "canAccessToDocker": {
+ "type": "boolean"
+ },
+ "canAccessToTraefikFiles": {
+ "type": "boolean"
+ },
+ "canAccessToAPI": {
+ "type": "boolean"
+ },
+ "canAccessToSSHKeys": {
+ "type": "boolean"
+ },
+ "canAccessToGitProviders": {
+ "type": "boolean"
+ },
+ "canDeleteEnvironments": {
+ "type": "boolean"
+ },
+ "canCreateEnvironments": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "id",
+ "accessedProjects",
+ "accessedEnvironments",
+ "accessedServices",
+ "canCreateProjects",
+ "canCreateServices",
+ "canDeleteProjects",
+ "canDeleteServices",
+ "canAccessToDocker",
+ "canAccessToTraefikFiles",
+ "canAccessToAPI",
+ "canAccessToSSHKeys",
+ "canAccessToGitProviders",
+ "canDeleteEnvironments",
+ "canCreateEnvironments"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getInvitations": {
+ "get": {
+ "operationId": "user-getInvitations",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.getContainerMetrics": {
+ "get": {
+ "operationId": "user-getContainerMetrics",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "url",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "token",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "appName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "dataPoints",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.generateToken": {
+ "post": {
+ "operationId": "user-generateToken",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.deleteApiKey": {
+ "post": {
+ "operationId": "user-deleteApiKey",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "apiKeyId": {
+ "type": "string"
+ }
+ },
+ "required": ["apiKeyId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.createApiKey": {
+ "post": {
+ "operationId": "user-createApiKey",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "prefix": {
+ "type": "string"
+ },
+ "expiresIn": {
+ "type": "number"
+ },
+ "metadata": {
+ "type": "object",
+ "properties": {
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": ["organizationId"],
+ "additionalProperties": false
+ },
+ "rateLimitEnabled": {
+ "type": "boolean"
+ },
+ "rateLimitTimeWindow": {
+ "type": "number"
+ },
+ "rateLimitMax": {
+ "type": "number"
+ },
+ "remaining": {
+ "type": "number"
+ },
+ "refillAmount": {
+ "type": "number"
+ },
+ "refillInterval": {
+ "type": "number"
+ }
+ },
+ "required": ["name", "metadata"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.checkUserOrganizations": {
+ "get": {
+ "operationId": "user-checkUserOrganizations",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "userId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/user.sendInvitation": {
+ "post": {
+ "operationId": "user-sendInvitation",
+ "tags": ["user"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "invitationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["invitationId", "notificationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.create": {
+ "post": {
+ "operationId": "domain-create",
+ "tags": ["domain"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "minLength": 1
+ },
+ "path": {
+ "type": "string",
+ "minLength": 1,
+ "nullable": true
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1,
+ "maximum": 65535,
+ "nullable": true
+ },
+ "https": {
+ "type": "boolean"
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "certificateType": {
+ "type": "string",
+ "enum": ["letsencrypt", "none", "custom"]
+ },
+ "customCertResolver": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "domainType": {
+ "type": "string",
+ "enum": ["compose", "application", "preview"],
+ "nullable": true
+ },
+ "previewDeploymentId": {
+ "type": "string",
+ "nullable": true
+ },
+ "internalPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "stripPath": {
+ "type": "boolean"
+ }
+ },
+ "required": ["host"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.byApplicationId": {
+ "get": {
+ "operationId": "domain-byApplicationId",
+ "tags": ["domain"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.byComposeId": {
+ "get": {
+ "operationId": "domain-byComposeId",
+ "tags": ["domain"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.generateDomain": {
+ "post": {
+ "operationId": "domain-generateDomain",
+ "tags": ["domain"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appName": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": ["appName"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.canGenerateTraefikMeDomains": {
+ "get": {
+ "operationId": "domain-canGenerateTraefikMeDomains",
+ "tags": ["domain"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.update": {
+ "post": {
+ "operationId": "domain-update",
+ "tags": ["domain"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "minLength": 1
+ },
+ "path": {
+ "type": "string",
+ "minLength": 1,
+ "nullable": true
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1,
+ "maximum": 65535,
+ "nullable": true
+ },
+ "https": {
+ "type": "boolean"
+ },
+ "certificateType": {
+ "type": "string",
+ "enum": ["letsencrypt", "none", "custom"]
+ },
+ "customCertResolver": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "domainType": {
+ "type": "string",
+ "enum": ["compose", "application", "preview"],
+ "nullable": true
+ },
+ "internalPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "stripPath": {
+ "type": "boolean"
+ },
+ "domainId": {
+ "type": "string"
+ }
+ },
+ "required": ["host", "domainId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.one": {
+ "get": {
+ "operationId": "domain-one",
+ "tags": ["domain"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "domainId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.delete": {
+ "post": {
+ "operationId": "domain-delete",
+ "tags": ["domain"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "domainId": {
+ "type": "string"
+ }
+ },
+ "required": ["domainId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/domain.validateDomain": {
+ "post": {
+ "operationId": "domain-validateDomain",
+ "tags": ["domain"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "domain": {
+ "type": "string"
+ },
+ "serverIp": {
+ "type": "string"
+ }
+ },
+ "required": ["domain"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.create": {
+ "post": {
+ "operationId": "destination-create",
+ "tags": ["destination"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "provider": {
+ "type": "string",
+ "nullable": true
+ },
+ "accessKey": {
+ "type": "string"
+ },
+ "bucket": {
+ "type": "string"
+ },
+ "region": {
+ "type": "string"
+ },
+ "endpoint": {
+ "type": "string"
+ },
+ "secretAccessKey": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "provider",
+ "accessKey",
+ "bucket",
+ "region",
+ "endpoint",
+ "secretAccessKey"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.testConnection": {
+ "post": {
+ "operationId": "destination-testConnection",
+ "tags": ["destination"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "provider": {
+ "type": "string",
+ "nullable": true
+ },
+ "accessKey": {
+ "type": "string"
+ },
+ "bucket": {
+ "type": "string"
+ },
+ "region": {
+ "type": "string"
+ },
+ "endpoint": {
+ "type": "string"
+ },
+ "secretAccessKey": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "provider",
+ "accessKey",
+ "bucket",
+ "region",
+ "endpoint",
+ "secretAccessKey"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.one": {
+ "get": {
+ "operationId": "destination-one",
+ "tags": ["destination"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "destinationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.all": {
+ "get": {
+ "operationId": "destination-all",
+ "tags": ["destination"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.remove": {
+ "post": {
+ "operationId": "destination-remove",
+ "tags": ["destination"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "destinationId": {
+ "type": "string"
+ }
+ },
+ "required": ["destinationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/destination.update": {
+ "post": {
+ "operationId": "destination-update",
+ "tags": ["destination"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessKey": {
+ "type": "string"
+ },
+ "bucket": {
+ "type": "string"
+ },
+ "region": {
+ "type": "string"
+ },
+ "endpoint": {
+ "type": "string"
+ },
+ "secretAccessKey": {
+ "type": "string"
+ },
+ "destinationId": {
+ "type": "string"
+ },
+ "provider": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "accessKey",
+ "bucket",
+ "region",
+ "endpoint",
+ "secretAccessKey",
+ "destinationId",
+ "provider"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.create": {
+ "post": {
+ "operationId": "backup-create",
+ "tags": ["backup"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "schedule": {
+ "type": "string"
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "prefix": {
+ "type": "string",
+ "minLength": 1
+ },
+ "destinationId": {
+ "type": "string"
+ },
+ "keepLatestCount": {
+ "type": "number",
+ "nullable": true
+ },
+ "database": {
+ "type": "string",
+ "minLength": 1
+ },
+ "mariadbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mysqlId": {
+ "type": "string",
+ "nullable": true
+ },
+ "postgresId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mongoId": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseType": {
+ "type": "string",
+ "enum": [
+ "postgres",
+ "mariadb",
+ "mysql",
+ "mongo",
+ "web-server"
+ ]
+ },
+ "userId": {
+ "type": "string",
+ "nullable": true
+ },
+ "backupType": {
+ "type": "string",
+ "enum": ["database", "compose"]
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "metadata": {
+ "nullable": true
+ }
+ },
+ "required": [
+ "schedule",
+ "prefix",
+ "destinationId",
+ "database",
+ "databaseType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.one": {
+ "get": {
+ "operationId": "backup-one",
+ "tags": ["backup"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "backupId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.update": {
+ "post": {
+ "operationId": "backup-update",
+ "tags": ["backup"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "schedule": {
+ "type": "string"
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "prefix": {
+ "type": "string",
+ "minLength": 1
+ },
+ "backupId": {
+ "type": "string"
+ },
+ "destinationId": {
+ "type": "string"
+ },
+ "database": {
+ "type": "string",
+ "minLength": 1
+ },
+ "keepLatestCount": {
+ "type": "number",
+ "nullable": true
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "metadata": {
+ "nullable": true
+ },
+ "databaseType": {
+ "type": "string",
+ "enum": [
+ "postgres",
+ "mariadb",
+ "mysql",
+ "mongo",
+ "web-server"
+ ]
+ }
+ },
+ "required": [
+ "schedule",
+ "prefix",
+ "backupId",
+ "destinationId",
+ "database",
+ "serviceName",
+ "databaseType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.remove": {
+ "post": {
+ "operationId": "backup-remove",
+ "tags": ["backup"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": ["backupId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupPostgres": {
+ "post": {
+ "operationId": "backup-manualBackupPostgres",
+ "tags": ["backup"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": ["backupId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupMySql": {
+ "post": {
+ "operationId": "backup-manualBackupMySql",
+ "tags": ["backup"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": ["backupId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupMariadb": {
+ "post": {
+ "operationId": "backup-manualBackupMariadb",
+ "tags": ["backup"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": ["backupId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupCompose": {
+ "post": {
+ "operationId": "backup-manualBackupCompose",
+ "tags": ["backup"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": ["backupId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupMongo": {
+ "post": {
+ "operationId": "backup-manualBackupMongo",
+ "tags": ["backup"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": ["backupId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.manualBackupWebServer": {
+ "post": {
+ "operationId": "backup-manualBackupWebServer",
+ "tags": ["backup"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "backupId": {
+ "type": "string"
+ }
+ },
+ "required": ["backupId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/backup.listBackupFiles": {
+ "get": {
+ "operationId": "backup-listBackupFiles",
+ "tags": ["backup"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "destinationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "search",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.all": {
+ "get": {
+ "operationId": "deployment-all",
+ "tags": ["deployment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.allByCompose": {
+ "get": {
+ "operationId": "deployment-allByCompose",
+ "tags": ["deployment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "composeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.allByServer": {
+ "get": {
+ "operationId": "deployment-allByServer",
+ "tags": ["deployment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.allByType": {
+ "get": {
+ "operationId": "deployment-allByType",
+ "tags": ["deployment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "type",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "enum": [
+ "application",
+ "compose",
+ "server",
+ "schedule",
+ "previewDeployment",
+ "backup",
+ "volumeBackup"
+ ]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/deployment.killProcess": {
+ "post": {
+ "operationId": "deployment-killProcess",
+ "tags": ["deployment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "deploymentId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["deploymentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/previewDeployment.all": {
+ "get": {
+ "operationId": "previewDeployment-all",
+ "tags": ["previewDeployment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/previewDeployment.delete": {
+ "post": {
+ "operationId": "previewDeployment-delete",
+ "tags": ["previewDeployment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "previewDeploymentId": {
+ "type": "string"
+ }
+ },
+ "required": ["previewDeploymentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/previewDeployment.one": {
+ "get": {
+ "operationId": "previewDeployment-one",
+ "tags": ["previewDeployment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "previewDeploymentId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.create": {
+ "post": {
+ "operationId": "mounts-create",
+ "tags": ["mounts"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": ["bind", "volume", "file"]
+ },
+ "hostPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "volumeName": {
+ "type": "string",
+ "nullable": true
+ },
+ "content": {
+ "type": "string",
+ "nullable": true
+ },
+ "mountPath": {
+ "type": "string",
+ "minLength": 1
+ },
+ "serviceType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ],
+ "default": "application"
+ },
+ "filePath": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["type", "mountPath", "serviceId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.remove": {
+ "post": {
+ "operationId": "mounts-remove",
+ "tags": ["mounts"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mountId": {
+ "type": "string"
+ }
+ },
+ "required": ["mountId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.one": {
+ "get": {
+ "operationId": "mounts-one",
+ "tags": ["mounts"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "mountId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.update": {
+ "post": {
+ "operationId": "mounts-update",
+ "tags": ["mounts"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mountId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "type": {
+ "type": "string",
+ "enum": ["bind", "volume", "file"]
+ },
+ "hostPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "volumeName": {
+ "type": "string",
+ "nullable": true
+ },
+ "filePath": {
+ "type": "string",
+ "nullable": true
+ },
+ "content": {
+ "type": "string",
+ "nullable": true
+ },
+ "serviceType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ],
+ "default": "application"
+ },
+ "mountPath": {
+ "type": "string",
+ "minLength": 1
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "postgresId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mariadbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mongoId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mysqlId": {
+ "type": "string",
+ "nullable": true
+ },
+ "redisId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["mountId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/mounts.allNamedByApplicationId": {
+ "get": {
+ "operationId": "mounts-allNamedByApplicationId",
+ "tags": ["mounts"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "applicationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/certificates.create": {
+ "post": {
+ "operationId": "certificates-create",
+ "tags": ["certificates"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "certificateId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "certificateData": {
+ "type": "string",
+ "minLength": 1
+ },
+ "privateKey": {
+ "type": "string",
+ "minLength": 1
+ },
+ "certificatePath": {
+ "type": "string"
+ },
+ "autoRenew": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "organizationId": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": [
+ "name",
+ "certificateData",
+ "privateKey",
+ "organizationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/certificates.one": {
+ "get": {
+ "operationId": "certificates-one",
+ "tags": ["certificates"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "certificateId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/certificates.remove": {
+ "post": {
+ "operationId": "certificates-remove",
+ "tags": ["certificates"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "certificateId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["certificateId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/certificates.all": {
+ "get": {
+ "operationId": "certificates-all",
+ "tags": ["certificates"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.reloadServer": {
+ "post": {
+ "operationId": "settings-reloadServer",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanRedis": {
+ "post": {
+ "operationId": "settings-cleanRedis",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.reloadRedis": {
+ "post": {
+ "operationId": "settings-reloadRedis",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.reloadTraefik": {
+ "post": {
+ "operationId": "settings-reloadTraefik",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.toggleDashboard": {
+ "post": {
+ "operationId": "settings-toggleDashboard",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "enableDashboard": {
+ "type": "boolean"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanUnusedImages": {
+ "post": {
+ "operationId": "settings-cleanUnusedImages",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanUnusedVolumes": {
+ "post": {
+ "operationId": "settings-cleanUnusedVolumes",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanStoppedContainers": {
+ "post": {
+ "operationId": "settings-cleanStoppedContainers",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanDockerBuilder": {
+ "post": {
+ "operationId": "settings-cleanDockerBuilder",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanDockerPrune": {
+ "post": {
+ "operationId": "settings-cleanDockerPrune",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanAll": {
+ "post": {
+ "operationId": "settings-cleanAll",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanMonitoring": {
+ "post": {
+ "operationId": "settings-cleanMonitoring",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.saveSSHPrivateKey": {
+ "post": {
+ "operationId": "settings-saveSSHPrivateKey",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "sshPrivateKey": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["sshPrivateKey"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.assignDomainServer": {
+ "post": {
+ "operationId": "settings-assignDomainServer",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "nullable": true
+ },
+ "certificateType": {
+ "type": "string",
+ "enum": ["letsencrypt", "none", "custom"]
+ },
+ "letsEncryptEmail": {
+ "type": "string",
+ "nullable": true
+ },
+ "https": {
+ "type": "boolean"
+ }
+ },
+ "required": ["host", "certificateType"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.cleanSSHPrivateKey": {
+ "post": {
+ "operationId": "settings-cleanSSHPrivateKey",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateDockerCleanup": {
+ "post": {
+ "operationId": "settings-updateDockerCleanup",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "enableDockerCleanup": {
+ "type": "boolean"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": ["enableDockerCleanup"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readTraefikConfig": {
+ "get": {
+ "operationId": "settings-readTraefikConfig",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateTraefikConfig": {
+ "post": {
+ "operationId": "settings-updateTraefikConfig",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "traefikConfig": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["traefikConfig"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readWebServerTraefikConfig": {
+ "get": {
+ "operationId": "settings-readWebServerTraefikConfig",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateWebServerTraefikConfig": {
+ "post": {
+ "operationId": "settings-updateWebServerTraefikConfig",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "traefikConfig": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["traefikConfig"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readMiddlewareTraefikConfig": {
+ "get": {
+ "operationId": "settings-readMiddlewareTraefikConfig",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateMiddlewareTraefikConfig": {
+ "post": {
+ "operationId": "settings-updateMiddlewareTraefikConfig",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "traefikConfig": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["traefikConfig"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getUpdateData": {
+ "post": {
+ "operationId": "settings-getUpdateData",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateServer": {
+ "post": {
+ "operationId": "settings-updateServer",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getDokployVersion": {
+ "get": {
+ "operationId": "settings-getDokployVersion",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getReleaseTag": {
+ "get": {
+ "operationId": "settings-getReleaseTag",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readDirectories": {
+ "get": {
+ "operationId": "settings-readDirectories",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateTraefikFile": {
+ "post": {
+ "operationId": "settings-updateTraefikFile",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "path": {
+ "type": "string",
+ "minLength": 1
+ },
+ "traefikConfig": {
+ "type": "string",
+ "minLength": 1
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": ["path", "traefikConfig"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readTraefikFile": {
+ "get": {
+ "operationId": "settings-readTraefikFile",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "path",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getIp": {
+ "get": {
+ "operationId": "settings-getIp",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getOpenApiDocument": {
+ "get": {
+ "operationId": "settings-getOpenApiDocument",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.readTraefikEnv": {
+ "get": {
+ "operationId": "settings-readTraefikEnv",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.writeTraefikEnv": {
+ "post": {
+ "operationId": "settings-writeTraefikEnv",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "env": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": ["env"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.haveTraefikDashboardPortEnabled": {
+ "get": {
+ "operationId": "settings-haveTraefikDashboardPortEnabled",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.haveActivateRequests": {
+ "get": {
+ "operationId": "settings-haveActivateRequests",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.toggleRequests": {
+ "post": {
+ "operationId": "settings-toggleRequests",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "enable": {
+ "type": "boolean"
+ }
+ },
+ "required": ["enable"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.isCloud": {
+ "get": {
+ "operationId": "settings-isCloud",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.isUserSubscribed": {
+ "get": {
+ "operationId": "settings-isUserSubscribed",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.health": {
+ "get": {
+ "operationId": "settings-health",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.setupGPU": {
+ "post": {
+ "operationId": "settings-setupGPU",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.checkGPUStatus": {
+ "get": {
+ "operationId": "settings-checkGPUStatus",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateTraefikPorts": {
+ "post": {
+ "operationId": "settings-updateTraefikPorts",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string"
+ },
+ "additionalPorts": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "targetPort": {
+ "type": "number"
+ },
+ "publishedPort": {
+ "type": "number"
+ },
+ "protocol": {
+ "type": "string",
+ "enum": ["tcp", "udp", "sctp"]
+ }
+ },
+ "required": ["targetPort", "publishedPort", "protocol"],
+ "additionalProperties": false
+ }
+ }
+ },
+ "required": ["additionalPorts"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getTraefikPorts": {
+ "get": {
+ "operationId": "settings-getTraefikPorts",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.updateLogCleanup": {
+ "post": {
+ "operationId": "settings-updateLogCleanup",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "cronExpression": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["cronExpression"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getLogCleanupStatus": {
+ "get": {
+ "operationId": "settings-getLogCleanupStatus",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/settings.getDokployCloudIps": {
+ "get": {
+ "operationId": "settings-getDokployCloudIps",
+ "tags": ["settings"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/security.create": {
+ "post": {
+ "operationId": "security-create",
+ "tags": ["security"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "applicationId": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["applicationId", "username", "password"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/security.one": {
+ "get": {
+ "operationId": "security-one",
+ "tags": ["security"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "securityId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/security.delete": {
+ "post": {
+ "operationId": "security-delete",
+ "tags": ["security"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "securityId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["securityId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/security.update": {
+ "post": {
+ "operationId": "security-update",
+ "tags": ["security"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "securityId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["securityId", "username", "password"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redirects.create": {
+ "post": {
+ "operationId": "redirects-create",
+ "tags": ["redirects"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "regex": {
+ "type": "string",
+ "minLength": 1
+ },
+ "replacement": {
+ "type": "string",
+ "minLength": 1
+ },
+ "permanent": {
+ "type": "boolean"
+ },
+ "applicationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "regex",
+ "replacement",
+ "permanent",
+ "applicationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redirects.one": {
+ "get": {
+ "operationId": "redirects-one",
+ "tags": ["redirects"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "redirectId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redirects.delete": {
+ "post": {
+ "operationId": "redirects-delete",
+ "tags": ["redirects"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redirectId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["redirectId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/redirects.update": {
+ "post": {
+ "operationId": "redirects-update",
+ "tags": ["redirects"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "redirectId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "regex": {
+ "type": "string",
+ "minLength": 1
+ },
+ "replacement": {
+ "type": "string",
+ "minLength": 1
+ },
+ "permanent": {
+ "type": "boolean"
+ }
+ },
+ "required": ["redirectId", "regex", "replacement", "permanent"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/port.create": {
+ "post": {
+ "operationId": "port-create",
+ "tags": ["port"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "publishedPort": {
+ "type": "number"
+ },
+ "publishMode": {
+ "type": "string",
+ "enum": ["ingress", "host"],
+ "default": "ingress"
+ },
+ "targetPort": {
+ "type": "number"
+ },
+ "protocol": {
+ "type": "string",
+ "enum": ["tcp", "udp"],
+ "default": "tcp"
+ },
+ "applicationId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["publishedPort", "targetPort", "applicationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/port.one": {
+ "get": {
+ "operationId": "port-one",
+ "tags": ["port"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "portId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/port.delete": {
+ "post": {
+ "operationId": "port-delete",
+ "tags": ["port"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "portId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["portId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/port.update": {
+ "post": {
+ "operationId": "port-update",
+ "tags": ["port"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "portId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "publishedPort": {
+ "type": "number"
+ },
+ "publishMode": {
+ "type": "string",
+ "enum": ["ingress", "host"],
+ "default": "ingress"
+ },
+ "targetPort": {
+ "type": "number"
+ },
+ "protocol": {
+ "type": "string",
+ "enum": ["tcp", "udp"],
+ "default": "tcp"
+ }
+ },
+ "required": ["portId", "publishedPort", "targetPort"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.create": {
+ "post": {
+ "operationId": "registry-create",
+ "tags": ["registry"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "registryName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "registryUrl": {
+ "type": "string"
+ },
+ "registryType": {
+ "type": "string",
+ "enum": ["cloud"]
+ },
+ "imagePrefix": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "registryName",
+ "username",
+ "password",
+ "registryUrl",
+ "registryType",
+ "imagePrefix"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.remove": {
+ "post": {
+ "operationId": "registry-remove",
+ "tags": ["registry"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "registryId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["registryId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.update": {
+ "post": {
+ "operationId": "registry-update",
+ "tags": ["registry"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "registryId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "registryName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "imagePrefix": {
+ "type": "string",
+ "nullable": true
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "registryUrl": {
+ "type": "string"
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "registryType": {
+ "type": "string",
+ "enum": ["cloud"]
+ },
+ "organizationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": ["registryId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.all": {
+ "get": {
+ "operationId": "registry-all",
+ "tags": ["registry"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.one": {
+ "get": {
+ "operationId": "registry-one",
+ "tags": ["registry"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "registryId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/registry.testRegistry": {
+ "post": {
+ "operationId": "registry-testRegistry",
+ "tags": ["registry"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "registryName": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "registryUrl": {
+ "type": "string"
+ },
+ "registryType": {
+ "type": "string",
+ "enum": ["cloud"]
+ },
+ "imagePrefix": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "username",
+ "password",
+ "registryUrl",
+ "registryType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/cluster.getNodes": {
+ "get": {
+ "operationId": "cluster-getNodes",
+ "tags": ["cluster"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/cluster.removeWorker": {
+ "post": {
+ "operationId": "cluster-removeWorker",
+ "tags": ["cluster"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "nodeId": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": ["nodeId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/cluster.addWorker": {
+ "get": {
+ "operationId": "cluster-addWorker",
+ "tags": ["cluster"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/cluster.addManager": {
+ "get": {
+ "operationId": "cluster-addManager",
+ "tags": ["cluster"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createSlack": {
+ "post": {
+ "operationId": "notification-createSlack",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "channel": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "webhookUrl",
+ "channel"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateSlack": {
+ "post": {
+ "operationId": "notification-updateSlack",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "channel": {
+ "type": "string"
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "slackId": {
+ "type": "string"
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": ["notificationId", "slackId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testSlackConnection": {
+ "post": {
+ "operationId": "notification-testSlackConnection",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "channel": {
+ "type": "string"
+ }
+ },
+ "required": ["webhookUrl", "channel"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createTelegram": {
+ "post": {
+ "operationId": "notification-createTelegram",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "botToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "chatId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "messageThreadId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "botToken",
+ "chatId",
+ "messageThreadId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateTelegram": {
+ "post": {
+ "operationId": "notification-updateTelegram",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "botToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "chatId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "messageThreadId": {
+ "type": "string"
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "telegramId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": ["notificationId", "telegramId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testTelegramConnection": {
+ "post": {
+ "operationId": "notification-testTelegramConnection",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "botToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "chatId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "messageThreadId": {
+ "type": "string"
+ }
+ },
+ "required": ["botToken", "chatId", "messageThreadId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createDiscord": {
+ "post": {
+ "operationId": "notification-createDiscord",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "webhookUrl",
+ "decoration"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateDiscord": {
+ "post": {
+ "operationId": "notification-updateDiscord",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "discordId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": ["notificationId", "discordId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testDiscordConnection": {
+ "post": {
+ "operationId": "notification-testDiscordConnection",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ }
+ },
+ "required": ["webhookUrl"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createEmail": {
+ "post": {
+ "operationId": "notification-createEmail",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "smtpServer": {
+ "type": "string",
+ "minLength": 1
+ },
+ "smtpPort": {
+ "type": "number",
+ "minimum": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "fromAddress": {
+ "type": "string",
+ "minLength": 1
+ },
+ "toAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "smtpServer",
+ "smtpPort",
+ "username",
+ "password",
+ "fromAddress",
+ "toAddresses"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateEmail": {
+ "post": {
+ "operationId": "notification-updateEmail",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "smtpServer": {
+ "type": "string",
+ "minLength": 1
+ },
+ "smtpPort": {
+ "type": "number",
+ "minimum": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "fromAddress": {
+ "type": "string",
+ "minLength": 1
+ },
+ "toAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "emailId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": ["notificationId", "emailId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testEmailConnection": {
+ "post": {
+ "operationId": "notification-testEmailConnection",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "smtpServer": {
+ "type": "string",
+ "minLength": 1
+ },
+ "smtpPort": {
+ "type": "number",
+ "minimum": 1
+ },
+ "username": {
+ "type": "string",
+ "minLength": 1
+ },
+ "password": {
+ "type": "string",
+ "minLength": 1
+ },
+ "toAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1
+ },
+ "fromAddress": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "smtpServer",
+ "smtpPort",
+ "username",
+ "password",
+ "toAddresses",
+ "fromAddress"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.remove": {
+ "post": {
+ "operationId": "notification-remove",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "notificationId": {
+ "type": "string"
+ }
+ },
+ "required": ["notificationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.one": {
+ "get": {
+ "operationId": "notification-one",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "notificationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.all": {
+ "get": {
+ "operationId": "notification-all",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.receiveNotification": {
+ "post": {
+ "operationId": "notification-receiveNotification",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "ServerType": {
+ "type": "string",
+ "enum": ["Dokploy", "Remote"],
+ "default": "Dokploy"
+ },
+ "Type": {
+ "type": "string",
+ "enum": ["Memory", "CPU"]
+ },
+ "Value": {
+ "type": "number"
+ },
+ "Threshold": {
+ "type": "number"
+ },
+ "Message": {
+ "type": "string"
+ },
+ "Timestamp": {
+ "type": "string"
+ },
+ "Token": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "Type",
+ "Value",
+ "Threshold",
+ "Message",
+ "Timestamp",
+ "Token"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createGotify": {
+ "post": {
+ "operationId": "notification-createGotify",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverUrl",
+ "appToken",
+ "priority",
+ "decoration"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateGotify": {
+ "post": {
+ "operationId": "notification-updateGotify",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "gotifyId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": ["notificationId", "gotifyId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testGotifyConnection": {
+ "post": {
+ "operationId": "notification-testGotifyConnection",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "appToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ },
+ "decoration": {
+ "type": "boolean"
+ }
+ },
+ "required": ["serverUrl", "appToken", "priority"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createNtfy": {
+ "post": {
+ "operationId": "notification-createNtfy",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "topic": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverUrl",
+ "topic",
+ "accessToken",
+ "priority"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateNtfy": {
+ "post": {
+ "operationId": "notification-updateNtfy",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "topic": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "ntfyId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": ["notificationId", "ntfyId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testNtfyConnection": {
+ "post": {
+ "operationId": "notification-testNtfyConnection",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "topic": {
+ "type": "string",
+ "minLength": 1
+ },
+ "accessToken": {
+ "type": "string",
+ "minLength": 1
+ },
+ "priority": {
+ "type": "number",
+ "minimum": 1
+ }
+ },
+ "required": ["serverUrl", "topic", "accessToken", "priority"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.createLark": {
+ "post": {
+ "operationId": "notification-createLark",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "appBuildError",
+ "databaseBackup",
+ "dokployRestart",
+ "name",
+ "appDeploy",
+ "dockerCleanup",
+ "serverThreshold",
+ "webhookUrl"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.updateLark": {
+ "post": {
+ "operationId": "notification-updateLark",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "appBuildError": {
+ "type": "boolean"
+ },
+ "databaseBackup": {
+ "type": "boolean"
+ },
+ "dokployRestart": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "appDeploy": {
+ "type": "boolean"
+ },
+ "dockerCleanup": {
+ "type": "boolean"
+ },
+ "serverThreshold": {
+ "type": "boolean"
+ },
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "notificationId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "larkId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": ["notificationId", "larkId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.testLarkConnection": {
+ "post": {
+ "operationId": "notification-testLarkConnection",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "webhookUrl": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["webhookUrl"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/notification.getEmailProviders": {
+ "get": {
+ "operationId": "notification-getEmailProviders",
+ "tags": ["notification"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.create": {
+ "post": {
+ "operationId": "sshKey-create",
+ "tags": ["sshKey"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "privateKey": {
+ "type": "string"
+ },
+ "publicKey": {
+ "type": "string"
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "privateKey",
+ "publicKey",
+ "organizationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.remove": {
+ "post": {
+ "operationId": "sshKey-remove",
+ "tags": ["sshKey"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "sshKeyId": {
+ "type": "string"
+ }
+ },
+ "required": ["sshKeyId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.one": {
+ "get": {
+ "operationId": "sshKey-one",
+ "tags": ["sshKey"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "sshKeyId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.all": {
+ "get": {
+ "operationId": "sshKey-all",
+ "tags": ["sshKey"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.generate": {
+ "post": {
+ "operationId": "sshKey-generate",
+ "tags": ["sshKey"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": ["rsa", "ed25519"]
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/sshKey.update": {
+ "post": {
+ "operationId": "sshKey-update",
+ "tags": ["sshKey"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "lastUsedAt": {
+ "type": "string",
+ "nullable": true
+ },
+ "sshKeyId": {
+ "type": "string"
+ }
+ },
+ "required": ["sshKeyId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitProvider.getAll": {
+ "get": {
+ "operationId": "gitProvider-getAll",
+ "tags": ["gitProvider"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitProvider.remove": {
+ "post": {
+ "operationId": "gitProvider-remove",
+ "tags": ["gitProvider"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "gitProviderId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["gitProviderId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.create": {
+ "post": {
+ "operationId": "gitea-create",
+ "tags": ["gitea"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "giteaId": {
+ "type": "string"
+ },
+ "giteaUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "redirectUri": {
+ "type": "string"
+ },
+ "clientId": {
+ "type": "string"
+ },
+ "clientSecret": {
+ "type": "string"
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "accessToken": {
+ "type": "string"
+ },
+ "refreshToken": {
+ "type": "string"
+ },
+ "expiresAt": {
+ "type": "number"
+ },
+ "scopes": {
+ "type": "string"
+ },
+ "lastAuthenticatedAt": {
+ "type": "number"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "giteaUsername": {
+ "type": "string"
+ },
+ "organizationName": {
+ "type": "string"
+ }
+ },
+ "required": ["giteaUrl", "name"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.one": {
+ "get": {
+ "operationId": "gitea-one",
+ "tags": ["gitea"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "giteaId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.giteaProviders": {
+ "get": {
+ "operationId": "gitea-giteaProviders",
+ "tags": ["gitea"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.getGiteaRepositories": {
+ "get": {
+ "operationId": "gitea-getGiteaRepositories",
+ "tags": ["gitea"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "giteaId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.getGiteaBranches": {
+ "get": {
+ "operationId": "gitea-getGiteaBranches",
+ "tags": ["gitea"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "repositoryName",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "giteaId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.testConnection": {
+ "post": {
+ "operationId": "gitea-testConnection",
+ "tags": ["gitea"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "giteaId": {
+ "type": "string"
+ },
+ "organizationName": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.update": {
+ "post": {
+ "operationId": "gitea-update",
+ "tags": ["gitea"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "giteaId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "giteaUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "redirectUri": {
+ "type": "string"
+ },
+ "clientId": {
+ "type": "string"
+ },
+ "clientSecret": {
+ "type": "string"
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "accessToken": {
+ "type": "string"
+ },
+ "refreshToken": {
+ "type": "string"
+ },
+ "expiresAt": {
+ "type": "number"
+ },
+ "scopes": {
+ "type": "string"
+ },
+ "lastAuthenticatedAt": {
+ "type": "number"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "giteaUsername": {
+ "type": "string"
+ },
+ "organizationName": {
+ "type": "string"
+ }
+ },
+ "required": ["giteaId", "giteaUrl", "gitProviderId", "name"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitea.getGiteaUrl": {
+ "get": {
+ "operationId": "gitea-getGiteaUrl",
+ "tags": ["gitea"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "giteaId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.create": {
+ "post": {
+ "operationId": "bitbucket-create",
+ "tags": ["bitbucket"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "bitbucketId": {
+ "type": "string"
+ },
+ "bitbucketUsername": {
+ "type": "string"
+ },
+ "bitbucketEmail": {
+ "type": "string",
+ "format": "email"
+ },
+ "appPassword": {
+ "type": "string"
+ },
+ "apiToken": {
+ "type": "string"
+ },
+ "bitbucketWorkspaceName": {
+ "type": "string"
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "authId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["authId", "name"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.one": {
+ "get": {
+ "operationId": "bitbucket-one",
+ "tags": ["bitbucket"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "bitbucketId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.bitbucketProviders": {
+ "get": {
+ "operationId": "bitbucket-bitbucketProviders",
+ "tags": ["bitbucket"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.getBitbucketRepositories": {
+ "get": {
+ "operationId": "bitbucket-getBitbucketRepositories",
+ "tags": ["bitbucket"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "bitbucketId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.getBitbucketBranches": {
+ "get": {
+ "operationId": "bitbucket-getBitbucketBranches",
+ "tags": ["bitbucket"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "owner",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "repo",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "bitbucketId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.testConnection": {
+ "post": {
+ "operationId": "bitbucket-testConnection",
+ "tags": ["bitbucket"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "bitbucketId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "bitbucketUsername": {
+ "type": "string"
+ },
+ "bitbucketEmail": {
+ "type": "string",
+ "format": "email"
+ },
+ "workspaceName": {
+ "type": "string"
+ },
+ "apiToken": {
+ "type": "string"
+ },
+ "appPassword": {
+ "type": "string"
+ }
+ },
+ "required": ["bitbucketId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/bitbucket.update": {
+ "post": {
+ "operationId": "bitbucket-update",
+ "tags": ["bitbucket"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "bitbucketId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "bitbucketUsername": {
+ "type": "string"
+ },
+ "bitbucketEmail": {
+ "type": "string",
+ "format": "email"
+ },
+ "appPassword": {
+ "type": "string"
+ },
+ "apiToken": {
+ "type": "string"
+ },
+ "bitbucketWorkspaceName": {
+ "type": "string"
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": ["bitbucketId", "gitProviderId", "name"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.create": {
+ "post": {
+ "operationId": "gitlab-create",
+ "tags": ["gitlab"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "gitlabId": {
+ "type": "string"
+ },
+ "gitlabUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "redirectUri": {
+ "type": "string"
+ },
+ "secret": {
+ "type": "string"
+ },
+ "accessToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "refreshToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "groupName": {
+ "type": "string"
+ },
+ "expiresAt": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "authId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["gitlabUrl", "authId", "name"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.one": {
+ "get": {
+ "operationId": "gitlab-one",
+ "tags": ["gitlab"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "gitlabId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.gitlabProviders": {
+ "get": {
+ "operationId": "gitlab-gitlabProviders",
+ "tags": ["gitlab"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.getGitlabRepositories": {
+ "get": {
+ "operationId": "gitlab-getGitlabRepositories",
+ "tags": ["gitlab"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "gitlabId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.getGitlabBranches": {
+ "get": {
+ "operationId": "gitlab-getGitlabBranches",
+ "tags": ["gitlab"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "number"
+ }
+ },
+ {
+ "name": "owner",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "repo",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "gitlabId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.testConnection": {
+ "post": {
+ "operationId": "gitlab-testConnection",
+ "tags": ["gitlab"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "gitlabId": {
+ "type": "string"
+ },
+ "groupName": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/gitlab.update": {
+ "post": {
+ "operationId": "gitlab-update",
+ "tags": ["gitlab"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "gitlabId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "gitlabUrl": {
+ "type": "string",
+ "minLength": 1
+ },
+ "applicationId": {
+ "type": "string"
+ },
+ "redirectUri": {
+ "type": "string"
+ },
+ "secret": {
+ "type": "string"
+ },
+ "accessToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "refreshToken": {
+ "type": "string",
+ "nullable": true
+ },
+ "groupName": {
+ "type": "string"
+ },
+ "expiresAt": {
+ "type": "number",
+ "nullable": true
+ },
+ "gitProviderId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["gitlabId", "gitlabUrl", "gitProviderId", "name"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.one": {
+ "get": {
+ "operationId": "github-one",
+ "tags": ["github"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "githubId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.getGithubRepositories": {
+ "get": {
+ "operationId": "github-getGithubRepositories",
+ "tags": ["github"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "githubId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.getGithubBranches": {
+ "get": {
+ "operationId": "github-getGithubBranches",
+ "tags": ["github"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "repo",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "owner",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "githubId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.githubProviders": {
+ "get": {
+ "operationId": "github-githubProviders",
+ "tags": ["github"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.testConnection": {
+ "post": {
+ "operationId": "github-testConnection",
+ "tags": ["github"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "githubId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["githubId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/github.update": {
+ "post": {
+ "operationId": "github-update",
+ "tags": ["github"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "githubId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "githubAppName": {
+ "type": "string",
+ "minLength": 1
+ },
+ "githubAppId": {
+ "type": "number",
+ "nullable": true
+ },
+ "githubClientId": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubClientSecret": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubInstallationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubPrivateKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "githubWebhookSecret": {
+ "type": "string",
+ "nullable": true
+ },
+ "gitProviderId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "githubId",
+ "githubAppName",
+ "gitProviderId",
+ "name"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.create": {
+ "post": {
+ "operationId": "server-create",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "ipAddress": {
+ "type": "string"
+ },
+ "port": {
+ "type": "number"
+ },
+ "username": {
+ "type": "string"
+ },
+ "sshKeyId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverType": {
+ "type": "string",
+ "enum": ["deploy", "build"]
+ }
+ },
+ "required": [
+ "name",
+ "ipAddress",
+ "port",
+ "username",
+ "sshKeyId",
+ "serverType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.one": {
+ "get": {
+ "operationId": "server-one",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.getDefaultCommand": {
+ "get": {
+ "operationId": "server-getDefaultCommand",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.all": {
+ "get": {
+ "operationId": "server-all",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.count": {
+ "get": {
+ "operationId": "server-count",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.withSSHKey": {
+ "get": {
+ "operationId": "server-withSSHKey",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.buildServers": {
+ "get": {
+ "operationId": "server-buildServers",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.setup": {
+ "post": {
+ "operationId": "server-setup",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["serverId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.validate": {
+ "get": {
+ "operationId": "server-validate",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.security": {
+ "get": {
+ "operationId": "server-security",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.setupMonitoring": {
+ "post": {
+ "operationId": "server-setupMonitoring",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "metricsConfig": {
+ "type": "object",
+ "properties": {
+ "server": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number",
+ "minimum": 2
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1
+ },
+ "token": {
+ "type": "string"
+ },
+ "urlCallback": {
+ "type": "string",
+ "format": "uri"
+ },
+ "retentionDays": {
+ "type": "number",
+ "minimum": 1
+ },
+ "cronJob": {
+ "type": "string",
+ "minLength": 1
+ },
+ "thresholds": {
+ "type": "object",
+ "properties": {
+ "cpu": {
+ "type": "number",
+ "minimum": 0
+ },
+ "memory": {
+ "type": "number",
+ "minimum": 0
+ }
+ },
+ "required": ["cpu", "memory"],
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "refreshRate",
+ "port",
+ "token",
+ "urlCallback",
+ "retentionDays",
+ "cronJob",
+ "thresholds"
+ ],
+ "additionalProperties": false
+ },
+ "containers": {
+ "type": "object",
+ "properties": {
+ "refreshRate": {
+ "type": "number",
+ "minimum": 2
+ },
+ "services": {
+ "type": "object",
+ "properties": {
+ "include": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "required": ["refreshRate", "services"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["server", "containers"],
+ "additionalProperties": false
+ }
+ },
+ "required": ["serverId", "metricsConfig"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.remove": {
+ "post": {
+ "operationId": "server-remove",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "serverId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["serverId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.update": {
+ "post": {
+ "operationId": "server-update",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "ipAddress": {
+ "type": "string"
+ },
+ "port": {
+ "type": "number"
+ },
+ "username": {
+ "type": "string"
+ },
+ "sshKeyId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverType": {
+ "type": "string",
+ "enum": ["deploy", "build"]
+ },
+ "command": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "serverId",
+ "ipAddress",
+ "port",
+ "username",
+ "sshKeyId",
+ "serverType"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.publicIp": {
+ "get": {
+ "operationId": "server-publicIp",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.getServerTime": {
+ "get": {
+ "operationId": "server-getServerTime",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/server.getServerMetrics": {
+ "get": {
+ "operationId": "server-getServerMetrics",
+ "tags": ["server"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "url",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "token",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "dataPoints",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/stripe.getProducts": {
+ "get": {
+ "operationId": "stripe-getProducts",
+ "tags": ["stripe"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/stripe.createCheckoutSession": {
+ "post": {
+ "operationId": "stripe-createCheckoutSession",
+ "tags": ["stripe"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "productId": {
+ "type": "string"
+ },
+ "serverQuantity": {
+ "type": "number",
+ "minimum": 1
+ },
+ "isAnnual": {
+ "type": "boolean"
+ }
+ },
+ "required": ["productId", "serverQuantity", "isAnnual"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/stripe.createCustomerPortalSession": {
+ "post": {
+ "operationId": "stripe-createCustomerPortalSession",
+ "tags": ["stripe"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/stripe.canCreateMoreServers": {
+ "get": {
+ "operationId": "stripe-canCreateMoreServers",
+ "tags": ["stripe"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/swarm.getNodes": {
+ "get": {
+ "operationId": "swarm-getNodes",
+ "tags": ["swarm"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/swarm.getNodeInfo": {
+ "get": {
+ "operationId": "swarm-getNodeInfo",
+ "tags": ["swarm"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "nodeId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/swarm.getNodeApps": {
+ "get": {
+ "operationId": "swarm-getNodeApps",
+ "tags": ["swarm"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "serverId",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.one": {
+ "get": {
+ "operationId": "ai-one",
+ "tags": ["ai"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "aiId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.getModels": {
+ "get": {
+ "operationId": "ai-getModels",
+ "tags": ["ai"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "apiUrl",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "apiKey",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.create": {
+ "post": {
+ "operationId": "ai-create",
+ "tags": ["ai"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "apiUrl": {
+ "type": "string",
+ "format": "uri"
+ },
+ "apiKey": {
+ "type": "string"
+ },
+ "model": {
+ "type": "string",
+ "minLength": 1
+ },
+ "isEnabled": {
+ "type": "boolean"
+ }
+ },
+ "required": ["name", "apiUrl", "apiKey", "model", "isEnabled"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.update": {
+ "post": {
+ "operationId": "ai-update",
+ "tags": ["ai"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "aiId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "apiUrl": {
+ "type": "string",
+ "format": "uri"
+ },
+ "apiKey": {
+ "type": "string"
+ },
+ "model": {
+ "type": "string",
+ "minLength": 1
+ },
+ "isEnabled": {
+ "type": "boolean"
+ },
+ "createdAt": {
+ "type": "string"
+ }
+ },
+ "required": ["aiId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.getAll": {
+ "get": {
+ "operationId": "ai-getAll",
+ "tags": ["ai"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.get": {
+ "get": {
+ "operationId": "ai-get",
+ "tags": ["ai"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "aiId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.delete": {
+ "post": {
+ "operationId": "ai-delete",
+ "tags": ["ai"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "aiId": {
+ "type": "string"
+ }
+ },
+ "required": ["aiId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.suggest": {
+ "post": {
+ "operationId": "ai-suggest",
+ "tags": ["ai"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "aiId": {
+ "type": "string"
+ },
+ "input": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ }
+ },
+ "required": ["aiId", "input"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/ai.deploy": {
+ "post": {
+ "operationId": "ai-deploy",
+ "tags": ["ai"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "id": {
+ "type": "string",
+ "minLength": 1
+ },
+ "dockerCompose": {
+ "type": "string",
+ "minLength": 1
+ },
+ "envVariables": {
+ "type": "string"
+ },
+ "serverId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string"
+ },
+ "domains": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "host": {
+ "type": "string",
+ "minLength": 1
+ },
+ "port": {
+ "type": "number",
+ "minimum": 1
+ },
+ "serviceName": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["host", "port", "serviceName"],
+ "additionalProperties": false
+ }
+ },
+ "configFiles": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "filePath": {
+ "type": "string",
+ "minLength": 1
+ },
+ "content": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["filePath", "content"],
+ "additionalProperties": false
+ }
+ }
+ },
+ "required": [
+ "environmentId",
+ "id",
+ "dockerCompose",
+ "envVariables",
+ "name",
+ "description"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.create": {
+ "post": {
+ "operationId": "organization-create",
+ "tags": ["organization"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "logo": {
+ "type": "string"
+ }
+ },
+ "required": ["name"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.all": {
+ "get": {
+ "operationId": "organization-all",
+ "tags": ["organization"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.one": {
+ "get": {
+ "operationId": "organization-one",
+ "tags": ["organization"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "organizationId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.update": {
+ "post": {
+ "operationId": "organization-update",
+ "tags": ["organization"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "organizationId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "logo": {
+ "type": "string"
+ }
+ },
+ "required": ["organizationId", "name"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.delete": {
+ "post": {
+ "operationId": "organization-delete",
+ "tags": ["organization"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "organizationId": {
+ "type": "string"
+ }
+ },
+ "required": ["organizationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.allInvitations": {
+ "get": {
+ "operationId": "organization-allInvitations",
+ "tags": ["organization"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.removeInvitation": {
+ "post": {
+ "operationId": "organization-removeInvitation",
+ "tags": ["organization"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "invitationId": {
+ "type": "string"
+ }
+ },
+ "required": ["invitationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/organization.setDefault": {
+ "post": {
+ "operationId": "organization-setDefault",
+ "tags": ["organization"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "organizationId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["organizationId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.create": {
+ "post": {
+ "operationId": "schedule-create",
+ "tags": ["schedule"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "scheduleId": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "cronExpression": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "shellType": {
+ "type": "string",
+ "enum": ["bash", "sh"]
+ },
+ "scheduleType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "compose",
+ "server",
+ "dokploy-server"
+ ]
+ },
+ "command": {
+ "type": "string"
+ },
+ "script": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ },
+ "userId": {
+ "type": "string",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "createdAt": {
+ "type": "string"
+ }
+ },
+ "required": ["name", "cronExpression", "command"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.update": {
+ "post": {
+ "operationId": "schedule-update",
+ "tags": ["schedule"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "scheduleId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string"
+ },
+ "cronExpression": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "shellType": {
+ "type": "string",
+ "enum": ["bash", "sh"]
+ },
+ "scheduleType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "compose",
+ "server",
+ "dokploy-server"
+ ]
+ },
+ "command": {
+ "type": "string"
+ },
+ "script": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "serverId": {
+ "type": "string",
+ "nullable": true
+ },
+ "userId": {
+ "type": "string",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "createdAt": {
+ "type": "string"
+ }
+ },
+ "required": ["scheduleId", "name", "cronExpression", "command"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.delete": {
+ "post": {
+ "operationId": "schedule-delete",
+ "tags": ["schedule"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "scheduleId": {
+ "type": "string"
+ }
+ },
+ "required": ["scheduleId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.list": {
+ "get": {
+ "operationId": "schedule-list",
+ "tags": ["schedule"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "scheduleType",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "enum": ["application", "compose", "server", "dokploy-server"]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.one": {
+ "get": {
+ "operationId": "schedule-one",
+ "tags": ["schedule"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "scheduleId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/schedule.runManually": {
+ "post": {
+ "operationId": "schedule-runManually",
+ "tags": ["schedule"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "scheduleId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["scheduleId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/rollback.delete": {
+ "post": {
+ "operationId": "rollback-delete",
+ "tags": ["rollback"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "rollbackId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["rollbackId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/rollback.rollback": {
+ "post": {
+ "operationId": "rollback-rollback",
+ "tags": ["rollback"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "rollbackId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["rollbackId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.list": {
+ "get": {
+ "operationId": "volumeBackups-list",
+ "tags": ["volumeBackups"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ {
+ "name": "volumeBackupType",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.create": {
+ "post": {
+ "operationId": "volumeBackups-create",
+ "tags": ["volumeBackups"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "volumeName": {
+ "type": "string"
+ },
+ "prefix": {
+ "type": "string"
+ },
+ "serviceType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ]
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "turnOff": {
+ "type": "boolean"
+ },
+ "cronExpression": {
+ "type": "string"
+ },
+ "keepLatestCount": {
+ "type": "number",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "postgresId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mariadbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mongoId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mysqlId": {
+ "type": "string",
+ "nullable": true
+ },
+ "redisId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "destinationId": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "volumeName",
+ "prefix",
+ "cronExpression",
+ "destinationId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.one": {
+ "get": {
+ "operationId": "volumeBackups-one",
+ "tags": ["volumeBackups"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "volumeBackupId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.delete": {
+ "post": {
+ "operationId": "volumeBackups-delete",
+ "tags": ["volumeBackups"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "volumeBackupId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["volumeBackupId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.update": {
+ "post": {
+ "operationId": "volumeBackups-update",
+ "tags": ["volumeBackups"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "volumeName": {
+ "type": "string"
+ },
+ "prefix": {
+ "type": "string"
+ },
+ "serviceType": {
+ "type": "string",
+ "enum": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ]
+ },
+ "appName": {
+ "type": "string"
+ },
+ "serviceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "turnOff": {
+ "type": "boolean"
+ },
+ "cronExpression": {
+ "type": "string"
+ },
+ "keepLatestCount": {
+ "type": "number",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "applicationId": {
+ "type": "string",
+ "nullable": true
+ },
+ "postgresId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mariadbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mongoId": {
+ "type": "string",
+ "nullable": true
+ },
+ "mysqlId": {
+ "type": "string",
+ "nullable": true
+ },
+ "redisId": {
+ "type": "string",
+ "nullable": true
+ },
+ "composeId": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "destinationId": {
+ "type": "string"
+ },
+ "volumeBackupId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": [
+ "name",
+ "volumeName",
+ "prefix",
+ "cronExpression",
+ "destinationId",
+ "volumeBackupId"
+ ],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/volumeBackups.runManually": {
+ "post": {
+ "operationId": "volumeBackups-runManually",
+ "tags": ["volumeBackups"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "volumeBackupId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["volumeBackupId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.create": {
+ "post": {
+ "operationId": "environment-create",
+ "tags": ["environment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "projectId": {
+ "type": "string"
+ }
+ },
+ "required": ["name", "projectId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.one": {
+ "get": {
+ "operationId": "environment-one",
+ "tags": ["environment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "environmentId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.byProjectId": {
+ "get": {
+ "operationId": "environment-byProjectId",
+ "tags": ["environment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "projectId",
+ "in": "query",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.remove": {
+ "post": {
+ "operationId": "environment-remove",
+ "tags": ["environment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "required": ["environmentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.update": {
+ "post": {
+ "operationId": "environment-update",
+ "tags": ["environment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ },
+ "createdAt": {
+ "type": "string"
+ },
+ "env": {
+ "type": "string"
+ },
+ "projectId": {
+ "type": "string"
+ }
+ },
+ "required": ["environmentId"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ },
+ "/environment.duplicate": {
+ "post": {
+ "operationId": "environment-duplicate",
+ "tags": ["environment"],
+ "security": [
+ {
+ "Authorization": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "environmentId": {
+ "type": "string",
+ "minLength": 1
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1
+ },
+ "description": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "required": ["environmentId", "name"],
+ "additionalProperties": false
+ }
+ }
+ }
+ },
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "Successful response",
+ "content": {
+ "application/json": {}
+ }
+ },
+ "default": {
+ "$ref": "#/components/responses/error"
+ }
+ }
+ }
+ }
+ },
+ "components": {
+ "securitySchemes": {
+ "apiKey": {
+ "type": "apiKey",
+ "in": "header",
+ "name": "x-api-key",
+ "description": "API key authentication. Generate an API key from your Dokploy dashboard under Settings > API Keys."
+ }
+ },
+ "responses": {
+ "error": {
+ "description": "Error response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string"
+ },
+ "code": {
+ "type": "string"
+ },
+ "issues": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ },
+ "required": ["message"],
+ "additionalProperties": false
+ }
+ }
+ },
+ "required": ["message", "code"],
+ "additionalProperties": false
+ }
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ {
+ "name": "admin"
+ },
+ {
+ "name": "docker"
+ },
+ {
+ "name": "compose"
+ },
+ {
+ "name": "registry"
+ },
+ {
+ "name": "cluster"
+ },
+ {
+ "name": "user"
+ },
+ {
+ "name": "domain"
+ },
+ {
+ "name": "destination"
+ },
+ {
+ "name": "backup"
+ },
+ {
+ "name": "deployment"
+ },
+ {
+ "name": "mounts"
+ },
+ {
+ "name": "certificates"
+ },
+ {
+ "name": "settings"
+ },
+ {
+ "name": "security"
+ },
+ {
+ "name": "redirects"
+ },
+ {
+ "name": "port"
+ },
+ {
+ "name": "project"
+ },
+ {
+ "name": "application"
+ },
+ {
+ "name": "mysql"
+ },
+ {
+ "name": "postgres"
+ },
+ {
+ "name": "redis"
+ },
+ {
+ "name": "mongo"
+ },
+ {
+ "name": "mariadb"
+ },
+ {
+ "name": "sshRouter"
+ },
+ {
+ "name": "gitProvider"
+ },
+ {
+ "name": "bitbucket"
+ },
+ {
+ "name": "github"
+ },
+ {
+ "name": "gitlab"
+ },
+ {
+ "name": "gitea"
+ },
+ {
+ "name": "server"
+ },
+ {
+ "name": "swarm"
+ },
+ {
+ "name": "ai"
+ },
+ {
+ "name": "organization"
+ },
+ {
+ "name": "schedule"
+ },
+ {
+ "name": "rollback"
+ },
+ {
+ "name": "volumeBackups"
+ },
+ {
+ "name": "environment"
+ }
+ ],
+ "externalDocs": {
+ "description": "Full documentation",
+ "url": "https://docs.dokploy.com"
+ },
+ "security": [
+ {
+ "apiKey": []
+ }
+ ]
+}
From 0f632e3f55229645a46f24996eb6dad203e39e31 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sun, 30 Nov 2025 00:56:55 -0600
Subject: [PATCH 39/74] chore: update OpenAPI sync workflow to always commit
changes
- Modified the workflow to always commit the OpenAPI specification to the website repository, even if no changes are detected.
- Enhanced the copy command to force overwrite the existing openapi.json file.
- Improved commit message formatting by allowing empty commits to ensure consistency in the sync process.
---
.github/workflows/sync-openapi-docs.yml | 16 ++++++----------
1 file changed, 6 insertions(+), 10 deletions(-)
diff --git a/.github/workflows/sync-openapi-docs.yml b/.github/workflows/sync-openapi-docs.yml
index e17c33131..d9c719278 100644
--- a/.github/workflows/sync-openapi-docs.yml
+++ b/.github/workflows/sync-openapi-docs.yml
@@ -49,25 +49,21 @@ jobs:
cd website-repo
- # Copia el openapi.json al website
+ # Copia el openapi.json al website (sobrescribe)
mkdir -p public
- cp ../openapi.json public/openapi.json
+ cp -f ../openapi.json public/openapi.json
# Configura git
git config user.name "Dokploy Bot"
git config user.email "bot@dokploy.com"
- # Verifica si hay cambios
- if git diff --quiet public/openapi.json; then
- echo "📝 No changes detected in website repo"
- exit 0
- fi
-
- # Commitea y pushea
+ # Agrega y commitea siempre
git add public/openapi.json
git commit -m "chore: sync OpenAPI specification [skip ci]" \
-m "Source: ${{ github.repository }}@${{ github.sha }}" \
- -m "Updated: $(date -u +'%Y-%m-%d %H:%M:%S UTC')"
+ -m "Updated: $(date -u +'%Y-%m-%d %H:%M:%S UTC')" \
+ --allow-empty
+
git push
echo "✅ OpenAPI synced to website successfully"
From 817825e8bdf68bf82c54d19a5cbb68a43235f508 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sun, 30 Nov 2025 01:05:54 -0600
Subject: [PATCH 40/74] chore: update OpenAPI sync workflow triggers and paths
- Modified the workflow to trigger on pushes to the 'canary' and 'main' branches.
- Re-enabled path filters for specific directories related to the OpenAPI documentation.
- Removed commented-out sections for clarity and improved workflow readability.
---
.github/workflows/sync-openapi-docs.yml | 25 +++++++------------------
1 file changed, 7 insertions(+), 18 deletions(-)
diff --git a/.github/workflows/sync-openapi-docs.yml b/.github/workflows/sync-openapi-docs.yml
index d9c719278..d9784128c 100644
--- a/.github/workflows/sync-openapi-docs.yml
+++ b/.github/workflows/sync-openapi-docs.yml
@@ -1,15 +1,15 @@
name: Generate and Sync OpenAPI
on:
- # Se ejecuta cuando hay cambios en los routers de la API
push:
branches:
- - feat/sync-open-api-website-docs
- # paths:
- # - 'apps/dokploy/server/api/routers/**'
- # - 'packages/server/src/services/**'
- # - 'packages/server/src/db/schema/**'
- # Permite ejecución manual
+ - canary
+ - main
+ paths:
+ - 'apps/dokploy/server/api/routers/**'
+ - 'packages/server/src/services/**'
+ - 'packages/server/src/db/schema/**'
+
workflow_dispatch:
jobs:
@@ -67,15 +67,4 @@ jobs:
git push
echo "✅ OpenAPI synced to website successfully"
- continue-on-error: true
-
- - name: Create summary
- run: |
- echo "## 📊 OpenAPI Sync Summary" >> $GITHUB_STEP_SUMMARY
- echo "" >> $GITHUB_STEP_SUMMARY
- echo "- **Repository:** \`${{ github.repository }}\`" >> $GITHUB_STEP_SUMMARY
- echo "- **Commit:** \`${{ github.sha }}\`" >> $GITHUB_STEP_SUMMARY
- echo "- **Trigger:** \`${{ github.event_name }}\`" >> $GITHUB_STEP_SUMMARY
- echo "- **Target:** \`dokploy/website\`" >> $GITHUB_STEP_SUMMARY
- echo "- **Status:** ✅ Success" >> $GITHUB_STEP_SUMMARY
From 4907a021a44466f42f97e12ba910a62d43b67be7 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sun, 30 Nov 2025 01:09:38 -0600
Subject: [PATCH 41/74] fix: update OpenAPI sync workflow to copy file to
correct path
- Changed the destination path for copying openapi.json to the apps/docs/public directory to ensure proper deployment of the OpenAPI documentation.
---
.github/workflows/sync-openapi-docs.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/sync-openapi-docs.yml b/.github/workflows/sync-openapi-docs.yml
index d9784128c..90781c2e7 100644
--- a/.github/workflows/sync-openapi-docs.yml
+++ b/.github/workflows/sync-openapi-docs.yml
@@ -51,7 +51,7 @@ jobs:
# Copia el openapi.json al website (sobrescribe)
mkdir -p public
- cp -f ../openapi.json public/openapi.json
+ cp -f ../openapi.json apps/docs/public/openapi.json
# Configura git
git config user.name "Dokploy Bot"
From 2d0669e288a8c9c06b4f7bdc5dda8eae370257ee Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sun, 30 Nov 2025 01:13:30 -0600
Subject: [PATCH 42/74] fix: correct path for OpenAPI documentation in sync
workflow
- Updated the directory structure in the OpenAPI sync workflow to ensure the openapi.json file is copied to the correct path (apps/docs/public) for proper deployment.
---
.github/workflows/sync-openapi-docs.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/sync-openapi-docs.yml b/.github/workflows/sync-openapi-docs.yml
index 90781c2e7..ddc51355a 100644
--- a/.github/workflows/sync-openapi-docs.yml
+++ b/.github/workflows/sync-openapi-docs.yml
@@ -50,7 +50,7 @@ jobs:
cd website-repo
# Copia el openapi.json al website (sobrescribe)
- mkdir -p public
+ mkdir -p apps/docs/public
cp -f ../openapi.json apps/docs/public/openapi.json
# Configura git
@@ -58,7 +58,7 @@ jobs:
git config user.email "bot@dokploy.com"
# Agrega y commitea siempre
- git add public/openapi.json
+ git add apps/docs/public/openapi.json
git commit -m "chore: sync OpenAPI specification [skip ci]" \
-m "Source: ${{ github.repository }}@${{ github.sha }}" \
-m "Updated: $(date -u +'%Y-%m-%d %H:%M:%S UTC')" \
From dc4e8ecdc96ed480ee97cf1c16400a8be07bfbf0 Mon Sep 17 00:00:00 2001
From: Bima42
Date: Sun, 30 Nov 2025 18:08:37 +0100
Subject: [PATCH 43/74] fix: use form validation logic for testing notif
---
.../notifications/handle-notifications.tsx | 66 ++++++++++---------
1 file changed, 36 insertions(+), 30 deletions(-)
diff --git a/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx b/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx
index 337cdfd2b..4ffd568d0 100644
--- a/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx
+++ b/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx
@@ -1214,56 +1214,62 @@ export const HandleNotifications = ({ notificationId }: Props) => {
isLoadingLark
}
variant="secondary"
+ type="button"
onClick={async () => {
+ const isValid = await form.trigger();
+ if (!isValid) return;
+
+ const data = form.getValues();
+
try {
- if (type === "slack") {
+ if (data.type === "slack") {
await testSlackConnection({
- webhookUrl: form.getValues("webhookUrl"),
- channel: form.getValues("channel"),
+ webhookUrl: data.webhookUrl,
+ channel: data.channel,
});
- } else if (type === "telegram") {
+ } else if (data.type === "telegram") {
await testTelegramConnection({
- botToken: form.getValues("botToken"),
- chatId: form.getValues("chatId"),
- messageThreadId: form.getValues("messageThreadId") || "",
+ botToken: data.botToken,
+ chatId: data.chatId,
+ messageThreadId: data.messageThreadId || "",
});
- } else if (type === "discord") {
+ } else if (data.type === "discord") {
await testDiscordConnection({
- webhookUrl: form.getValues("webhookUrl"),
- decoration: form.getValues("decoration"),
+ webhookUrl: data.webhookUrl,
+ decoration: data.decoration,
});
- } else if (type === "email") {
+ } else if (data.type === "email") {
await testEmailConnection({
- smtpServer: form.getValues("smtpServer"),
- smtpPort: form.getValues("smtpPort"),
- username: form.getValues("username"),
- password: form.getValues("password"),
- toAddresses: form.getValues("toAddresses"),
- fromAddress: form.getValues("fromAddress"),
+ smtpServer: data.smtpServer,
+ smtpPort: data.smtpPort,
+ username: data.username,
+ password: data.password,
+ fromAddress: data.fromAddress,
+ toAddresses: data.toAddresses,
});
- } else if (type === "gotify") {
+ } else if (data.type === "gotify") {
await testGotifyConnection({
- serverUrl: form.getValues("serverUrl"),
- appToken: form.getValues("appToken"),
- priority: form.getValues("priority"),
- decoration: form.getValues("decoration"),
+ serverUrl: data.serverUrl,
+ appToken: data.appToken,
+ priority: data.priority,
+ decoration: data.decoration,
});
- } else if (type === "ntfy") {
+ } else if (data.type === "ntfy") {
await testNtfyConnection({
- serverUrl: form.getValues("serverUrl"),
- topic: form.getValues("topic"),
- accessToken: form.getValues("accessToken"),
- priority: form.getValues("priority"),
+ serverUrl: data.serverUrl,
+ topic: data.topic,
+ accessToken: data.accessToken,
+ priority: data.priority,
});
- } else if (type === "lark") {
+ } else if (data.type === "lark") {
await testLarkConnection({
- webhookUrl: form.getValues("webhookUrl"),
+ webhookUrl: data.webhookUrl,
});
}
toast.success("Connection Success");
} catch (error) {
toast.error(
- `Error testing the provider ${error instanceof Error ? error.message : "Unknown error"}`,
+ `Error testing the provider: ${error instanceof Error ? error.message : "Unknown error"}`,
);
}
}}
From 272a8dbdb2e0048642ba0b5de50d9de798430754 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sun, 30 Nov 2025 12:13:55 -0600
Subject: [PATCH 44/74] feat: add support for command arguments in application
and database schemas
- Updated the application, mariadb, mongo, mysql, postgres, and redis schemas to include an optional `args` field for command arguments.
- Enhanced the AddCommand and ShowCustomCommand components to handle multiple arguments using a dynamic form.
- Modified the database build functions to incorporate the new `args` parameter when creating containers.
- Added SQL migrations to update the database schema for existing applications and services to accommodate the new `args` field.
---
.../advanced/general/add-command.tsx | 80 +-
.../postgres/advanced/show-custom-command.tsx | 75 +-
.../drizzle/0123_cloudy_piledriver.sql | 6 +
apps/dokploy/drizzle/meta/0123_snapshot.json | 6831 +++++++++++++++++
apps/dokploy/drizzle/meta/_journal.json | 7 +
packages/server/src/db/schema/application.ts | 2 +
packages/server/src/db/schema/mariadb.ts | 2 +
packages/server/src/db/schema/mongo.ts | 2 +
packages/server/src/db/schema/mysql.ts | 2 +
packages/server/src/db/schema/postgres.ts | 2 +
packages/server/src/db/schema/redis.ts | 2 +
packages/server/src/utils/builders/index.ts | 15 +-
.../server/src/utils/databases/mariadb.ts | 15 +-
packages/server/src/utils/databases/mongo.ts | 18 +-
packages/server/src/utils/databases/mysql.ts | 15 +-
.../server/src/utils/databases/postgres.ts | 15 +-
packages/server/src/utils/databases/redis.ts | 14 +-
17 files changed, 7063 insertions(+), 40 deletions(-)
create mode 100644 apps/dokploy/drizzle/0123_cloudy_piledriver.sql
create mode 100644 apps/dokploy/drizzle/meta/0123_snapshot.json
diff --git a/apps/dokploy/components/dashboard/application/advanced/general/add-command.tsx b/apps/dokploy/components/dashboard/application/advanced/general/add-command.tsx
index 1bf69394a..e57f21895 100644
--- a/apps/dokploy/components/dashboard/application/advanced/general/add-command.tsx
+++ b/apps/dokploy/components/dashboard/application/advanced/general/add-command.tsx
@@ -1,6 +1,7 @@
import { zodResolver } from "@hookform/resolvers/zod";
+import { Plus, Trash2 } from "lucide-react";
import { useEffect } from "react";
-import { useForm } from "react-hook-form";
+import { useFieldArray, useForm } from "react-hook-form";
import { toast } from "sonner";
import { z } from "zod";
import { Button } from "@/components/ui/button";
@@ -28,6 +29,13 @@ interface Props {
const AddRedirectSchema = z.object({
command: z.string(),
+ args: z
+ .array(
+ z.object({
+ value: z.string().min(1, "Argument cannot be empty"),
+ }),
+ )
+ .optional(),
});
type AddCommand = z.infer;
@@ -47,22 +55,36 @@ export const AddCommand = ({ applicationId }: Props) => {
const form = useForm({
defaultValues: {
command: "",
+ args: [],
},
resolver: zodResolver(AddRedirectSchema),
});
+ const { fields, append, remove } = useFieldArray({
+ control: form.control,
+ name: "args",
+ });
+
useEffect(() => {
if (data?.command) {
form.reset({
command: data?.command || "",
+ args: data?.args?.map((arg) => ({ value: arg })) || [],
});
}
- }, [form, form.reset, form.formState.isSubmitSuccessful, data?.command]);
+ }, [
+ form,
+ form.reset,
+ form.formState.isSubmitSuccessful,
+ data?.command,
+ data?.args,
+ ]);
const onSubmit = async (data: AddCommand) => {
await mutateAsync({
applicationId,
command: data?.command,
+ args: data?.args?.map((arg) => arg.value).filter(Boolean),
})
.then(async () => {
toast.success("Command Updated");
@@ -100,13 +122,65 @@ export const AddCommand = ({ applicationId }: Props) => {
Command
-
+
)}
/>
+
+
+
+
Arguments (Args)
+
append({ value: "" })}
+ >
+
+ Add Argument
+
+
+
+ {fields.length === 0 && (
+
+ No arguments added yet. Click "Add Argument" to add one.
+
+ )}
+
+ {fields.map((field, index) => (
+
(
+
+
+
+
+
+ remove(index)}
+ >
+
+
+
+
+
+ )}
+ />
+ ))}
+
diff --git a/apps/dokploy/components/dashboard/postgres/advanced/show-custom-command.tsx b/apps/dokploy/components/dashboard/postgres/advanced/show-custom-command.tsx
index febaa8644..934716b19 100644
--- a/apps/dokploy/components/dashboard/postgres/advanced/show-custom-command.tsx
+++ b/apps/dokploy/components/dashboard/postgres/advanced/show-custom-command.tsx
@@ -1,6 +1,7 @@
import { zodResolver } from "@hookform/resolvers/zod";
+import { Plus, Trash2 } from "lucide-react";
import { useEffect } from "react";
-import { useForm } from "react-hook-form";
+import { useFieldArray, useForm } from "react-hook-form";
import { toast } from "sonner";
import { z } from "zod";
import { Button } from "@/components/ui/button";
@@ -20,6 +21,13 @@ import type { ServiceType } from "../../application/advanced/show-resources";
const addDockerImage = z.object({
dockerImage: z.string().min(1, "Docker image is required"),
command: z.string(),
+ args: z
+ .array(
+ z.object({
+ value: z.string().min(1, "Argument cannot be empty"),
+ }),
+ )
+ .optional(),
});
interface Props {
@@ -61,15 +69,22 @@ export const ShowCustomCommand = ({ id, type }: Props) => {
defaultValues: {
dockerImage: "",
command: "",
+ args: [],
},
resolver: zodResolver(addDockerImage),
});
+ const { fields, append, remove } = useFieldArray({
+ control: form.control,
+ name: "args",
+ });
+
useEffect(() => {
if (data) {
form.reset({
dockerImage: data.dockerImage,
command: data.command || "",
+ args: data.args?.map((arg) => ({ value: arg })) || [],
});
}
}, [data, form, form.reset]);
@@ -83,6 +98,7 @@ export const ShowCustomCommand = ({ id, type }: Props) => {
mariadbId: id || "",
dockerImage: formData?.dockerImage,
command: formData?.command,
+ args: formData?.args?.map((arg) => arg.value).filter(Boolean),
})
.then(async () => {
toast.success("Custom Command Updated");
@@ -128,13 +144,68 @@ export const ShowCustomCommand = ({ id, type }: Props) => {
Command
-
+
)}
/>
+
+
+
+
Arguments (Args)
+
append({ value: "" })}
+ >
+
+ Add Argument
+
+
+
+ {fields.length === 0 && (
+
+ No arguments added yet. Click "Add Argument" to add one.
+
+ )}
+
+ {fields.map((field, index) => (
+
(
+
+
+
+
+
+ remove(index)}
+ >
+
+
+
+
+
+ )}
+ />
+ ))}
+
+
Save
diff --git a/apps/dokploy/drizzle/0123_cloudy_piledriver.sql b/apps/dokploy/drizzle/0123_cloudy_piledriver.sql
new file mode 100644
index 000000000..f22acca3b
--- /dev/null
+++ b/apps/dokploy/drizzle/0123_cloudy_piledriver.sql
@@ -0,0 +1,6 @@
+ALTER TABLE "application" ADD COLUMN "args" text[];--> statement-breakpoint
+ALTER TABLE "mariadb" ADD COLUMN "args" text[];--> statement-breakpoint
+ALTER TABLE "mongo" ADD COLUMN "args" text[];--> statement-breakpoint
+ALTER TABLE "mysql" ADD COLUMN "args" text[];--> statement-breakpoint
+ALTER TABLE "postgres" ADD COLUMN "args" text[];--> statement-breakpoint
+ALTER TABLE "redis" ADD COLUMN "args" text[];
\ No newline at end of file
diff --git a/apps/dokploy/drizzle/meta/0123_snapshot.json b/apps/dokploy/drizzle/meta/0123_snapshot.json
new file mode 100644
index 000000000..e87ba294a
--- /dev/null
+++ b/apps/dokploy/drizzle/meta/0123_snapshot.json
@@ -0,0 +1,6831 @@
+{
+ "id": "17f0ef78-5e56-42d6-a79b-2bbdf87ede6e",
+ "prevId": "777101fe-5db7-4975-b3b9-4afa3cf82364",
+ "version": "7",
+ "dialect": "postgresql",
+ "tables": {
+ "public.account": {
+ "name": "account",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "account_id": {
+ "name": "account_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "provider_id": {
+ "name": "provider_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "id_token": {
+ "name": "id_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "access_token_expires_at": {
+ "name": "access_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token_expires_at": {
+ "name": "refresh_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scope": {
+ "name": "scope",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "is2FAEnabled": {
+ "name": "is2FAEnabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "resetPasswordToken": {
+ "name": "resetPasswordToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "resetPasswordExpiresAt": {
+ "name": "resetPasswordExpiresAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "confirmationToken": {
+ "name": "confirmationToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "confirmationExpiresAt": {
+ "name": "confirmationExpiresAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "account_user_id_user_id_fk": {
+ "name": "account_user_id_user_id_fk",
+ "tableFrom": "account",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.apikey": {
+ "name": "apikey",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "start": {
+ "name": "start",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "prefix": {
+ "name": "prefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "key": {
+ "name": "key",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "refill_interval": {
+ "name": "refill_interval",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refill_amount": {
+ "name": "refill_amount",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "last_refill_at": {
+ "name": "last_refill_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rate_limit_enabled": {
+ "name": "rate_limit_enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rate_limit_time_window": {
+ "name": "rate_limit_time_window",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rate_limit_max": {
+ "name": "rate_limit_max",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "request_count": {
+ "name": "request_count",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "remaining": {
+ "name": "remaining",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "last_request": {
+ "name": "last_request",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "permissions": {
+ "name": "permissions",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "apikey_user_id_user_id_fk": {
+ "name": "apikey_user_id_user_id_fk",
+ "tableFrom": "apikey",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.invitation": {
+ "name": "invitation",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "status": {
+ "name": "status",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "inviter_id": {
+ "name": "inviter_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "team_id": {
+ "name": "team_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "invitation_organization_id_organization_id_fk": {
+ "name": "invitation_organization_id_organization_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "invitation_inviter_id_user_id_fk": {
+ "name": "invitation_inviter_id_user_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "user",
+ "columnsFrom": [
+ "inviter_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.member": {
+ "name": "member",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "team_id": {
+ "name": "team_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "is_default": {
+ "name": "is_default",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canCreateProjects": {
+ "name": "canCreateProjects",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToSSHKeys": {
+ "name": "canAccessToSSHKeys",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canCreateServices": {
+ "name": "canCreateServices",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canDeleteProjects": {
+ "name": "canDeleteProjects",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canDeleteServices": {
+ "name": "canDeleteServices",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToDocker": {
+ "name": "canAccessToDocker",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToAPI": {
+ "name": "canAccessToAPI",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToGitProviders": {
+ "name": "canAccessToGitProviders",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToTraefikFiles": {
+ "name": "canAccessToTraefikFiles",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canDeleteEnvironments": {
+ "name": "canDeleteEnvironments",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canCreateEnvironments": {
+ "name": "canCreateEnvironments",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "accesedProjects": {
+ "name": "accesedProjects",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "ARRAY[]::text[]"
+ },
+ "accessedEnvironments": {
+ "name": "accessedEnvironments",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "ARRAY[]::text[]"
+ },
+ "accesedServices": {
+ "name": "accesedServices",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "ARRAY[]::text[]"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "member_organization_id_organization_id_fk": {
+ "name": "member_organization_id_organization_id_fk",
+ "tableFrom": "member",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "member_user_id_user_id_fk": {
+ "name": "member_user_id_user_id_fk",
+ "tableFrom": "member",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.organization": {
+ "name": "organization",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "slug": {
+ "name": "slug",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "logo": {
+ "name": "logo",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "owner_id": {
+ "name": "owner_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "organization_owner_id_user_id_fk": {
+ "name": "organization_owner_id_user_id_fk",
+ "tableFrom": "organization",
+ "tableTo": "user",
+ "columnsFrom": [
+ "owner_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "organization_slug_unique": {
+ "name": "organization_slug_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "slug"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.two_factor": {
+ "name": "two_factor",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "secret": {
+ "name": "secret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "backup_codes": {
+ "name": "backup_codes",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "two_factor_user_id_user_id_fk": {
+ "name": "two_factor_user_id_user_id_fk",
+ "tableFrom": "two_factor",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.verification": {
+ "name": "verification",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "identifier": {
+ "name": "identifier",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "value": {
+ "name": "value",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ai": {
+ "name": "ai",
+ "schema": "",
+ "columns": {
+ "aiId": {
+ "name": "aiId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "apiUrl": {
+ "name": "apiUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "apiKey": {
+ "name": "apiKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "model": {
+ "name": "model",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "isEnabled": {
+ "name": "isEnabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "ai_organizationId_organization_id_fk": {
+ "name": "ai_organizationId_organization_id_fk",
+ "tableFrom": "ai",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.application": {
+ "name": "application",
+ "schema": "",
+ "columns": {
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewEnv": {
+ "name": "previewEnv",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "watchPaths": {
+ "name": "watchPaths",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewBuildArgs": {
+ "name": "previewBuildArgs",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewBuildSecrets": {
+ "name": "previewBuildSecrets",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewLabels": {
+ "name": "previewLabels",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewWildcard": {
+ "name": "previewWildcard",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewPort": {
+ "name": "previewPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false,
+ "default": 3000
+ },
+ "previewHttps": {
+ "name": "previewHttps",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "previewPath": {
+ "name": "previewPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "certificateType": {
+ "name": "certificateType",
+ "type": "certificateType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'none'"
+ },
+ "previewCustomCertResolver": {
+ "name": "previewCustomCertResolver",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewLimit": {
+ "name": "previewLimit",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false,
+ "default": 3
+ },
+ "isPreviewDeploymentsActive": {
+ "name": "isPreviewDeploymentsActive",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "previewRequireCollaboratorPermissions": {
+ "name": "previewRequireCollaboratorPermissions",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": true
+ },
+ "rollbackActive": {
+ "name": "rollbackActive",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "buildArgs": {
+ "name": "buildArgs",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildSecrets": {
+ "name": "buildSecrets",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "title": {
+ "name": "title",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "subtitle": {
+ "name": "subtitle",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "args": {
+ "name": "args",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refreshToken": {
+ "name": "refreshToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "sourceType": {
+ "name": "sourceType",
+ "type": "sourceType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'github'"
+ },
+ "cleanCache": {
+ "name": "cleanCache",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "repository": {
+ "name": "repository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "owner": {
+ "name": "owner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "branch": {
+ "name": "branch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildPath": {
+ "name": "buildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "triggerType": {
+ "name": "triggerType",
+ "type": "triggerType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'push'"
+ },
+ "autoDeploy": {
+ "name": "autoDeploy",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabProjectId": {
+ "name": "gitlabProjectId",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabRepository": {
+ "name": "gitlabRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabOwner": {
+ "name": "gitlabOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabBranch": {
+ "name": "gitlabBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabBuildPath": {
+ "name": "gitlabBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "gitlabPathNamespace": {
+ "name": "gitlabPathNamespace",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaRepository": {
+ "name": "giteaRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaOwner": {
+ "name": "giteaOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaBranch": {
+ "name": "giteaBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaBuildPath": {
+ "name": "giteaBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "bitbucketRepository": {
+ "name": "bitbucketRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketOwner": {
+ "name": "bitbucketOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketBranch": {
+ "name": "bitbucketBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketBuildPath": {
+ "name": "bitbucketBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "registryUrl": {
+ "name": "registryUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitUrl": {
+ "name": "customGitUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitBranch": {
+ "name": "customGitBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitBuildPath": {
+ "name": "customGitBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitSSHKeyId": {
+ "name": "customGitSSHKeyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enableSubmodules": {
+ "name": "enableSubmodules",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "dockerfile": {
+ "name": "dockerfile",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerContextPath": {
+ "name": "dockerContextPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerBuildStage": {
+ "name": "dockerBuildStage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dropBuildPath": {
+ "name": "dropBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "buildType": {
+ "name": "buildType",
+ "type": "buildType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'nixpacks'"
+ },
+ "railpackVersion": {
+ "name": "railpackVersion",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'0.2.2'"
+ },
+ "herokuVersion": {
+ "name": "herokuVersion",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'24'"
+ },
+ "publishDirectory": {
+ "name": "publishDirectory",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "isStaticSpa": {
+ "name": "isStaticSpa",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "registryId": {
+ "name": "registryId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "githubId": {
+ "name": "githubId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabId": {
+ "name": "gitlabId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaId": {
+ "name": "giteaId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketId": {
+ "name": "bitbucketId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildServerId": {
+ "name": "buildServerId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildRegistryId": {
+ "name": "buildRegistryId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "application_customGitSSHKeyId_ssh-key_sshKeyId_fk": {
+ "name": "application_customGitSSHKeyId_ssh-key_sshKeyId_fk",
+ "tableFrom": "application",
+ "tableTo": "ssh-key",
+ "columnsFrom": [
+ "customGitSSHKeyId"
+ ],
+ "columnsTo": [
+ "sshKeyId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_registryId_registry_registryId_fk": {
+ "name": "application_registryId_registry_registryId_fk",
+ "tableFrom": "application",
+ "tableTo": "registry",
+ "columnsFrom": [
+ "registryId"
+ ],
+ "columnsTo": [
+ "registryId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_environmentId_environment_environmentId_fk": {
+ "name": "application_environmentId_environment_environmentId_fk",
+ "tableFrom": "application",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "application_githubId_github_githubId_fk": {
+ "name": "application_githubId_github_githubId_fk",
+ "tableFrom": "application",
+ "tableTo": "github",
+ "columnsFrom": [
+ "githubId"
+ ],
+ "columnsTo": [
+ "githubId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_gitlabId_gitlab_gitlabId_fk": {
+ "name": "application_gitlabId_gitlab_gitlabId_fk",
+ "tableFrom": "application",
+ "tableTo": "gitlab",
+ "columnsFrom": [
+ "gitlabId"
+ ],
+ "columnsTo": [
+ "gitlabId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_giteaId_gitea_giteaId_fk": {
+ "name": "application_giteaId_gitea_giteaId_fk",
+ "tableFrom": "application",
+ "tableTo": "gitea",
+ "columnsFrom": [
+ "giteaId"
+ ],
+ "columnsTo": [
+ "giteaId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_bitbucketId_bitbucket_bitbucketId_fk": {
+ "name": "application_bitbucketId_bitbucket_bitbucketId_fk",
+ "tableFrom": "application",
+ "tableTo": "bitbucket",
+ "columnsFrom": [
+ "bitbucketId"
+ ],
+ "columnsTo": [
+ "bitbucketId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_serverId_server_serverId_fk": {
+ "name": "application_serverId_server_serverId_fk",
+ "tableFrom": "application",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "application_buildServerId_server_serverId_fk": {
+ "name": "application_buildServerId_server_serverId_fk",
+ "tableFrom": "application",
+ "tableTo": "server",
+ "columnsFrom": [
+ "buildServerId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_buildRegistryId_registry_registryId_fk": {
+ "name": "application_buildRegistryId_registry_registryId_fk",
+ "tableFrom": "application",
+ "tableTo": "registry",
+ "columnsFrom": [
+ "buildRegistryId"
+ ],
+ "columnsTo": [
+ "registryId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "application_appName_unique": {
+ "name": "application_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.backup": {
+ "name": "backup",
+ "schema": "",
+ "columns": {
+ "backupId": {
+ "name": "backupId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "schedule": {
+ "name": "schedule",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "database": {
+ "name": "database",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "prefix": {
+ "name": "prefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "destinationId": {
+ "name": "destinationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "keepLatestCount": {
+ "name": "keepLatestCount",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "backupType": {
+ "name": "backupType",
+ "type": "backupType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'database'"
+ },
+ "databaseType": {
+ "name": "databaseType",
+ "type": "databaseType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "userId": {
+ "name": "userId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "backup_destinationId_destination_destinationId_fk": {
+ "name": "backup_destinationId_destination_destinationId_fk",
+ "tableFrom": "backup",
+ "tableTo": "destination",
+ "columnsFrom": [
+ "destinationId"
+ ],
+ "columnsTo": [
+ "destinationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_composeId_compose_composeId_fk": {
+ "name": "backup_composeId_compose_composeId_fk",
+ "tableFrom": "backup",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_postgresId_postgres_postgresId_fk": {
+ "name": "backup_postgresId_postgres_postgresId_fk",
+ "tableFrom": "backup",
+ "tableTo": "postgres",
+ "columnsFrom": [
+ "postgresId"
+ ],
+ "columnsTo": [
+ "postgresId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_mariadbId_mariadb_mariadbId_fk": {
+ "name": "backup_mariadbId_mariadb_mariadbId_fk",
+ "tableFrom": "backup",
+ "tableTo": "mariadb",
+ "columnsFrom": [
+ "mariadbId"
+ ],
+ "columnsTo": [
+ "mariadbId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_mysqlId_mysql_mysqlId_fk": {
+ "name": "backup_mysqlId_mysql_mysqlId_fk",
+ "tableFrom": "backup",
+ "tableTo": "mysql",
+ "columnsFrom": [
+ "mysqlId"
+ ],
+ "columnsTo": [
+ "mysqlId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_mongoId_mongo_mongoId_fk": {
+ "name": "backup_mongoId_mongo_mongoId_fk",
+ "tableFrom": "backup",
+ "tableTo": "mongo",
+ "columnsFrom": [
+ "mongoId"
+ ],
+ "columnsTo": [
+ "mongoId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_userId_user_id_fk": {
+ "name": "backup_userId_user_id_fk",
+ "tableFrom": "backup",
+ "tableTo": "user",
+ "columnsFrom": [
+ "userId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "backup_appName_unique": {
+ "name": "backup_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.bitbucket": {
+ "name": "bitbucket",
+ "schema": "",
+ "columns": {
+ "bitbucketId": {
+ "name": "bitbucketId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "bitbucketUsername": {
+ "name": "bitbucketUsername",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketEmail": {
+ "name": "bitbucketEmail",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "appPassword": {
+ "name": "appPassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "apiToken": {
+ "name": "apiToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketWorkspaceName": {
+ "name": "bitbucketWorkspaceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "bitbucket_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "bitbucket_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "bitbucket",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.certificate": {
+ "name": "certificate",
+ "schema": "",
+ "columns": {
+ "certificateId": {
+ "name": "certificateId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "certificateData": {
+ "name": "certificateData",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "privateKey": {
+ "name": "privateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "certificatePath": {
+ "name": "certificatePath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "autoRenew": {
+ "name": "autoRenew",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "certificate_organizationId_organization_id_fk": {
+ "name": "certificate_organizationId_organization_id_fk",
+ "tableFrom": "certificate",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "certificate_serverId_server_serverId_fk": {
+ "name": "certificate_serverId_server_serverId_fk",
+ "tableFrom": "certificate",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "certificate_certificatePath_unique": {
+ "name": "certificate_certificatePath_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "certificatePath"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.compose": {
+ "name": "compose",
+ "schema": "",
+ "columns": {
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeFile": {
+ "name": "composeFile",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "refreshToken": {
+ "name": "refreshToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "sourceType": {
+ "name": "sourceType",
+ "type": "sourceTypeCompose",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'github'"
+ },
+ "composeType": {
+ "name": "composeType",
+ "type": "composeType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'docker-compose'"
+ },
+ "repository": {
+ "name": "repository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "owner": {
+ "name": "owner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "branch": {
+ "name": "branch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "autoDeploy": {
+ "name": "autoDeploy",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabProjectId": {
+ "name": "gitlabProjectId",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabRepository": {
+ "name": "gitlabRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabOwner": {
+ "name": "gitlabOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabBranch": {
+ "name": "gitlabBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabPathNamespace": {
+ "name": "gitlabPathNamespace",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketRepository": {
+ "name": "bitbucketRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketOwner": {
+ "name": "bitbucketOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketBranch": {
+ "name": "bitbucketBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaRepository": {
+ "name": "giteaRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaOwner": {
+ "name": "giteaOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaBranch": {
+ "name": "giteaBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitUrl": {
+ "name": "customGitUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitBranch": {
+ "name": "customGitBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitSSHKeyId": {
+ "name": "customGitSSHKeyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "enableSubmodules": {
+ "name": "enableSubmodules",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "composePath": {
+ "name": "composePath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'./docker-compose.yml'"
+ },
+ "suffix": {
+ "name": "suffix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "randomize": {
+ "name": "randomize",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "isolatedDeployment": {
+ "name": "isolatedDeployment",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "isolatedDeploymentsVolume": {
+ "name": "isolatedDeploymentsVolume",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "triggerType": {
+ "name": "triggerType",
+ "type": "triggerType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'push'"
+ },
+ "composeStatus": {
+ "name": "composeStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "watchPaths": {
+ "name": "watchPaths",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubId": {
+ "name": "githubId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabId": {
+ "name": "gitlabId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketId": {
+ "name": "bitbucketId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaId": {
+ "name": "giteaId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk": {
+ "name": "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk",
+ "tableFrom": "compose",
+ "tableTo": "ssh-key",
+ "columnsFrom": [
+ "customGitSSHKeyId"
+ ],
+ "columnsTo": [
+ "sshKeyId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_environmentId_environment_environmentId_fk": {
+ "name": "compose_environmentId_environment_environmentId_fk",
+ "tableFrom": "compose",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "compose_githubId_github_githubId_fk": {
+ "name": "compose_githubId_github_githubId_fk",
+ "tableFrom": "compose",
+ "tableTo": "github",
+ "columnsFrom": [
+ "githubId"
+ ],
+ "columnsTo": [
+ "githubId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_gitlabId_gitlab_gitlabId_fk": {
+ "name": "compose_gitlabId_gitlab_gitlabId_fk",
+ "tableFrom": "compose",
+ "tableTo": "gitlab",
+ "columnsFrom": [
+ "gitlabId"
+ ],
+ "columnsTo": [
+ "gitlabId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_bitbucketId_bitbucket_bitbucketId_fk": {
+ "name": "compose_bitbucketId_bitbucket_bitbucketId_fk",
+ "tableFrom": "compose",
+ "tableTo": "bitbucket",
+ "columnsFrom": [
+ "bitbucketId"
+ ],
+ "columnsTo": [
+ "bitbucketId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_giteaId_gitea_giteaId_fk": {
+ "name": "compose_giteaId_gitea_giteaId_fk",
+ "tableFrom": "compose",
+ "tableTo": "gitea",
+ "columnsFrom": [
+ "giteaId"
+ ],
+ "columnsTo": [
+ "giteaId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_serverId_server_serverId_fk": {
+ "name": "compose_serverId_server_serverId_fk",
+ "tableFrom": "compose",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.deployment": {
+ "name": "deployment",
+ "schema": "",
+ "columns": {
+ "deploymentId": {
+ "name": "deploymentId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "title": {
+ "name": "title",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "status": {
+ "name": "status",
+ "type": "deploymentStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'running'"
+ },
+ "logPath": {
+ "name": "logPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pid": {
+ "name": "pid",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "isPreviewDeployment": {
+ "name": "isPreviewDeployment",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "previewDeploymentId": {
+ "name": "previewDeploymentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "startedAt": {
+ "name": "startedAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "finishedAt": {
+ "name": "finishedAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "errorMessage": {
+ "name": "errorMessage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scheduleId": {
+ "name": "scheduleId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "backupId": {
+ "name": "backupId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackId": {
+ "name": "rollbackId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "volumeBackupId": {
+ "name": "volumeBackupId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildServerId": {
+ "name": "buildServerId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "deployment_applicationId_application_applicationId_fk": {
+ "name": "deployment_applicationId_application_applicationId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_composeId_compose_composeId_fk": {
+ "name": "deployment_composeId_compose_composeId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_serverId_server_serverId_fk": {
+ "name": "deployment_serverId_server_serverId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_previewDeploymentId_preview_deployments_previewDeploymentId_fk": {
+ "name": "deployment_previewDeploymentId_preview_deployments_previewDeploymentId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "preview_deployments",
+ "columnsFrom": [
+ "previewDeploymentId"
+ ],
+ "columnsTo": [
+ "previewDeploymentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_scheduleId_schedule_scheduleId_fk": {
+ "name": "deployment_scheduleId_schedule_scheduleId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "schedule",
+ "columnsFrom": [
+ "scheduleId"
+ ],
+ "columnsTo": [
+ "scheduleId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_backupId_backup_backupId_fk": {
+ "name": "deployment_backupId_backup_backupId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "backup",
+ "columnsFrom": [
+ "backupId"
+ ],
+ "columnsTo": [
+ "backupId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_rollbackId_rollback_rollbackId_fk": {
+ "name": "deployment_rollbackId_rollback_rollbackId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "rollback",
+ "columnsFrom": [
+ "rollbackId"
+ ],
+ "columnsTo": [
+ "rollbackId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_volumeBackupId_volume_backup_volumeBackupId_fk": {
+ "name": "deployment_volumeBackupId_volume_backup_volumeBackupId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "volume_backup",
+ "columnsFrom": [
+ "volumeBackupId"
+ ],
+ "columnsTo": [
+ "volumeBackupId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_buildServerId_server_serverId_fk": {
+ "name": "deployment_buildServerId_server_serverId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "server",
+ "columnsFrom": [
+ "buildServerId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.destination": {
+ "name": "destination",
+ "schema": "",
+ "columns": {
+ "destinationId": {
+ "name": "destinationId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "provider": {
+ "name": "provider",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "accessKey": {
+ "name": "accessKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "secretAccessKey": {
+ "name": "secretAccessKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "bucket": {
+ "name": "bucket",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "region": {
+ "name": "region",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "endpoint": {
+ "name": "endpoint",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "destination_organizationId_organization_id_fk": {
+ "name": "destination_organizationId_organization_id_fk",
+ "tableFrom": "destination",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.domain": {
+ "name": "domain",
+ "schema": "",
+ "columns": {
+ "domainId": {
+ "name": "domainId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "host": {
+ "name": "host",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "https": {
+ "name": "https",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "port": {
+ "name": "port",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false,
+ "default": 3000
+ },
+ "path": {
+ "name": "path",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "domainType": {
+ "name": "domainType",
+ "type": "domainType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'application'"
+ },
+ "uniqueConfigKey": {
+ "name": "uniqueConfigKey",
+ "type": "serial",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customCertResolver": {
+ "name": "customCertResolver",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewDeploymentId": {
+ "name": "previewDeploymentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "certificateType": {
+ "name": "certificateType",
+ "type": "certificateType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'none'"
+ },
+ "internalPath": {
+ "name": "internalPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "stripPath": {
+ "name": "stripPath",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "domain_composeId_compose_composeId_fk": {
+ "name": "domain_composeId_compose_composeId_fk",
+ "tableFrom": "domain",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "domain_applicationId_application_applicationId_fk": {
+ "name": "domain_applicationId_application_applicationId_fk",
+ "tableFrom": "domain",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "domain_previewDeploymentId_preview_deployments_previewDeploymentId_fk": {
+ "name": "domain_previewDeploymentId_preview_deployments_previewDeploymentId_fk",
+ "tableFrom": "domain",
+ "tableTo": "preview_deployments",
+ "columnsFrom": [
+ "previewDeploymentId"
+ ],
+ "columnsTo": [
+ "previewDeploymentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.environment": {
+ "name": "environment",
+ "schema": "",
+ "columns": {
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "projectId": {
+ "name": "projectId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "environment_projectId_project_projectId_fk": {
+ "name": "environment_projectId_project_projectId_fk",
+ "tableFrom": "environment",
+ "tableTo": "project",
+ "columnsFrom": [
+ "projectId"
+ ],
+ "columnsTo": [
+ "projectId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.git_provider": {
+ "name": "git_provider",
+ "schema": "",
+ "columns": {
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "providerType": {
+ "name": "providerType",
+ "type": "gitProviderType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'github'"
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "userId": {
+ "name": "userId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "git_provider_organizationId_organization_id_fk": {
+ "name": "git_provider_organizationId_organization_id_fk",
+ "tableFrom": "git_provider",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "git_provider_userId_user_id_fk": {
+ "name": "git_provider_userId_user_id_fk",
+ "tableFrom": "git_provider",
+ "tableTo": "user",
+ "columnsFrom": [
+ "userId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.gitea": {
+ "name": "gitea",
+ "schema": "",
+ "columns": {
+ "giteaId": {
+ "name": "giteaId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "giteaUrl": {
+ "name": "giteaUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'https://gitea.com'"
+ },
+ "redirect_uri": {
+ "name": "redirect_uri",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "client_id": {
+ "name": "client_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "client_secret": {
+ "name": "client_secret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scopes": {
+ "name": "scopes",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'repo,repo:status,read:user,read:org'"
+ },
+ "last_authenticated_at": {
+ "name": "last_authenticated_at",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "gitea_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "gitea_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "gitea",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.github": {
+ "name": "github",
+ "schema": "",
+ "columns": {
+ "githubId": {
+ "name": "githubId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "githubAppName": {
+ "name": "githubAppName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubAppId": {
+ "name": "githubAppId",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubClientId": {
+ "name": "githubClientId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubClientSecret": {
+ "name": "githubClientSecret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubInstallationId": {
+ "name": "githubInstallationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubPrivateKey": {
+ "name": "githubPrivateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubWebhookSecret": {
+ "name": "githubWebhookSecret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "github_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "github_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "github",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.gitlab": {
+ "name": "gitlab",
+ "schema": "",
+ "columns": {
+ "gitlabId": {
+ "name": "gitlabId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "gitlabUrl": {
+ "name": "gitlabUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'https://gitlab.com'"
+ },
+ "application_id": {
+ "name": "application_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "redirect_uri": {
+ "name": "redirect_uri",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "secret": {
+ "name": "secret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "group_name": {
+ "name": "group_name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "gitlab_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "gitlab_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "gitlab",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mariadb": {
+ "name": "mariadb",
+ "schema": "",
+ "columns": {
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "databaseName": {
+ "name": "databaseName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "rootPassword": {
+ "name": "rootPassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "args": {
+ "name": "args",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mariadb_environmentId_environment_environmentId_fk": {
+ "name": "mariadb_environmentId_environment_environmentId_fk",
+ "tableFrom": "mariadb",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mariadb_serverId_server_serverId_fk": {
+ "name": "mariadb_serverId_server_serverId_fk",
+ "tableFrom": "mariadb",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "mariadb_appName_unique": {
+ "name": "mariadb_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mongo": {
+ "name": "mongo",
+ "schema": "",
+ "columns": {
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "args": {
+ "name": "args",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicaSets": {
+ "name": "replicaSets",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mongo_environmentId_environment_environmentId_fk": {
+ "name": "mongo_environmentId_environment_environmentId_fk",
+ "tableFrom": "mongo",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mongo_serverId_server_serverId_fk": {
+ "name": "mongo_serverId_server_serverId_fk",
+ "tableFrom": "mongo",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "mongo_appName_unique": {
+ "name": "mongo_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mount": {
+ "name": "mount",
+ "schema": "",
+ "columns": {
+ "mountId": {
+ "name": "mountId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "type": {
+ "name": "type",
+ "type": "mountType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "hostPath": {
+ "name": "hostPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "volumeName": {
+ "name": "volumeName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "filePath": {
+ "name": "filePath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "content": {
+ "name": "content",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serviceType": {
+ "name": "serviceType",
+ "type": "serviceType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'application'"
+ },
+ "mountPath": {
+ "name": "mountPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "redisId": {
+ "name": "redisId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mount_applicationId_application_applicationId_fk": {
+ "name": "mount_applicationId_application_applicationId_fk",
+ "tableFrom": "mount",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_postgresId_postgres_postgresId_fk": {
+ "name": "mount_postgresId_postgres_postgresId_fk",
+ "tableFrom": "mount",
+ "tableTo": "postgres",
+ "columnsFrom": [
+ "postgresId"
+ ],
+ "columnsTo": [
+ "postgresId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_mariadbId_mariadb_mariadbId_fk": {
+ "name": "mount_mariadbId_mariadb_mariadbId_fk",
+ "tableFrom": "mount",
+ "tableTo": "mariadb",
+ "columnsFrom": [
+ "mariadbId"
+ ],
+ "columnsTo": [
+ "mariadbId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_mongoId_mongo_mongoId_fk": {
+ "name": "mount_mongoId_mongo_mongoId_fk",
+ "tableFrom": "mount",
+ "tableTo": "mongo",
+ "columnsFrom": [
+ "mongoId"
+ ],
+ "columnsTo": [
+ "mongoId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_mysqlId_mysql_mysqlId_fk": {
+ "name": "mount_mysqlId_mysql_mysqlId_fk",
+ "tableFrom": "mount",
+ "tableTo": "mysql",
+ "columnsFrom": [
+ "mysqlId"
+ ],
+ "columnsTo": [
+ "mysqlId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_redisId_redis_redisId_fk": {
+ "name": "mount_redisId_redis_redisId_fk",
+ "tableFrom": "mount",
+ "tableTo": "redis",
+ "columnsFrom": [
+ "redisId"
+ ],
+ "columnsTo": [
+ "redisId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_composeId_compose_composeId_fk": {
+ "name": "mount_composeId_compose_composeId_fk",
+ "tableFrom": "mount",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mysql": {
+ "name": "mysql",
+ "schema": "",
+ "columns": {
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "databaseName": {
+ "name": "databaseName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "rootPassword": {
+ "name": "rootPassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "args": {
+ "name": "args",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mysql_environmentId_environment_environmentId_fk": {
+ "name": "mysql_environmentId_environment_environmentId_fk",
+ "tableFrom": "mysql",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mysql_serverId_server_serverId_fk": {
+ "name": "mysql_serverId_server_serverId_fk",
+ "tableFrom": "mysql",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "mysql_appName_unique": {
+ "name": "mysql_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.discord": {
+ "name": "discord",
+ "schema": "",
+ "columns": {
+ "discordId": {
+ "name": "discordId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "webhookUrl": {
+ "name": "webhookUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "decoration": {
+ "name": "decoration",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.email": {
+ "name": "email",
+ "schema": "",
+ "columns": {
+ "emailId": {
+ "name": "emailId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "smtpServer": {
+ "name": "smtpServer",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "smtpPort": {
+ "name": "smtpPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "fromAddress": {
+ "name": "fromAddress",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "toAddress": {
+ "name": "toAddress",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.gotify": {
+ "name": "gotify",
+ "schema": "",
+ "columns": {
+ "gotifyId": {
+ "name": "gotifyId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "serverUrl": {
+ "name": "serverUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appToken": {
+ "name": "appToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "priority": {
+ "name": "priority",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 5
+ },
+ "decoration": {
+ "name": "decoration",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.lark": {
+ "name": "lark",
+ "schema": "",
+ "columns": {
+ "larkId": {
+ "name": "larkId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "webhookUrl": {
+ "name": "webhookUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.notification": {
+ "name": "notification",
+ "schema": "",
+ "columns": {
+ "notificationId": {
+ "name": "notificationId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appDeploy": {
+ "name": "appDeploy",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "appBuildError": {
+ "name": "appBuildError",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "databaseBackup": {
+ "name": "databaseBackup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "dokployRestart": {
+ "name": "dokployRestart",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "dockerCleanup": {
+ "name": "dockerCleanup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "serverThreshold": {
+ "name": "serverThreshold",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "notificationType": {
+ "name": "notificationType",
+ "type": "notificationType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "slackId": {
+ "name": "slackId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "telegramId": {
+ "name": "telegramId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "discordId": {
+ "name": "discordId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "emailId": {
+ "name": "emailId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gotifyId": {
+ "name": "gotifyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ntfyId": {
+ "name": "ntfyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "larkId": {
+ "name": "larkId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "notification_slackId_slack_slackId_fk": {
+ "name": "notification_slackId_slack_slackId_fk",
+ "tableFrom": "notification",
+ "tableTo": "slack",
+ "columnsFrom": [
+ "slackId"
+ ],
+ "columnsTo": [
+ "slackId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_telegramId_telegram_telegramId_fk": {
+ "name": "notification_telegramId_telegram_telegramId_fk",
+ "tableFrom": "notification",
+ "tableTo": "telegram",
+ "columnsFrom": [
+ "telegramId"
+ ],
+ "columnsTo": [
+ "telegramId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_discordId_discord_discordId_fk": {
+ "name": "notification_discordId_discord_discordId_fk",
+ "tableFrom": "notification",
+ "tableTo": "discord",
+ "columnsFrom": [
+ "discordId"
+ ],
+ "columnsTo": [
+ "discordId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_emailId_email_emailId_fk": {
+ "name": "notification_emailId_email_emailId_fk",
+ "tableFrom": "notification",
+ "tableTo": "email",
+ "columnsFrom": [
+ "emailId"
+ ],
+ "columnsTo": [
+ "emailId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_gotifyId_gotify_gotifyId_fk": {
+ "name": "notification_gotifyId_gotify_gotifyId_fk",
+ "tableFrom": "notification",
+ "tableTo": "gotify",
+ "columnsFrom": [
+ "gotifyId"
+ ],
+ "columnsTo": [
+ "gotifyId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_ntfyId_ntfy_ntfyId_fk": {
+ "name": "notification_ntfyId_ntfy_ntfyId_fk",
+ "tableFrom": "notification",
+ "tableTo": "ntfy",
+ "columnsFrom": [
+ "ntfyId"
+ ],
+ "columnsTo": [
+ "ntfyId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_larkId_lark_larkId_fk": {
+ "name": "notification_larkId_lark_larkId_fk",
+ "tableFrom": "notification",
+ "tableTo": "lark",
+ "columnsFrom": [
+ "larkId"
+ ],
+ "columnsTo": [
+ "larkId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_organizationId_organization_id_fk": {
+ "name": "notification_organizationId_organization_id_fk",
+ "tableFrom": "notification",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ntfy": {
+ "name": "ntfy",
+ "schema": "",
+ "columns": {
+ "ntfyId": {
+ "name": "ntfyId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "serverUrl": {
+ "name": "serverUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "topic": {
+ "name": "topic",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "accessToken": {
+ "name": "accessToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "priority": {
+ "name": "priority",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 3
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.slack": {
+ "name": "slack",
+ "schema": "",
+ "columns": {
+ "slackId": {
+ "name": "slackId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "webhookUrl": {
+ "name": "webhookUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "channel": {
+ "name": "channel",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.telegram": {
+ "name": "telegram",
+ "schema": "",
+ "columns": {
+ "telegramId": {
+ "name": "telegramId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "botToken": {
+ "name": "botToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "chatId": {
+ "name": "chatId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "messageThreadId": {
+ "name": "messageThreadId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.port": {
+ "name": "port",
+ "schema": "",
+ "columns": {
+ "portId": {
+ "name": "portId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "publishedPort": {
+ "name": "publishedPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "publishMode": {
+ "name": "publishMode",
+ "type": "publishModeType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'host'"
+ },
+ "targetPort": {
+ "name": "targetPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "protocol": {
+ "name": "protocol",
+ "type": "protocolType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "port_applicationId_application_applicationId_fk": {
+ "name": "port_applicationId_application_applicationId_fk",
+ "tableFrom": "port",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.postgres": {
+ "name": "postgres",
+ "schema": "",
+ "columns": {
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseName": {
+ "name": "databaseName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "args": {
+ "name": "args",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "postgres_environmentId_environment_environmentId_fk": {
+ "name": "postgres_environmentId_environment_environmentId_fk",
+ "tableFrom": "postgres",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "postgres_serverId_server_serverId_fk": {
+ "name": "postgres_serverId_server_serverId_fk",
+ "tableFrom": "postgres",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "postgres_appName_unique": {
+ "name": "postgres_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.preview_deployments": {
+ "name": "preview_deployments",
+ "schema": "",
+ "columns": {
+ "previewDeploymentId": {
+ "name": "previewDeploymentId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "branch": {
+ "name": "branch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestId": {
+ "name": "pullRequestId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestNumber": {
+ "name": "pullRequestNumber",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestURL": {
+ "name": "pullRequestURL",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestTitle": {
+ "name": "pullRequestTitle",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestCommentId": {
+ "name": "pullRequestCommentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "previewStatus": {
+ "name": "previewStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "domainId": {
+ "name": "domainId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expiresAt": {
+ "name": "expiresAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "preview_deployments_applicationId_application_applicationId_fk": {
+ "name": "preview_deployments_applicationId_application_applicationId_fk",
+ "tableFrom": "preview_deployments",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "preview_deployments_domainId_domain_domainId_fk": {
+ "name": "preview_deployments_domainId_domain_domainId_fk",
+ "tableFrom": "preview_deployments",
+ "tableTo": "domain",
+ "columnsFrom": [
+ "domainId"
+ ],
+ "columnsTo": [
+ "domainId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "preview_deployments_appName_unique": {
+ "name": "preview_deployments_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.project": {
+ "name": "project",
+ "schema": "",
+ "columns": {
+ "projectId": {
+ "name": "projectId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "project_organizationId_organization_id_fk": {
+ "name": "project_organizationId_organization_id_fk",
+ "tableFrom": "project",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.redirect": {
+ "name": "redirect",
+ "schema": "",
+ "columns": {
+ "redirectId": {
+ "name": "redirectId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "regex": {
+ "name": "regex",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "replacement": {
+ "name": "replacement",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "permanent": {
+ "name": "permanent",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "uniqueConfigKey": {
+ "name": "uniqueConfigKey",
+ "type": "serial",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "redirect_applicationId_application_applicationId_fk": {
+ "name": "redirect_applicationId_application_applicationId_fk",
+ "tableFrom": "redirect",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.redis": {
+ "name": "redis",
+ "schema": "",
+ "columns": {
+ "redisId": {
+ "name": "redisId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "args": {
+ "name": "args",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "redis_environmentId_environment_environmentId_fk": {
+ "name": "redis_environmentId_environment_environmentId_fk",
+ "tableFrom": "redis",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "redis_serverId_server_serverId_fk": {
+ "name": "redis_serverId_server_serverId_fk",
+ "tableFrom": "redis",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "redis_appName_unique": {
+ "name": "redis_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.registry": {
+ "name": "registry",
+ "schema": "",
+ "columns": {
+ "registryId": {
+ "name": "registryId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "registryName": {
+ "name": "registryName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "imagePrefix": {
+ "name": "imagePrefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "registryUrl": {
+ "name": "registryUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "selfHosted": {
+ "name": "selfHosted",
+ "type": "RegistryType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'cloud'"
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "registry_organizationId_organization_id_fk": {
+ "name": "registry_organizationId_organization_id_fk",
+ "tableFrom": "registry",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.rollback": {
+ "name": "rollback",
+ "schema": "",
+ "columns": {
+ "rollbackId": {
+ "name": "rollbackId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "deploymentId": {
+ "name": "deploymentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "version": {
+ "name": "version",
+ "type": "serial",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "image": {
+ "name": "image",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "fullContext": {
+ "name": "fullContext",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "rollback_deploymentId_deployment_deploymentId_fk": {
+ "name": "rollback_deploymentId_deployment_deploymentId_fk",
+ "tableFrom": "rollback",
+ "tableTo": "deployment",
+ "columnsFrom": [
+ "deploymentId"
+ ],
+ "columnsTo": [
+ "deploymentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.schedule": {
+ "name": "schedule",
+ "schema": "",
+ "columns": {
+ "scheduleId": {
+ "name": "scheduleId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "cronExpression": {
+ "name": "cronExpression",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "shellType": {
+ "name": "shellType",
+ "type": "shellType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'bash'"
+ },
+ "scheduleType": {
+ "name": "scheduleType",
+ "type": "scheduleType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'application'"
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "script": {
+ "name": "script",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "userId": {
+ "name": "userId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "schedule_applicationId_application_applicationId_fk": {
+ "name": "schedule_applicationId_application_applicationId_fk",
+ "tableFrom": "schedule",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "schedule_composeId_compose_composeId_fk": {
+ "name": "schedule_composeId_compose_composeId_fk",
+ "tableFrom": "schedule",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "schedule_serverId_server_serverId_fk": {
+ "name": "schedule_serverId_server_serverId_fk",
+ "tableFrom": "schedule",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "schedule_userId_user_id_fk": {
+ "name": "schedule_userId_user_id_fk",
+ "tableFrom": "schedule",
+ "tableTo": "user",
+ "columnsFrom": [
+ "userId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.security": {
+ "name": "security",
+ "schema": "",
+ "columns": {
+ "securityId": {
+ "name": "securityId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "security_applicationId_application_applicationId_fk": {
+ "name": "security_applicationId_application_applicationId_fk",
+ "tableFrom": "security",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "security_username_applicationId_unique": {
+ "name": "security_username_applicationId_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "username",
+ "applicationId"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.server": {
+ "name": "server",
+ "schema": "",
+ "columns": {
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ipAddress": {
+ "name": "ipAddress",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "port": {
+ "name": "port",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'root'"
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "enableDockerCleanup": {
+ "name": "enableDockerCleanup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverStatus": {
+ "name": "serverStatus",
+ "type": "serverStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'active'"
+ },
+ "serverType": {
+ "name": "serverType",
+ "type": "serverType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'deploy'"
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "sshKeyId": {
+ "name": "sshKeyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "metricsConfig": {
+ "name": "metricsConfig",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'{\"server\":{\"type\":\"Remote\",\"refreshRate\":60,\"port\":4500,\"token\":\"\",\"urlCallback\":\"\",\"cronJob\":\"\",\"retentionDays\":2,\"thresholds\":{\"cpu\":0,\"memory\":0}},\"containers\":{\"refreshRate\":60,\"services\":{\"include\":[],\"exclude\":[]}}}'::jsonb"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "server_organizationId_organization_id_fk": {
+ "name": "server_organizationId_organization_id_fk",
+ "tableFrom": "server",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "server_sshKeyId_ssh-key_sshKeyId_fk": {
+ "name": "server_sshKeyId_ssh-key_sshKeyId_fk",
+ "tableFrom": "server",
+ "tableTo": "ssh-key",
+ "columnsFrom": [
+ "sshKeyId"
+ ],
+ "columnsTo": [
+ "sshKeyId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.session_temp": {
+ "name": "session_temp",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "token": {
+ "name": "token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "ip_address": {
+ "name": "ip_address",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_agent": {
+ "name": "user_agent",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "impersonated_by": {
+ "name": "impersonated_by",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "active_organization_id": {
+ "name": "active_organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "session_temp_user_id_user_id_fk": {
+ "name": "session_temp_user_id_user_id_fk",
+ "tableFrom": "session_temp",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "session_temp_token_unique": {
+ "name": "session_temp_token_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "token"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ssh-key": {
+ "name": "ssh-key",
+ "schema": "",
+ "columns": {
+ "sshKeyId": {
+ "name": "sshKeyId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "privateKey": {
+ "name": "privateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "publicKey": {
+ "name": "publicKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "lastUsedAt": {
+ "name": "lastUsedAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "ssh-key_organizationId_organization_id_fk": {
+ "name": "ssh-key_organizationId_organization_id_fk",
+ "tableFrom": "ssh-key",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.user": {
+ "name": "user",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "isRegistered": {
+ "name": "isRegistered",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "expirationDate": {
+ "name": "expirationDate",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "two_factor_enabled": {
+ "name": "two_factor_enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email_verified": {
+ "name": "email_verified",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "image": {
+ "name": "image",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "banned": {
+ "name": "banned",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ban_reason": {
+ "name": "ban_reason",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ban_expires": {
+ "name": "ban_expires",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverIp": {
+ "name": "serverIp",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "certificateType": {
+ "name": "certificateType",
+ "type": "certificateType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'none'"
+ },
+ "https": {
+ "name": "https",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "host": {
+ "name": "host",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "letsEncryptEmail": {
+ "name": "letsEncryptEmail",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "sshPrivateKey": {
+ "name": "sshPrivateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enableDockerCleanup": {
+ "name": "enableDockerCleanup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "logCleanupCron": {
+ "name": "logCleanupCron",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'0 0 * * *'"
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'user'"
+ },
+ "enablePaidFeatures": {
+ "name": "enablePaidFeatures",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "allowImpersonation": {
+ "name": "allowImpersonation",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "metricsConfig": {
+ "name": "metricsConfig",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'{\"server\":{\"type\":\"Dokploy\",\"refreshRate\":60,\"port\":4500,\"token\":\"\",\"retentionDays\":2,\"cronJob\":\"\",\"urlCallback\":\"\",\"thresholds\":{\"cpu\":0,\"memory\":0}},\"containers\":{\"refreshRate\":60,\"services\":{\"include\":[],\"exclude\":[]}}}'::jsonb"
+ },
+ "cleanupCacheApplications": {
+ "name": "cleanupCacheApplications",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "cleanupCacheOnPreviews": {
+ "name": "cleanupCacheOnPreviews",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "cleanupCacheOnCompose": {
+ "name": "cleanupCacheOnCompose",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "stripeCustomerId": {
+ "name": "stripeCustomerId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stripeSubscriptionId": {
+ "name": "stripeSubscriptionId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serversQuantity": {
+ "name": "serversQuantity",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 0
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "user_email_unique": {
+ "name": "user_email_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "email"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.volume_backup": {
+ "name": "volume_backup",
+ "schema": "",
+ "columns": {
+ "volumeBackupId": {
+ "name": "volumeBackupId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "volumeName": {
+ "name": "volumeName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "prefix": {
+ "name": "prefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceType": {
+ "name": "serviceType",
+ "type": "serviceType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'application'"
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "turnOff": {
+ "name": "turnOff",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "cronExpression": {
+ "name": "cronExpression",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "keepLatestCount": {
+ "name": "keepLatestCount",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "redisId": {
+ "name": "redisId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "destinationId": {
+ "name": "destinationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "volume_backup_applicationId_application_applicationId_fk": {
+ "name": "volume_backup_applicationId_application_applicationId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_postgresId_postgres_postgresId_fk": {
+ "name": "volume_backup_postgresId_postgres_postgresId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "postgres",
+ "columnsFrom": [
+ "postgresId"
+ ],
+ "columnsTo": [
+ "postgresId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_mariadbId_mariadb_mariadbId_fk": {
+ "name": "volume_backup_mariadbId_mariadb_mariadbId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "mariadb",
+ "columnsFrom": [
+ "mariadbId"
+ ],
+ "columnsTo": [
+ "mariadbId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_mongoId_mongo_mongoId_fk": {
+ "name": "volume_backup_mongoId_mongo_mongoId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "mongo",
+ "columnsFrom": [
+ "mongoId"
+ ],
+ "columnsTo": [
+ "mongoId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_mysqlId_mysql_mysqlId_fk": {
+ "name": "volume_backup_mysqlId_mysql_mysqlId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "mysql",
+ "columnsFrom": [
+ "mysqlId"
+ ],
+ "columnsTo": [
+ "mysqlId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_redisId_redis_redisId_fk": {
+ "name": "volume_backup_redisId_redis_redisId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "redis",
+ "columnsFrom": [
+ "redisId"
+ ],
+ "columnsTo": [
+ "redisId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_composeId_compose_composeId_fk": {
+ "name": "volume_backup_composeId_compose_composeId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_destinationId_destination_destinationId_fk": {
+ "name": "volume_backup_destinationId_destination_destinationId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "destination",
+ "columnsFrom": [
+ "destinationId"
+ ],
+ "columnsTo": [
+ "destinationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ }
+ },
+ "enums": {
+ "public.buildType": {
+ "name": "buildType",
+ "schema": "public",
+ "values": [
+ "dockerfile",
+ "heroku_buildpacks",
+ "paketo_buildpacks",
+ "nixpacks",
+ "static",
+ "railpack"
+ ]
+ },
+ "public.sourceType": {
+ "name": "sourceType",
+ "schema": "public",
+ "values": [
+ "docker",
+ "git",
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "drop"
+ ]
+ },
+ "public.backupType": {
+ "name": "backupType",
+ "schema": "public",
+ "values": [
+ "database",
+ "compose"
+ ]
+ },
+ "public.databaseType": {
+ "name": "databaseType",
+ "schema": "public",
+ "values": [
+ "postgres",
+ "mariadb",
+ "mysql",
+ "mongo",
+ "web-server"
+ ]
+ },
+ "public.composeType": {
+ "name": "composeType",
+ "schema": "public",
+ "values": [
+ "docker-compose",
+ "stack"
+ ]
+ },
+ "public.sourceTypeCompose": {
+ "name": "sourceTypeCompose",
+ "schema": "public",
+ "values": [
+ "git",
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "raw"
+ ]
+ },
+ "public.deploymentStatus": {
+ "name": "deploymentStatus",
+ "schema": "public",
+ "values": [
+ "running",
+ "done",
+ "error",
+ "cancelled"
+ ]
+ },
+ "public.domainType": {
+ "name": "domainType",
+ "schema": "public",
+ "values": [
+ "compose",
+ "application",
+ "preview"
+ ]
+ },
+ "public.gitProviderType": {
+ "name": "gitProviderType",
+ "schema": "public",
+ "values": [
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea"
+ ]
+ },
+ "public.mountType": {
+ "name": "mountType",
+ "schema": "public",
+ "values": [
+ "bind",
+ "volume",
+ "file"
+ ]
+ },
+ "public.serviceType": {
+ "name": "serviceType",
+ "schema": "public",
+ "values": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ]
+ },
+ "public.notificationType": {
+ "name": "notificationType",
+ "schema": "public",
+ "values": [
+ "slack",
+ "telegram",
+ "discord",
+ "email",
+ "gotify",
+ "ntfy",
+ "lark"
+ ]
+ },
+ "public.protocolType": {
+ "name": "protocolType",
+ "schema": "public",
+ "values": [
+ "tcp",
+ "udp"
+ ]
+ },
+ "public.publishModeType": {
+ "name": "publishModeType",
+ "schema": "public",
+ "values": [
+ "ingress",
+ "host"
+ ]
+ },
+ "public.RegistryType": {
+ "name": "RegistryType",
+ "schema": "public",
+ "values": [
+ "selfHosted",
+ "cloud"
+ ]
+ },
+ "public.scheduleType": {
+ "name": "scheduleType",
+ "schema": "public",
+ "values": [
+ "application",
+ "compose",
+ "server",
+ "dokploy-server"
+ ]
+ },
+ "public.shellType": {
+ "name": "shellType",
+ "schema": "public",
+ "values": [
+ "bash",
+ "sh"
+ ]
+ },
+ "public.serverStatus": {
+ "name": "serverStatus",
+ "schema": "public",
+ "values": [
+ "active",
+ "inactive"
+ ]
+ },
+ "public.serverType": {
+ "name": "serverType",
+ "schema": "public",
+ "values": [
+ "deploy",
+ "build"
+ ]
+ },
+ "public.applicationStatus": {
+ "name": "applicationStatus",
+ "schema": "public",
+ "values": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "public.certificateType": {
+ "name": "certificateType",
+ "schema": "public",
+ "values": [
+ "letsencrypt",
+ "none",
+ "custom"
+ ]
+ },
+ "public.triggerType": {
+ "name": "triggerType",
+ "schema": "public",
+ "values": [
+ "push",
+ "tag"
+ ]
+ }
+ },
+ "schemas": {},
+ "sequences": {},
+ "roles": {},
+ "policies": {},
+ "views": {},
+ "_meta": {
+ "columns": {},
+ "schemas": {},
+ "tables": {}
+ }
+}
\ No newline at end of file
diff --git a/apps/dokploy/drizzle/meta/_journal.json b/apps/dokploy/drizzle/meta/_journal.json
index 8bf22428a..5add54e24 100644
--- a/apps/dokploy/drizzle/meta/_journal.json
+++ b/apps/dokploy/drizzle/meta/_journal.json
@@ -862,6 +862,13 @@
"when": 1764479387555,
"tag": "0122_absent_frightful_four",
"breakpoints": true
+ },
+ {
+ "idx": 123,
+ "version": "7",
+ "when": 1764525308939,
+ "tag": "0123_cloudy_piledriver",
+ "breakpoints": true
}
]
}
\ No newline at end of file
diff --git a/packages/server/src/db/schema/application.ts b/packages/server/src/db/schema/application.ts
index 0bf36d40d..11f2907f8 100644
--- a/packages/server/src/db/schema/application.ts
+++ b/packages/server/src/db/schema/application.ts
@@ -111,6 +111,7 @@ export const applications = pgTable("application", {
enabled: boolean("enabled"),
subtitle: text("subtitle"),
command: text("command"),
+ args: text("args").array(),
refreshToken: text("refreshToken").$defaultFn(() => nanoid()),
sourceType: sourceType("sourceType").notNull().default("github"),
cleanCache: boolean("cleanCache").default(false),
@@ -293,6 +294,7 @@ const createSchema = createInsertSchema(applications, {
username: z.string().optional(),
isPreviewDeploymentsActive: z.boolean().optional(),
password: z.string().optional(),
+ args: z.array(z.string()).optional(),
registryUrl: z.string().optional(),
customGitSSHKeyId: z.string().optional(),
repository: z.string().optional(),
diff --git a/packages/server/src/db/schema/mariadb.ts b/packages/server/src/db/schema/mariadb.ts
index 2038d7cf6..c143a5547 100644
--- a/packages/server/src/db/schema/mariadb.ts
+++ b/packages/server/src/db/schema/mariadb.ts
@@ -45,6 +45,7 @@ export const mariadb = pgTable("mariadb", {
databaseRootPassword: text("rootPassword").notNull(),
dockerImage: text("dockerImage").notNull(),
command: text("command"),
+ args: text("args").array(),
env: text("env"),
// RESOURCES
memoryReservation: text("memoryReservation"),
@@ -114,6 +115,7 @@ const createSchema = createInsertSchema(mariadb, {
.optional(),
dockerImage: z.string().default("mariadb:6"),
command: z.string().optional(),
+ args: z.array(z.string()).optional(),
env: z.string().optional(),
memoryReservation: z.string().optional(),
memoryLimit: z.string().optional(),
diff --git a/packages/server/src/db/schema/mongo.ts b/packages/server/src/db/schema/mongo.ts
index f3b15d3a7..e760a880a 100644
--- a/packages/server/src/db/schema/mongo.ts
+++ b/packages/server/src/db/schema/mongo.ts
@@ -50,6 +50,7 @@ export const mongo = pgTable("mongo", {
databasePassword: text("databasePassword").notNull(),
dockerImage: text("dockerImage").notNull(),
command: text("command"),
+ args: text("args").array(),
env: text("env"),
memoryReservation: text("memoryReservation"),
memoryLimit: text("memoryLimit"),
@@ -110,6 +111,7 @@ const createSchema = createInsertSchema(mongo, {
databaseUser: z.string().min(1),
dockerImage: z.string().default("mongo:15"),
command: z.string().optional(),
+ args: z.array(z.string()).optional(),
env: z.string().optional(),
memoryReservation: z.string().optional(),
memoryLimit: z.string().optional(),
diff --git a/packages/server/src/db/schema/mysql.ts b/packages/server/src/db/schema/mysql.ts
index 84d071b58..3e5c14b5e 100644
--- a/packages/server/src/db/schema/mysql.ts
+++ b/packages/server/src/db/schema/mysql.ts
@@ -45,6 +45,7 @@ export const mysql = pgTable("mysql", {
databaseRootPassword: text("rootPassword").notNull(),
dockerImage: text("dockerImage").notNull(),
command: text("command"),
+ args: text("args").array(),
env: text("env"),
memoryReservation: text("memoryReservation"),
memoryLimit: text("memoryLimit"),
@@ -112,6 +113,7 @@ const createSchema = createInsertSchema(mysql, {
.optional(),
dockerImage: z.string().default("mysql:8"),
command: z.string().optional(),
+ args: z.array(z.string()).optional(),
env: z.string().optional(),
memoryReservation: z.string().optional(),
memoryLimit: z.string().optional(),
diff --git a/packages/server/src/db/schema/postgres.ts b/packages/server/src/db/schema/postgres.ts
index 98fa2a7c8..d4ad7ad83 100644
--- a/packages/server/src/db/schema/postgres.ts
+++ b/packages/server/src/db/schema/postgres.ts
@@ -44,6 +44,7 @@ export const postgres = pgTable("postgres", {
description: text("description"),
dockerImage: text("dockerImage").notNull(),
command: text("command"),
+ args: text("args").array(),
env: text("env"),
memoryReservation: text("memoryReservation"),
externalPort: integer("externalPort"),
@@ -103,6 +104,7 @@ const createSchema = createInsertSchema(postgres, {
databaseUser: z.string().min(1),
dockerImage: z.string().default("postgres:15"),
command: z.string().optional(),
+ args: z.array(z.string()).optional(),
env: z.string().optional(),
memoryReservation: z.string().optional(),
memoryLimit: z.string().optional(),
diff --git a/packages/server/src/db/schema/redis.ts b/packages/server/src/db/schema/redis.ts
index 2d17f1df1..a7528745d 100644
--- a/packages/server/src/db/schema/redis.ts
+++ b/packages/server/src/db/schema/redis.ts
@@ -41,6 +41,7 @@ export const redis = pgTable("redis", {
databasePassword: text("password").notNull(),
dockerImage: text("dockerImage").notNull(),
command: text("command"),
+ args: text("args").array(),
env: text("env"),
memoryReservation: text("memoryReservation"),
memoryLimit: text("memoryLimit"),
@@ -93,6 +94,7 @@ const createSchema = createInsertSchema(redis, {
databasePassword: z.string(),
dockerImage: z.string().default("redis:8"),
command: z.string().optional(),
+ args: z.array(z.string()).optional(),
env: z.string().optional(),
memoryReservation: z.string().optional(),
memoryLimit: z.string().optional(),
diff --git a/packages/server/src/utils/builders/index.ts b/packages/server/src/utils/builders/index.ts
index c2ae25d2f..139b9bb1d 100644
--- a/packages/server/src/utils/builders/index.ts
+++ b/packages/server/src/utils/builders/index.ts
@@ -80,6 +80,7 @@ export const mechanizeDockerContainer = async (
memoryReservation,
cpuReservation,
command,
+ args,
ports,
} = application;
@@ -128,12 +129,14 @@ export const mechanizeDockerContainer = async (
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
...(StopGracePeriod !== null &&
StopGracePeriod !== undefined && { StopGracePeriod }),
- ...(command
- ? {
- Command: ["/bin/sh"],
- Args: ["-c", command],
- }
- : {}),
+ ...(command && {
+ Command: command.split(" "),
+ }),
+ ...(args &&
+ args.length > 0 && {
+ Args: args,
+ }),
+
Labels,
},
Networks,
diff --git a/packages/server/src/utils/databases/mariadb.ts b/packages/server/src/utils/databases/mariadb.ts
index 852e174ef..a73dd8bb4 100644
--- a/packages/server/src/utils/databases/mariadb.ts
+++ b/packages/server/src/utils/databases/mariadb.ts
@@ -29,6 +29,7 @@ export const buildMariadb = async (mariadb: MariadbNested) => {
cpuLimit,
cpuReservation,
command,
+ args,
mounts,
} = mariadb;
@@ -75,12 +76,14 @@ export const buildMariadb = async (mariadb: MariadbNested) => {
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
...(StopGracePeriod !== null &&
StopGracePeriod !== undefined && { StopGracePeriod }),
- ...(command
- ? {
- Command: ["/bin/sh"],
- Args: ["-c", command],
- }
- : {}),
+ ...(command && {
+ Command: command.split(" "),
+ }),
+ ...(args &&
+ args.length > 0 && {
+ Args: args,
+ }),
+
Labels,
},
Networks,
diff --git a/packages/server/src/utils/databases/mongo.ts b/packages/server/src/utils/databases/mongo.ts
index af5dc8cbd..9cb8a69f4 100644
--- a/packages/server/src/utils/databases/mongo.ts
+++ b/packages/server/src/utils/databases/mongo.ts
@@ -28,6 +28,7 @@ export const buildMongo = async (mongo: MongoNested) => {
databaseUser,
databasePassword,
command,
+ args,
mounts,
replicaSets,
} = mongo;
@@ -128,12 +129,17 @@ ${command ?? "wait $MONGOD_PID"}`;
Command: ["/bin/bash"],
Args: ["-c", startupScript],
}
- : {
- ...(command && {
- Command: ["/bin/bash"],
- Args: ["-c", command],
- }),
- }),
+ : {}),
+ ...(command &&
+ !replicaSets && {
+ Command: command.split(" "),
+ }),
+ ...(args &&
+ args.length > 0 &&
+ !replicaSets && {
+ Args: args,
+ }),
+
Labels,
},
Networks,
diff --git a/packages/server/src/utils/databases/mysql.ts b/packages/server/src/utils/databases/mysql.ts
index a1f75dd40..493931fdc 100644
--- a/packages/server/src/utils/databases/mysql.ts
+++ b/packages/server/src/utils/databases/mysql.ts
@@ -30,6 +30,7 @@ export const buildMysql = async (mysql: MysqlNested) => {
cpuLimit,
cpuReservation,
command,
+ args,
mounts,
} = mysql;
@@ -81,12 +82,14 @@ export const buildMysql = async (mysql: MysqlNested) => {
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
...(StopGracePeriod !== null &&
StopGracePeriod !== undefined && { StopGracePeriod }),
- ...(command
- ? {
- Command: ["/bin/sh"],
- Args: ["-c", command],
- }
- : {}),
+ ...(command && {
+ Command: command.split(" "),
+ }),
+ ...(args &&
+ args.length > 0 && {
+ Args: args,
+ }),
+
Labels,
},
Networks,
diff --git a/packages/server/src/utils/databases/postgres.ts b/packages/server/src/utils/databases/postgres.ts
index e15f8a641..7adb45367 100644
--- a/packages/server/src/utils/databases/postgres.ts
+++ b/packages/server/src/utils/databases/postgres.ts
@@ -28,6 +28,7 @@ export const buildPostgres = async (postgres: PostgresNested) => {
databaseUser,
databasePassword,
command,
+ args,
mounts,
} = postgres;
@@ -74,12 +75,14 @@ export const buildPostgres = async (postgres: PostgresNested) => {
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
...(StopGracePeriod !== null &&
StopGracePeriod !== undefined && { StopGracePeriod }),
- ...(command
- ? {
- Command: ["/bin/sh"],
- Args: ["-c", command],
- }
- : {}),
+ ...(command && {
+ Command: command.split(" "),
+ }),
+ ...(args &&
+ args.length > 0 && {
+ Args: args,
+ }),
+
Labels,
},
Networks,
diff --git a/packages/server/src/utils/databases/redis.ts b/packages/server/src/utils/databases/redis.ts
index 2d9ae273d..78701c72d 100644
--- a/packages/server/src/utils/databases/redis.ts
+++ b/packages/server/src/utils/databases/redis.ts
@@ -26,6 +26,7 @@ export const buildRedis = async (redis: RedisNested) => {
cpuLimit,
cpuReservation,
command,
+ args,
mounts,
} = redis;
@@ -72,11 +73,14 @@ export const buildRedis = async (redis: RedisNested) => {
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
...(StopGracePeriod !== null &&
StopGracePeriod !== undefined && { StopGracePeriod }),
- Command: ["/bin/sh"],
- Args: [
- "-c",
- command ? command : `redis-server --requirepass ${databasePassword}`,
- ],
+ ...(command && {
+ Command: command.split(" "),
+ }),
+ ...(args &&
+ args.length > 0 && {
+ Args: args,
+ }),
+
Labels,
},
Networks,
From c1d23b18fbc7e57b4c47256260bdb5cd34a40631 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sun, 30 Nov 2025 12:18:47 -0600
Subject: [PATCH 45/74] refactor: streamline command and args handling in Redis
container configuration
- Updated the Redis container build function to simplify the handling of command and arguments.
- Ensured default command and arguments are set when none are provided, improving robustness.
---
packages/server/src/utils/databases/redis.ts | 22 +++++++++++++-------
1 file changed, 14 insertions(+), 8 deletions(-)
diff --git a/packages/server/src/utils/databases/redis.ts b/packages/server/src/utils/databases/redis.ts
index 78701c72d..4c7701726 100644
--- a/packages/server/src/utils/databases/redis.ts
+++ b/packages/server/src/utils/databases/redis.ts
@@ -73,14 +73,20 @@ export const buildRedis = async (redis: RedisNested) => {
Mounts: [...volumesMount, ...bindsMount, ...filesMount],
...(StopGracePeriod !== null &&
StopGracePeriod !== undefined && { StopGracePeriod }),
- ...(command && {
- Command: command.split(" "),
- }),
- ...(args &&
- args.length > 0 && {
- Args: args,
- }),
-
+ ...(command || args
+ ? {
+ ...(command && {
+ Command: command.split(" "),
+ }),
+ ...(args &&
+ args.length > 0 && {
+ Args: args,
+ }),
+ }
+ : {
+ Command: ["/bin/sh"],
+ Args: ["-c", `redis-server --requirepass ${databasePassword}`],
+ }),
Labels,
},
Networks,
From adfe29e10c1a9bb38a5a256bfd29b0532a34505a Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sun, 30 Nov 2025 12:21:02 -0600
Subject: [PATCH 46/74] feat: add `args` field to application configuration in
tests
- Introduced an `args` field in the `baseApp` configuration for both drop and traefik test files to support command arguments in application testing.
- This change aligns with recent updates to application schemas, enhancing the flexibility of command handling in tests.
---
apps/dokploy/__test__/drop/drop.test.ts | 1 +
apps/dokploy/__test__/traefik/traefik.test.ts | 1 +
2 files changed, 2 insertions(+)
diff --git a/apps/dokploy/__test__/drop/drop.test.ts b/apps/dokploy/__test__/drop/drop.test.ts
index d22c1c4b0..bd2d3c981 100644
--- a/apps/dokploy/__test__/drop/drop.test.ts
+++ b/apps/dokploy/__test__/drop/drop.test.ts
@@ -33,6 +33,7 @@ const baseApp: ApplicationNested = {
buildServerId: "",
buildRegistryId: "",
buildRegistry: null,
+ args: [],
giteaBuildPath: "",
previewRequireCollaboratorPermissions: false,
giteaId: "",
diff --git a/apps/dokploy/__test__/traefik/traefik.test.ts b/apps/dokploy/__test__/traefik/traefik.test.ts
index f63175748..e6b98c3ba 100644
--- a/apps/dokploy/__test__/traefik/traefik.test.ts
+++ b/apps/dokploy/__test__/traefik/traefik.test.ts
@@ -16,6 +16,7 @@ const baseApp: ApplicationNested = {
buildRegistry: null,
giteaBuildPath: "",
giteaId: "",
+ args: [],
cleanCache: false,
applicationStatus: "done",
endpointSpecSwarm: null,
From ea83406f6f539e24071f84844535bcae15327bc7 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sun, 30 Nov 2025 12:31:27 -0600
Subject: [PATCH 47/74] refactor: enhance RequestDistributionChart layout and
responsiveness
- Updated the chart container to improve layout with a fixed height and overflow handling.
- Adjusted margin settings for better spacing and added support for data overflow in the Y-axis.
- Changed the Area chart type to 'monotone' for smoother transitions in the data representation.
---
.../requests/request-distribution-chart.tsx | 106 ++++++++++--------
1 file changed, 60 insertions(+), 46 deletions(-)
diff --git a/apps/dokploy/components/dashboard/requests/request-distribution-chart.tsx b/apps/dokploy/components/dashboard/requests/request-distribution-chart.tsx
index 2a5db2a94..c760c8175 100644
--- a/apps/dokploy/components/dashboard/requests/request-distribution-chart.tsx
+++ b/apps/dokploy/components/dashboard/requests/request-distribution-chart.tsx
@@ -49,51 +49,65 @@ export const RequestDistributionChart = ({
);
return (
-
-
-
-
-
- new Date(value).toLocaleTimeString([], {
- hour: "2-digit",
- minute: "2-digit",
- })
- }
- />
-
- }
- labelFormatter={(value) =>
- new Date(value).toLocaleString([], {
- month: "short",
- day: "numeric",
- hour: "2-digit",
- minute: "2-digit",
- })
- }
- />
-
-
-
-
+
+
+
+
+
+
+ new Date(value).toLocaleTimeString([], {
+ hour: "2-digit",
+ minute: "2-digit",
+ })
+ }
+ />
+
+ }
+ labelFormatter={(value) =>
+ new Date(value).toLocaleString([], {
+ month: "short",
+ day: "numeric",
+ hour: "2-digit",
+ minute: "2-digit",
+ })
+ }
+ />
+
+
+
+
+
);
};
From 689c689487c8bfce997e83080c118924e9d8efe5 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sun, 30 Nov 2025 12:34:12 -0600
Subject: [PATCH 48/74] feat: set default date range to last 3 days in
ShowRequests component
- Introduced a function to automatically set the date range to the last 3 days upon component initialization.
- Updated the reset button to restore the default date range instead of clearing the dates.
---
.../dashboard/requests/show-requests.tsx | 32 ++++++++++---------
1 file changed, 17 insertions(+), 15 deletions(-)
diff --git a/apps/dokploy/components/dashboard/requests/show-requests.tsx b/apps/dokploy/components/dashboard/requests/show-requests.tsx
index ab602f463..3b5315c3e 100644
--- a/apps/dokploy/components/dashboard/requests/show-requests.tsx
+++ b/apps/dokploy/components/dashboard/requests/show-requests.tsx
@@ -51,13 +51,19 @@ export const ShowRequests = () => {
const { mutateAsync: updateLogCleanup } =
api.settings.updateLogCleanup.useMutation();
const [cronExpression, setCronExpression] = useState(null);
+
+ // Set default date range to last 3 days
+ const getDefaultDateRange = () => {
+ const to = new Date();
+ const from = new Date();
+ from.setDate(from.getDate() - 3);
+ return { from, to };
+ };
+
const [dateRange, setDateRange] = useState<{
from: Date | undefined;
to: Date | undefined;
- }>({
- from: undefined,
- to: undefined,
- });
+ }>(getDefaultDateRange());
useEffect(() => {
if (logCleanupStatus) {
@@ -169,17 +175,13 @@ export const ShowRequests = () => {
{isActive ? (
<>
- {(dateRange.from || dateRange.to) && (
-
- setDateRange({ from: undefined, to: undefined })
- }
- className="px-3"
- >
- Clear dates
-
- )}
+
setDateRange(getDefaultDateRange())}
+ className="px-3"
+ >
+ Reset to Last 3 Days
+
Date: Sun, 30 Nov 2025 12:41:42 -0600
Subject: [PATCH 49/74] feat: enhance domain validation by trimming whitespace
from host input
- Updated the domain validation schema to ensure the host string does not have leading or trailing spaces.
- Added a refinement to the host field to validate and transform the input accordingly.
- Adjusted the create and update domain functions to trim the host value before saving to the database.
---
.../application/domains/handle-domain.tsx | 8 +++++++-
apps/dokploy/server/db/validations/domain.ts | 16 ++++++++++++++--
packages/server/src/db/validations/domain.ts | 16 ++++++++++++++--
packages/server/src/services/domain.ts | 2 ++
4 files changed, 37 insertions(+), 5 deletions(-)
diff --git a/apps/dokploy/components/dashboard/application/domains/handle-domain.tsx b/apps/dokploy/components/dashboard/application/domains/handle-domain.tsx
index 9d7a074f9..4c467a690 100644
--- a/apps/dokploy/components/dashboard/application/domains/handle-domain.tsx
+++ b/apps/dokploy/components/dashboard/application/domains/handle-domain.tsx
@@ -46,7 +46,13 @@ export type CacheType = "fetch" | "cache";
export const domain = z
.object({
- host: z.string().min(1, { message: "Add a hostname" }),
+ host: z
+ .string()
+ .min(1, { message: "Add a hostname" })
+ .refine((val) => val === val.trim(), {
+ message: "Domain name cannot have leading or trailing spaces",
+ })
+ .transform((val) => val.trim()),
path: z.string().min(1).optional(),
internalPath: z.string().optional(),
stripPath: z.boolean().optional(),
diff --git a/apps/dokploy/server/db/validations/domain.ts b/apps/dokploy/server/db/validations/domain.ts
index 4937f843b..35de518c0 100644
--- a/apps/dokploy/server/db/validations/domain.ts
+++ b/apps/dokploy/server/db/validations/domain.ts
@@ -2,7 +2,13 @@ import { z } from "zod";
export const domain = z
.object({
- host: z.string().min(1, { message: "Add a hostname" }),
+ host: z
+ .string()
+ .min(1, { message: "Add a hostname" })
+ .refine((val) => val === val.trim(), {
+ message: "Domain name cannot have leading or trailing spaces",
+ })
+ .transform((val) => val.trim()),
path: z.string().min(1).optional(),
port: z
.number()
@@ -33,7 +39,13 @@ export const domain = z
export const domainCompose = z
.object({
- host: z.string().min(1, { message: "Host is required" }),
+ host: z
+ .string()
+ .min(1, { message: "Add a hostname" })
+ .refine((val) => val === val.trim(), {
+ message: "Domain name cannot have leading or trailing spaces",
+ })
+ .transform((val) => val.trim()),
path: z.string().min(1).optional(),
port: z
.number()
diff --git a/packages/server/src/db/validations/domain.ts b/packages/server/src/db/validations/domain.ts
index a10c96dcc..c032841e3 100644
--- a/packages/server/src/db/validations/domain.ts
+++ b/packages/server/src/db/validations/domain.ts
@@ -2,7 +2,13 @@ import { z } from "zod";
export const domain = z
.object({
- host: z.string().min(1, { message: "Add a hostname" }),
+ host: z
+ .string()
+ .min(1, { message: "Add a hostname" })
+ .refine((val) => val === val.trim(), {
+ message: "Domain name cannot have leading or trailing spaces",
+ })
+ .transform((val) => val.trim()),
path: z.string().min(1).optional(),
internalPath: z.string().optional(),
stripPath: z.boolean().optional(),
@@ -58,7 +64,13 @@ export const domain = z
export const domainCompose = z
.object({
- host: z.string().min(1, { message: "Host is required" }),
+ host: z
+ .string()
+ .min(1, { message: "Add a hostname" })
+ .refine((val) => val === val.trim(), {
+ message: "Domain name cannot have leading or trailing spaces",
+ })
+ .transform((val) => val.trim()),
path: z.string().min(1).optional(),
internalPath: z.string().optional(),
stripPath: z.boolean().optional(),
diff --git a/packages/server/src/services/domain.ts b/packages/server/src/services/domain.ts
index f81fffb96..50888e546 100644
--- a/packages/server/src/services/domain.ts
+++ b/packages/server/src/services/domain.ts
@@ -19,6 +19,7 @@ export const createDomain = async (input: typeof apiCreateDomain._type) => {
.insert(domains)
.values({
...input,
+ host: input.host?.trim(),
})
.returning()
.then((response) => response[0]);
@@ -120,6 +121,7 @@ export const updateDomainById = async (
.update(domains)
.set({
...domainData,
+ ...(domainData.host && { host: domainData.host.trim() }),
})
.where(eq(domains.domainId, domainId))
.returning();
From 75a49790ea27912bce2efffe894889119210397b Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sun, 30 Nov 2025 19:07:59 -0600
Subject: [PATCH 50/74] refactor: simplify useEffect dependencies in AddCommand
and ShowCustomCommand components
- Updated the useEffect hooks to remove unnecessary dependencies, improving performance and readability.
- Ensured that the form resets correctly based on the presence of data.
---
.../application/advanced/general/add-command.tsx | 10 ++--------
.../postgres/advanced/show-custom-command.tsx | 2 +-
2 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/apps/dokploy/components/dashboard/application/advanced/general/add-command.tsx b/apps/dokploy/components/dashboard/application/advanced/general/add-command.tsx
index e57f21895..a7c5f7288 100644
--- a/apps/dokploy/components/dashboard/application/advanced/general/add-command.tsx
+++ b/apps/dokploy/components/dashboard/application/advanced/general/add-command.tsx
@@ -66,19 +66,13 @@ export const AddCommand = ({ applicationId }: Props) => {
});
useEffect(() => {
- if (data?.command) {
+ if (data) {
form.reset({
command: data?.command || "",
args: data?.args?.map((arg) => ({ value: arg })) || [],
});
}
- }, [
- form,
- form.reset,
- form.formState.isSubmitSuccessful,
- data?.command,
- data?.args,
- ]);
+ }, [data, form]);
const onSubmit = async (data: AddCommand) => {
await mutateAsync({
diff --git a/apps/dokploy/components/dashboard/postgres/advanced/show-custom-command.tsx b/apps/dokploy/components/dashboard/postgres/advanced/show-custom-command.tsx
index 934716b19..5a543b477 100644
--- a/apps/dokploy/components/dashboard/postgres/advanced/show-custom-command.tsx
+++ b/apps/dokploy/components/dashboard/postgres/advanced/show-custom-command.tsx
@@ -87,7 +87,7 @@ export const ShowCustomCommand = ({ id, type }: Props) => {
args: data.args?.map((arg) => ({ value: arg })) || [],
});
}
- }, [data, form, form.reset]);
+ }, [data, form]);
const onSubmit = async (formData: AddDockerImage) => {
await mutateAsync({
From c8e7aae5c6c56b113547e5c65346d5e8f3f038b1 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sun, 30 Nov 2025 23:46:22 -0600
Subject: [PATCH 51/74] feat: enhance AI model selection with popover and
search functionality
- Replaced the select component with a popover for model selection, allowing for better user experience.
- Added search capability to filter models, improving accessibility and usability.
- Updated form handling to reset model selection when API URL or API Key changes.
- Ensured proper state management for popover visibility and search input.
---
.../dashboard/settings/handle-ai.tsx | 185 +++++++++++++-----
1 file changed, 137 insertions(+), 48 deletions(-)
diff --git a/apps/dokploy/components/dashboard/settings/handle-ai.tsx b/apps/dokploy/components/dashboard/settings/handle-ai.tsx
index 19716e0f3..b5a0d51d8 100644
--- a/apps/dokploy/components/dashboard/settings/handle-ai.tsx
+++ b/apps/dokploy/components/dashboard/settings/handle-ai.tsx
@@ -1,12 +1,19 @@
"use client";
import { zodResolver } from "@hookform/resolvers/zod";
-import { PenBoxIcon, PlusIcon } from "lucide-react";
+import { Check, ChevronDown, PenBoxIcon, PlusIcon } from "lucide-react";
import { useEffect, useState } from "react";
import { useForm } from "react-hook-form";
import { toast } from "sonner";
import { z } from "zod";
import { AlertBlock } from "@/components/shared/alert-block";
import { Button } from "@/components/ui/button";
+import {
+ Command,
+ CommandEmpty,
+ CommandInput,
+ CommandItem,
+ CommandList,
+} from "@/components/ui/command";
import {
Dialog,
DialogContent,
@@ -26,13 +33,12 @@ import {
} from "@/components/ui/form";
import { Input } from "@/components/ui/input";
import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/components/ui/select";
+ Popover,
+ PopoverContent,
+ PopoverTrigger,
+} from "@/components/ui/popover";
import { Switch } from "@/components/ui/switch";
+import { cn } from "@/lib/utils";
import { api } from "@/utils/api";
const Schema = z.object({
@@ -53,6 +59,8 @@ export const HandleAi = ({ aiId }: Props) => {
const utils = api.useUtils();
const [error, setError] = useState(null);
const [open, setOpen] = useState(false);
+ const [modelPopoverOpen, setModelPopoverOpen] = useState(false);
+ const [modelSearch, setModelSearch] = useState("");
const { data, refetch } = api.ai.one.useQuery(
{
aiId: aiId || "",
@@ -77,13 +85,17 @@ export const HandleAi = ({ aiId }: Props) => {
});
useEffect(() => {
- form.reset({
- name: data?.name ?? "",
- apiUrl: data?.apiUrl ?? "https://api.openai.com/v1",
- apiKey: data?.apiKey ?? "",
- model: data?.model ?? "",
- isEnabled: data?.isEnabled ?? true,
- });
+ if (data) {
+ form.reset({
+ name: data?.name ?? "",
+ apiUrl: data?.apiUrl ?? "https://api.openai.com/v1",
+ apiKey: data?.apiKey ?? "",
+ model: data?.model ?? "",
+ isEnabled: data?.isEnabled ?? true,
+ });
+ }
+ setModelSearch("");
+ setModelPopoverOpen(false);
}, [aiId, form, data]);
const apiUrl = form.watch("apiUrl");
@@ -104,14 +116,6 @@ export const HandleAi = ({ aiId }: Props) => {
},
);
- useEffect(() => {
- const apiUrl = form.watch("apiUrl");
- const apiKey = form.watch("apiKey");
- if (apiUrl && apiKey) {
- form.setValue("model", "");
- }
- }, [form.watch("apiUrl"), form.watch("apiKey")]);
-
const onSubmit = async (data: Schema) => {
try {
await mutateAsync({
@@ -131,7 +135,16 @@ export const HandleAi = ({ aiId }: Props) => {
};
return (
-
+ {
+ setOpen(isOpen);
+ if (!isOpen) {
+ setModelSearch("");
+ setModelPopoverOpen(false);
+ }
+ }}
+ >
{aiId ? (
{
API URL
-
+ {
+ field.onChange(e);
+ // Reset model when user changes API URL
+ if (form.getValues("model")) {
+ form.setValue("model", "");
+ }
+ }}
+ />
The base URL for your AI provider's API
@@ -205,6 +228,13 @@ export const HandleAi = ({ aiId }: Props) => {
placeholder="sk-..."
autoComplete="one-time-code"
{...field}
+ onChange={(e) => {
+ field.onChange(e);
+ // Reset model when user changes API Key
+ if (form.getValues("model")) {
+ form.setValue("model", "");
+ }
+ }}
/>
@@ -232,30 +262,89 @@ export const HandleAi = ({ aiId }: Props) => {
(
-
- Model
-
-
-
-
-
-
-
- {models.map((model) => (
-
- {model.id}
-
- ))}
-
-
- Select an AI model to use
-
-
- )}
+ render={({ field }) => {
+ const selectedModel = models.find(
+ (m) => m.id === field.value,
+ );
+ const filteredModels = models.filter((model) =>
+ model.id.toLowerCase().includes(modelSearch.toLowerCase()),
+ );
+
+ // Ensure selected model is always in the filtered list
+ const displayModels =
+ field.value &&
+ !filteredModels.find((m) => m.id === field.value) &&
+ selectedModel
+ ? [selectedModel, ...filteredModels]
+ : filteredModels;
+
+ return (
+
+ Model
+
+
+
+
+ {field.value
+ ? (selectedModel?.id ?? field.value)
+ : "Select a model"}
+
+
+
+
+
+
+
+
+ No models found.
+ {displayModels.map((model) => {
+ const isSelected = field.value === model.id;
+ return (
+ {
+ field.onChange(model.id);
+ setModelPopoverOpen(false);
+ setModelSearch("");
+ }}
+ >
+
+ {model.id}
+
+ );
+ })}
+
+
+
+
+
+ Select an AI model to use
+
+
+
+ );
+ }}
/>
)}
From 6b346d30eeba3bc3a9a2ec3442c9158f532461ed Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Mon, 1 Dec 2025 00:44:53 -0600
Subject: [PATCH 52/74] feat: update notification handling to make accessToken
optional
- Modified the notification schema to allow accessToken to be optional, enhancing flexibility in notification settings.
- Updated related components and database schema to accommodate the change, ensuring backward compatibility.
- Improved handling of accessToken in notification requests and responses, defaulting to null when not provided.
---
.../notifications/handle-notifications.tsx | 12 +-
apps/dokploy/drizzle/0124_certain_cloak.sql | 1 +
apps/dokploy/drizzle/meta/0124_snapshot.json | 6831 +++++++++++++++++
apps/dokploy/drizzle/meta/_journal.json | 7 +
packages/server/src/db/schema/notification.ts | 6 +-
packages/server/src/services/notification.ts | 4 +-
.../server/src/utils/notifications/utils.ts | 19 +-
7 files changed, 6864 insertions(+), 16 deletions(-)
create mode 100644 apps/dokploy/drizzle/0124_certain_cloak.sql
create mode 100644 apps/dokploy/drizzle/meta/0124_snapshot.json
diff --git a/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx b/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx
index 4ffd568d0..e43366845 100644
--- a/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx
+++ b/apps/dokploy/components/dashboard/settings/notifications/handle-notifications.tsx
@@ -103,7 +103,7 @@ export const notificationSchema = z.discriminatedUnion("type", [
type: z.literal("ntfy"),
serverUrl: z.string().min(1, { message: "Server URL is required" }),
topic: z.string().min(1, { message: "Topic is required" }),
- accessToken: z.string().min(1, { message: "Access Token is required" }),
+ accessToken: z.string().optional(),
priority: z.number().min(1).max(5).default(3),
})
.merge(notificationBaseSchema),
@@ -303,7 +303,7 @@ export const HandleNotifications = ({ notificationId }: Props) => {
dokployRestart: notification.dokployRestart,
databaseBackup: notification.databaseBackup,
type: notification.notificationType,
- accessToken: notification.ntfy?.accessToken,
+ accessToken: notification.ntfy?.accessToken || "",
topic: notification.ntfy?.topic,
priority: notification.ntfy?.priority,
serverUrl: notification.ntfy?.serverUrl,
@@ -432,7 +432,7 @@ export const HandleNotifications = ({ notificationId }: Props) => {
dokployRestart: dokployRestart,
databaseBackup: databaseBackup,
serverUrl: data.serverUrl,
- accessToken: data.accessToken,
+ accessToken: data.accessToken || "",
topic: data.topic,
priority: data.priority,
name: data.name,
@@ -1001,8 +1001,12 @@ export const HandleNotifications = ({ notificationId }: Props) => {
+
+ Optional. Leave blank for public topics.
+
)}
@@ -1258,7 +1262,7 @@ export const HandleNotifications = ({ notificationId }: Props) => {
await testNtfyConnection({
serverUrl: data.serverUrl,
topic: data.topic,
- accessToken: data.accessToken,
+ accessToken: data.accessToken || "",
priority: data.priority,
});
} else if (data.type === "lark") {
diff --git a/apps/dokploy/drizzle/0124_certain_cloak.sql b/apps/dokploy/drizzle/0124_certain_cloak.sql
new file mode 100644
index 000000000..47b181eb2
--- /dev/null
+++ b/apps/dokploy/drizzle/0124_certain_cloak.sql
@@ -0,0 +1 @@
+ALTER TABLE "ntfy" ALTER COLUMN "accessToken" DROP NOT NULL;
\ No newline at end of file
diff --git a/apps/dokploy/drizzle/meta/0124_snapshot.json b/apps/dokploy/drizzle/meta/0124_snapshot.json
new file mode 100644
index 000000000..47dd81f1c
--- /dev/null
+++ b/apps/dokploy/drizzle/meta/0124_snapshot.json
@@ -0,0 +1,6831 @@
+{
+ "id": "a9f2a5f0-53ee-4522-8cc8-37577ce161b3",
+ "prevId": "17f0ef78-5e56-42d6-a79b-2bbdf87ede6e",
+ "version": "7",
+ "dialect": "postgresql",
+ "tables": {
+ "public.account": {
+ "name": "account",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "account_id": {
+ "name": "account_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "provider_id": {
+ "name": "provider_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "id_token": {
+ "name": "id_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "access_token_expires_at": {
+ "name": "access_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token_expires_at": {
+ "name": "refresh_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scope": {
+ "name": "scope",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "is2FAEnabled": {
+ "name": "is2FAEnabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "resetPasswordToken": {
+ "name": "resetPasswordToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "resetPasswordExpiresAt": {
+ "name": "resetPasswordExpiresAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "confirmationToken": {
+ "name": "confirmationToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "confirmationExpiresAt": {
+ "name": "confirmationExpiresAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "account_user_id_user_id_fk": {
+ "name": "account_user_id_user_id_fk",
+ "tableFrom": "account",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.apikey": {
+ "name": "apikey",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "start": {
+ "name": "start",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "prefix": {
+ "name": "prefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "key": {
+ "name": "key",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "refill_interval": {
+ "name": "refill_interval",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refill_amount": {
+ "name": "refill_amount",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "last_refill_at": {
+ "name": "last_refill_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rate_limit_enabled": {
+ "name": "rate_limit_enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rate_limit_time_window": {
+ "name": "rate_limit_time_window",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rate_limit_max": {
+ "name": "rate_limit_max",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "request_count": {
+ "name": "request_count",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "remaining": {
+ "name": "remaining",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "last_request": {
+ "name": "last_request",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "permissions": {
+ "name": "permissions",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "apikey_user_id_user_id_fk": {
+ "name": "apikey_user_id_user_id_fk",
+ "tableFrom": "apikey",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.invitation": {
+ "name": "invitation",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "status": {
+ "name": "status",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "inviter_id": {
+ "name": "inviter_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "team_id": {
+ "name": "team_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "invitation_organization_id_organization_id_fk": {
+ "name": "invitation_organization_id_organization_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "invitation_inviter_id_user_id_fk": {
+ "name": "invitation_inviter_id_user_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "user",
+ "columnsFrom": [
+ "inviter_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.member": {
+ "name": "member",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "team_id": {
+ "name": "team_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "is_default": {
+ "name": "is_default",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canCreateProjects": {
+ "name": "canCreateProjects",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToSSHKeys": {
+ "name": "canAccessToSSHKeys",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canCreateServices": {
+ "name": "canCreateServices",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canDeleteProjects": {
+ "name": "canDeleteProjects",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canDeleteServices": {
+ "name": "canDeleteServices",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToDocker": {
+ "name": "canAccessToDocker",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToAPI": {
+ "name": "canAccessToAPI",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToGitProviders": {
+ "name": "canAccessToGitProviders",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToTraefikFiles": {
+ "name": "canAccessToTraefikFiles",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canDeleteEnvironments": {
+ "name": "canDeleteEnvironments",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canCreateEnvironments": {
+ "name": "canCreateEnvironments",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "accesedProjects": {
+ "name": "accesedProjects",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "ARRAY[]::text[]"
+ },
+ "accessedEnvironments": {
+ "name": "accessedEnvironments",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "ARRAY[]::text[]"
+ },
+ "accesedServices": {
+ "name": "accesedServices",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "ARRAY[]::text[]"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "member_organization_id_organization_id_fk": {
+ "name": "member_organization_id_organization_id_fk",
+ "tableFrom": "member",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "member_user_id_user_id_fk": {
+ "name": "member_user_id_user_id_fk",
+ "tableFrom": "member",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.organization": {
+ "name": "organization",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "slug": {
+ "name": "slug",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "logo": {
+ "name": "logo",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "owner_id": {
+ "name": "owner_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "organization_owner_id_user_id_fk": {
+ "name": "organization_owner_id_user_id_fk",
+ "tableFrom": "organization",
+ "tableTo": "user",
+ "columnsFrom": [
+ "owner_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "organization_slug_unique": {
+ "name": "organization_slug_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "slug"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.two_factor": {
+ "name": "two_factor",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "secret": {
+ "name": "secret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "backup_codes": {
+ "name": "backup_codes",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "two_factor_user_id_user_id_fk": {
+ "name": "two_factor_user_id_user_id_fk",
+ "tableFrom": "two_factor",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.verification": {
+ "name": "verification",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "identifier": {
+ "name": "identifier",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "value": {
+ "name": "value",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ai": {
+ "name": "ai",
+ "schema": "",
+ "columns": {
+ "aiId": {
+ "name": "aiId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "apiUrl": {
+ "name": "apiUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "apiKey": {
+ "name": "apiKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "model": {
+ "name": "model",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "isEnabled": {
+ "name": "isEnabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "ai_organizationId_organization_id_fk": {
+ "name": "ai_organizationId_organization_id_fk",
+ "tableFrom": "ai",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.application": {
+ "name": "application",
+ "schema": "",
+ "columns": {
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewEnv": {
+ "name": "previewEnv",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "watchPaths": {
+ "name": "watchPaths",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewBuildArgs": {
+ "name": "previewBuildArgs",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewBuildSecrets": {
+ "name": "previewBuildSecrets",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewLabels": {
+ "name": "previewLabels",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewWildcard": {
+ "name": "previewWildcard",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewPort": {
+ "name": "previewPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false,
+ "default": 3000
+ },
+ "previewHttps": {
+ "name": "previewHttps",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "previewPath": {
+ "name": "previewPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "certificateType": {
+ "name": "certificateType",
+ "type": "certificateType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'none'"
+ },
+ "previewCustomCertResolver": {
+ "name": "previewCustomCertResolver",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewLimit": {
+ "name": "previewLimit",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false,
+ "default": 3
+ },
+ "isPreviewDeploymentsActive": {
+ "name": "isPreviewDeploymentsActive",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "previewRequireCollaboratorPermissions": {
+ "name": "previewRequireCollaboratorPermissions",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": true
+ },
+ "rollbackActive": {
+ "name": "rollbackActive",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "buildArgs": {
+ "name": "buildArgs",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildSecrets": {
+ "name": "buildSecrets",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "title": {
+ "name": "title",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "subtitle": {
+ "name": "subtitle",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "args": {
+ "name": "args",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refreshToken": {
+ "name": "refreshToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "sourceType": {
+ "name": "sourceType",
+ "type": "sourceType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'github'"
+ },
+ "cleanCache": {
+ "name": "cleanCache",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "repository": {
+ "name": "repository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "owner": {
+ "name": "owner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "branch": {
+ "name": "branch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildPath": {
+ "name": "buildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "triggerType": {
+ "name": "triggerType",
+ "type": "triggerType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'push'"
+ },
+ "autoDeploy": {
+ "name": "autoDeploy",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabProjectId": {
+ "name": "gitlabProjectId",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabRepository": {
+ "name": "gitlabRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabOwner": {
+ "name": "gitlabOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabBranch": {
+ "name": "gitlabBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabBuildPath": {
+ "name": "gitlabBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "gitlabPathNamespace": {
+ "name": "gitlabPathNamespace",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaRepository": {
+ "name": "giteaRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaOwner": {
+ "name": "giteaOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaBranch": {
+ "name": "giteaBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaBuildPath": {
+ "name": "giteaBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "bitbucketRepository": {
+ "name": "bitbucketRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketOwner": {
+ "name": "bitbucketOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketBranch": {
+ "name": "bitbucketBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketBuildPath": {
+ "name": "bitbucketBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "registryUrl": {
+ "name": "registryUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitUrl": {
+ "name": "customGitUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitBranch": {
+ "name": "customGitBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitBuildPath": {
+ "name": "customGitBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitSSHKeyId": {
+ "name": "customGitSSHKeyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enableSubmodules": {
+ "name": "enableSubmodules",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "dockerfile": {
+ "name": "dockerfile",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerContextPath": {
+ "name": "dockerContextPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerBuildStage": {
+ "name": "dockerBuildStage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dropBuildPath": {
+ "name": "dropBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "buildType": {
+ "name": "buildType",
+ "type": "buildType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'nixpacks'"
+ },
+ "railpackVersion": {
+ "name": "railpackVersion",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'0.2.2'"
+ },
+ "herokuVersion": {
+ "name": "herokuVersion",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'24'"
+ },
+ "publishDirectory": {
+ "name": "publishDirectory",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "isStaticSpa": {
+ "name": "isStaticSpa",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "registryId": {
+ "name": "registryId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "githubId": {
+ "name": "githubId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabId": {
+ "name": "gitlabId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaId": {
+ "name": "giteaId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketId": {
+ "name": "bitbucketId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildServerId": {
+ "name": "buildServerId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildRegistryId": {
+ "name": "buildRegistryId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "application_customGitSSHKeyId_ssh-key_sshKeyId_fk": {
+ "name": "application_customGitSSHKeyId_ssh-key_sshKeyId_fk",
+ "tableFrom": "application",
+ "tableTo": "ssh-key",
+ "columnsFrom": [
+ "customGitSSHKeyId"
+ ],
+ "columnsTo": [
+ "sshKeyId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_registryId_registry_registryId_fk": {
+ "name": "application_registryId_registry_registryId_fk",
+ "tableFrom": "application",
+ "tableTo": "registry",
+ "columnsFrom": [
+ "registryId"
+ ],
+ "columnsTo": [
+ "registryId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_environmentId_environment_environmentId_fk": {
+ "name": "application_environmentId_environment_environmentId_fk",
+ "tableFrom": "application",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "application_githubId_github_githubId_fk": {
+ "name": "application_githubId_github_githubId_fk",
+ "tableFrom": "application",
+ "tableTo": "github",
+ "columnsFrom": [
+ "githubId"
+ ],
+ "columnsTo": [
+ "githubId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_gitlabId_gitlab_gitlabId_fk": {
+ "name": "application_gitlabId_gitlab_gitlabId_fk",
+ "tableFrom": "application",
+ "tableTo": "gitlab",
+ "columnsFrom": [
+ "gitlabId"
+ ],
+ "columnsTo": [
+ "gitlabId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_giteaId_gitea_giteaId_fk": {
+ "name": "application_giteaId_gitea_giteaId_fk",
+ "tableFrom": "application",
+ "tableTo": "gitea",
+ "columnsFrom": [
+ "giteaId"
+ ],
+ "columnsTo": [
+ "giteaId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_bitbucketId_bitbucket_bitbucketId_fk": {
+ "name": "application_bitbucketId_bitbucket_bitbucketId_fk",
+ "tableFrom": "application",
+ "tableTo": "bitbucket",
+ "columnsFrom": [
+ "bitbucketId"
+ ],
+ "columnsTo": [
+ "bitbucketId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_serverId_server_serverId_fk": {
+ "name": "application_serverId_server_serverId_fk",
+ "tableFrom": "application",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "application_buildServerId_server_serverId_fk": {
+ "name": "application_buildServerId_server_serverId_fk",
+ "tableFrom": "application",
+ "tableTo": "server",
+ "columnsFrom": [
+ "buildServerId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_buildRegistryId_registry_registryId_fk": {
+ "name": "application_buildRegistryId_registry_registryId_fk",
+ "tableFrom": "application",
+ "tableTo": "registry",
+ "columnsFrom": [
+ "buildRegistryId"
+ ],
+ "columnsTo": [
+ "registryId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "application_appName_unique": {
+ "name": "application_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.backup": {
+ "name": "backup",
+ "schema": "",
+ "columns": {
+ "backupId": {
+ "name": "backupId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "schedule": {
+ "name": "schedule",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "database": {
+ "name": "database",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "prefix": {
+ "name": "prefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "destinationId": {
+ "name": "destinationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "keepLatestCount": {
+ "name": "keepLatestCount",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "backupType": {
+ "name": "backupType",
+ "type": "backupType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'database'"
+ },
+ "databaseType": {
+ "name": "databaseType",
+ "type": "databaseType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "userId": {
+ "name": "userId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "backup_destinationId_destination_destinationId_fk": {
+ "name": "backup_destinationId_destination_destinationId_fk",
+ "tableFrom": "backup",
+ "tableTo": "destination",
+ "columnsFrom": [
+ "destinationId"
+ ],
+ "columnsTo": [
+ "destinationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_composeId_compose_composeId_fk": {
+ "name": "backup_composeId_compose_composeId_fk",
+ "tableFrom": "backup",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_postgresId_postgres_postgresId_fk": {
+ "name": "backup_postgresId_postgres_postgresId_fk",
+ "tableFrom": "backup",
+ "tableTo": "postgres",
+ "columnsFrom": [
+ "postgresId"
+ ],
+ "columnsTo": [
+ "postgresId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_mariadbId_mariadb_mariadbId_fk": {
+ "name": "backup_mariadbId_mariadb_mariadbId_fk",
+ "tableFrom": "backup",
+ "tableTo": "mariadb",
+ "columnsFrom": [
+ "mariadbId"
+ ],
+ "columnsTo": [
+ "mariadbId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_mysqlId_mysql_mysqlId_fk": {
+ "name": "backup_mysqlId_mysql_mysqlId_fk",
+ "tableFrom": "backup",
+ "tableTo": "mysql",
+ "columnsFrom": [
+ "mysqlId"
+ ],
+ "columnsTo": [
+ "mysqlId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_mongoId_mongo_mongoId_fk": {
+ "name": "backup_mongoId_mongo_mongoId_fk",
+ "tableFrom": "backup",
+ "tableTo": "mongo",
+ "columnsFrom": [
+ "mongoId"
+ ],
+ "columnsTo": [
+ "mongoId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_userId_user_id_fk": {
+ "name": "backup_userId_user_id_fk",
+ "tableFrom": "backup",
+ "tableTo": "user",
+ "columnsFrom": [
+ "userId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "backup_appName_unique": {
+ "name": "backup_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.bitbucket": {
+ "name": "bitbucket",
+ "schema": "",
+ "columns": {
+ "bitbucketId": {
+ "name": "bitbucketId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "bitbucketUsername": {
+ "name": "bitbucketUsername",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketEmail": {
+ "name": "bitbucketEmail",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "appPassword": {
+ "name": "appPassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "apiToken": {
+ "name": "apiToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketWorkspaceName": {
+ "name": "bitbucketWorkspaceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "bitbucket_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "bitbucket_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "bitbucket",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.certificate": {
+ "name": "certificate",
+ "schema": "",
+ "columns": {
+ "certificateId": {
+ "name": "certificateId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "certificateData": {
+ "name": "certificateData",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "privateKey": {
+ "name": "privateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "certificatePath": {
+ "name": "certificatePath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "autoRenew": {
+ "name": "autoRenew",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "certificate_organizationId_organization_id_fk": {
+ "name": "certificate_organizationId_organization_id_fk",
+ "tableFrom": "certificate",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "certificate_serverId_server_serverId_fk": {
+ "name": "certificate_serverId_server_serverId_fk",
+ "tableFrom": "certificate",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "certificate_certificatePath_unique": {
+ "name": "certificate_certificatePath_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "certificatePath"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.compose": {
+ "name": "compose",
+ "schema": "",
+ "columns": {
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeFile": {
+ "name": "composeFile",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "refreshToken": {
+ "name": "refreshToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "sourceType": {
+ "name": "sourceType",
+ "type": "sourceTypeCompose",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'github'"
+ },
+ "composeType": {
+ "name": "composeType",
+ "type": "composeType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'docker-compose'"
+ },
+ "repository": {
+ "name": "repository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "owner": {
+ "name": "owner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "branch": {
+ "name": "branch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "autoDeploy": {
+ "name": "autoDeploy",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabProjectId": {
+ "name": "gitlabProjectId",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabRepository": {
+ "name": "gitlabRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabOwner": {
+ "name": "gitlabOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabBranch": {
+ "name": "gitlabBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabPathNamespace": {
+ "name": "gitlabPathNamespace",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketRepository": {
+ "name": "bitbucketRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketOwner": {
+ "name": "bitbucketOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketBranch": {
+ "name": "bitbucketBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaRepository": {
+ "name": "giteaRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaOwner": {
+ "name": "giteaOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaBranch": {
+ "name": "giteaBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitUrl": {
+ "name": "customGitUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitBranch": {
+ "name": "customGitBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitSSHKeyId": {
+ "name": "customGitSSHKeyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "enableSubmodules": {
+ "name": "enableSubmodules",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "composePath": {
+ "name": "composePath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'./docker-compose.yml'"
+ },
+ "suffix": {
+ "name": "suffix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "randomize": {
+ "name": "randomize",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "isolatedDeployment": {
+ "name": "isolatedDeployment",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "isolatedDeploymentsVolume": {
+ "name": "isolatedDeploymentsVolume",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "triggerType": {
+ "name": "triggerType",
+ "type": "triggerType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'push'"
+ },
+ "composeStatus": {
+ "name": "composeStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "watchPaths": {
+ "name": "watchPaths",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubId": {
+ "name": "githubId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabId": {
+ "name": "gitlabId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketId": {
+ "name": "bitbucketId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaId": {
+ "name": "giteaId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk": {
+ "name": "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk",
+ "tableFrom": "compose",
+ "tableTo": "ssh-key",
+ "columnsFrom": [
+ "customGitSSHKeyId"
+ ],
+ "columnsTo": [
+ "sshKeyId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_environmentId_environment_environmentId_fk": {
+ "name": "compose_environmentId_environment_environmentId_fk",
+ "tableFrom": "compose",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "compose_githubId_github_githubId_fk": {
+ "name": "compose_githubId_github_githubId_fk",
+ "tableFrom": "compose",
+ "tableTo": "github",
+ "columnsFrom": [
+ "githubId"
+ ],
+ "columnsTo": [
+ "githubId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_gitlabId_gitlab_gitlabId_fk": {
+ "name": "compose_gitlabId_gitlab_gitlabId_fk",
+ "tableFrom": "compose",
+ "tableTo": "gitlab",
+ "columnsFrom": [
+ "gitlabId"
+ ],
+ "columnsTo": [
+ "gitlabId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_bitbucketId_bitbucket_bitbucketId_fk": {
+ "name": "compose_bitbucketId_bitbucket_bitbucketId_fk",
+ "tableFrom": "compose",
+ "tableTo": "bitbucket",
+ "columnsFrom": [
+ "bitbucketId"
+ ],
+ "columnsTo": [
+ "bitbucketId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_giteaId_gitea_giteaId_fk": {
+ "name": "compose_giteaId_gitea_giteaId_fk",
+ "tableFrom": "compose",
+ "tableTo": "gitea",
+ "columnsFrom": [
+ "giteaId"
+ ],
+ "columnsTo": [
+ "giteaId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_serverId_server_serverId_fk": {
+ "name": "compose_serverId_server_serverId_fk",
+ "tableFrom": "compose",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.deployment": {
+ "name": "deployment",
+ "schema": "",
+ "columns": {
+ "deploymentId": {
+ "name": "deploymentId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "title": {
+ "name": "title",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "status": {
+ "name": "status",
+ "type": "deploymentStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'running'"
+ },
+ "logPath": {
+ "name": "logPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pid": {
+ "name": "pid",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "isPreviewDeployment": {
+ "name": "isPreviewDeployment",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "previewDeploymentId": {
+ "name": "previewDeploymentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "startedAt": {
+ "name": "startedAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "finishedAt": {
+ "name": "finishedAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "errorMessage": {
+ "name": "errorMessage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scheduleId": {
+ "name": "scheduleId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "backupId": {
+ "name": "backupId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackId": {
+ "name": "rollbackId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "volumeBackupId": {
+ "name": "volumeBackupId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildServerId": {
+ "name": "buildServerId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "deployment_applicationId_application_applicationId_fk": {
+ "name": "deployment_applicationId_application_applicationId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_composeId_compose_composeId_fk": {
+ "name": "deployment_composeId_compose_composeId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_serverId_server_serverId_fk": {
+ "name": "deployment_serverId_server_serverId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_previewDeploymentId_preview_deployments_previewDeploymentId_fk": {
+ "name": "deployment_previewDeploymentId_preview_deployments_previewDeploymentId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "preview_deployments",
+ "columnsFrom": [
+ "previewDeploymentId"
+ ],
+ "columnsTo": [
+ "previewDeploymentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_scheduleId_schedule_scheduleId_fk": {
+ "name": "deployment_scheduleId_schedule_scheduleId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "schedule",
+ "columnsFrom": [
+ "scheduleId"
+ ],
+ "columnsTo": [
+ "scheduleId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_backupId_backup_backupId_fk": {
+ "name": "deployment_backupId_backup_backupId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "backup",
+ "columnsFrom": [
+ "backupId"
+ ],
+ "columnsTo": [
+ "backupId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_rollbackId_rollback_rollbackId_fk": {
+ "name": "deployment_rollbackId_rollback_rollbackId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "rollback",
+ "columnsFrom": [
+ "rollbackId"
+ ],
+ "columnsTo": [
+ "rollbackId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_volumeBackupId_volume_backup_volumeBackupId_fk": {
+ "name": "deployment_volumeBackupId_volume_backup_volumeBackupId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "volume_backup",
+ "columnsFrom": [
+ "volumeBackupId"
+ ],
+ "columnsTo": [
+ "volumeBackupId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_buildServerId_server_serverId_fk": {
+ "name": "deployment_buildServerId_server_serverId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "server",
+ "columnsFrom": [
+ "buildServerId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.destination": {
+ "name": "destination",
+ "schema": "",
+ "columns": {
+ "destinationId": {
+ "name": "destinationId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "provider": {
+ "name": "provider",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "accessKey": {
+ "name": "accessKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "secretAccessKey": {
+ "name": "secretAccessKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "bucket": {
+ "name": "bucket",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "region": {
+ "name": "region",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "endpoint": {
+ "name": "endpoint",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "destination_organizationId_organization_id_fk": {
+ "name": "destination_organizationId_organization_id_fk",
+ "tableFrom": "destination",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.domain": {
+ "name": "domain",
+ "schema": "",
+ "columns": {
+ "domainId": {
+ "name": "domainId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "host": {
+ "name": "host",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "https": {
+ "name": "https",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "port": {
+ "name": "port",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false,
+ "default": 3000
+ },
+ "path": {
+ "name": "path",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "domainType": {
+ "name": "domainType",
+ "type": "domainType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'application'"
+ },
+ "uniqueConfigKey": {
+ "name": "uniqueConfigKey",
+ "type": "serial",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customCertResolver": {
+ "name": "customCertResolver",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewDeploymentId": {
+ "name": "previewDeploymentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "certificateType": {
+ "name": "certificateType",
+ "type": "certificateType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'none'"
+ },
+ "internalPath": {
+ "name": "internalPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "stripPath": {
+ "name": "stripPath",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "domain_composeId_compose_composeId_fk": {
+ "name": "domain_composeId_compose_composeId_fk",
+ "tableFrom": "domain",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "domain_applicationId_application_applicationId_fk": {
+ "name": "domain_applicationId_application_applicationId_fk",
+ "tableFrom": "domain",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "domain_previewDeploymentId_preview_deployments_previewDeploymentId_fk": {
+ "name": "domain_previewDeploymentId_preview_deployments_previewDeploymentId_fk",
+ "tableFrom": "domain",
+ "tableTo": "preview_deployments",
+ "columnsFrom": [
+ "previewDeploymentId"
+ ],
+ "columnsTo": [
+ "previewDeploymentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.environment": {
+ "name": "environment",
+ "schema": "",
+ "columns": {
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "projectId": {
+ "name": "projectId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "environment_projectId_project_projectId_fk": {
+ "name": "environment_projectId_project_projectId_fk",
+ "tableFrom": "environment",
+ "tableTo": "project",
+ "columnsFrom": [
+ "projectId"
+ ],
+ "columnsTo": [
+ "projectId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.git_provider": {
+ "name": "git_provider",
+ "schema": "",
+ "columns": {
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "providerType": {
+ "name": "providerType",
+ "type": "gitProviderType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'github'"
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "userId": {
+ "name": "userId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "git_provider_organizationId_organization_id_fk": {
+ "name": "git_provider_organizationId_organization_id_fk",
+ "tableFrom": "git_provider",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "git_provider_userId_user_id_fk": {
+ "name": "git_provider_userId_user_id_fk",
+ "tableFrom": "git_provider",
+ "tableTo": "user",
+ "columnsFrom": [
+ "userId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.gitea": {
+ "name": "gitea",
+ "schema": "",
+ "columns": {
+ "giteaId": {
+ "name": "giteaId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "giteaUrl": {
+ "name": "giteaUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'https://gitea.com'"
+ },
+ "redirect_uri": {
+ "name": "redirect_uri",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "client_id": {
+ "name": "client_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "client_secret": {
+ "name": "client_secret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scopes": {
+ "name": "scopes",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'repo,repo:status,read:user,read:org'"
+ },
+ "last_authenticated_at": {
+ "name": "last_authenticated_at",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "gitea_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "gitea_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "gitea",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.github": {
+ "name": "github",
+ "schema": "",
+ "columns": {
+ "githubId": {
+ "name": "githubId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "githubAppName": {
+ "name": "githubAppName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubAppId": {
+ "name": "githubAppId",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubClientId": {
+ "name": "githubClientId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubClientSecret": {
+ "name": "githubClientSecret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubInstallationId": {
+ "name": "githubInstallationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubPrivateKey": {
+ "name": "githubPrivateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubWebhookSecret": {
+ "name": "githubWebhookSecret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "github_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "github_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "github",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.gitlab": {
+ "name": "gitlab",
+ "schema": "",
+ "columns": {
+ "gitlabId": {
+ "name": "gitlabId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "gitlabUrl": {
+ "name": "gitlabUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'https://gitlab.com'"
+ },
+ "application_id": {
+ "name": "application_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "redirect_uri": {
+ "name": "redirect_uri",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "secret": {
+ "name": "secret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "group_name": {
+ "name": "group_name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "gitlab_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "gitlab_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "gitlab",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mariadb": {
+ "name": "mariadb",
+ "schema": "",
+ "columns": {
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "databaseName": {
+ "name": "databaseName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "rootPassword": {
+ "name": "rootPassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "args": {
+ "name": "args",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mariadb_environmentId_environment_environmentId_fk": {
+ "name": "mariadb_environmentId_environment_environmentId_fk",
+ "tableFrom": "mariadb",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mariadb_serverId_server_serverId_fk": {
+ "name": "mariadb_serverId_server_serverId_fk",
+ "tableFrom": "mariadb",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "mariadb_appName_unique": {
+ "name": "mariadb_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mongo": {
+ "name": "mongo",
+ "schema": "",
+ "columns": {
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "args": {
+ "name": "args",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicaSets": {
+ "name": "replicaSets",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mongo_environmentId_environment_environmentId_fk": {
+ "name": "mongo_environmentId_environment_environmentId_fk",
+ "tableFrom": "mongo",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mongo_serverId_server_serverId_fk": {
+ "name": "mongo_serverId_server_serverId_fk",
+ "tableFrom": "mongo",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "mongo_appName_unique": {
+ "name": "mongo_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mount": {
+ "name": "mount",
+ "schema": "",
+ "columns": {
+ "mountId": {
+ "name": "mountId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "type": {
+ "name": "type",
+ "type": "mountType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "hostPath": {
+ "name": "hostPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "volumeName": {
+ "name": "volumeName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "filePath": {
+ "name": "filePath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "content": {
+ "name": "content",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serviceType": {
+ "name": "serviceType",
+ "type": "serviceType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'application'"
+ },
+ "mountPath": {
+ "name": "mountPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "redisId": {
+ "name": "redisId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mount_applicationId_application_applicationId_fk": {
+ "name": "mount_applicationId_application_applicationId_fk",
+ "tableFrom": "mount",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_postgresId_postgres_postgresId_fk": {
+ "name": "mount_postgresId_postgres_postgresId_fk",
+ "tableFrom": "mount",
+ "tableTo": "postgres",
+ "columnsFrom": [
+ "postgresId"
+ ],
+ "columnsTo": [
+ "postgresId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_mariadbId_mariadb_mariadbId_fk": {
+ "name": "mount_mariadbId_mariadb_mariadbId_fk",
+ "tableFrom": "mount",
+ "tableTo": "mariadb",
+ "columnsFrom": [
+ "mariadbId"
+ ],
+ "columnsTo": [
+ "mariadbId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_mongoId_mongo_mongoId_fk": {
+ "name": "mount_mongoId_mongo_mongoId_fk",
+ "tableFrom": "mount",
+ "tableTo": "mongo",
+ "columnsFrom": [
+ "mongoId"
+ ],
+ "columnsTo": [
+ "mongoId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_mysqlId_mysql_mysqlId_fk": {
+ "name": "mount_mysqlId_mysql_mysqlId_fk",
+ "tableFrom": "mount",
+ "tableTo": "mysql",
+ "columnsFrom": [
+ "mysqlId"
+ ],
+ "columnsTo": [
+ "mysqlId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_redisId_redis_redisId_fk": {
+ "name": "mount_redisId_redis_redisId_fk",
+ "tableFrom": "mount",
+ "tableTo": "redis",
+ "columnsFrom": [
+ "redisId"
+ ],
+ "columnsTo": [
+ "redisId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_composeId_compose_composeId_fk": {
+ "name": "mount_composeId_compose_composeId_fk",
+ "tableFrom": "mount",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mysql": {
+ "name": "mysql",
+ "schema": "",
+ "columns": {
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "databaseName": {
+ "name": "databaseName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "rootPassword": {
+ "name": "rootPassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "args": {
+ "name": "args",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mysql_environmentId_environment_environmentId_fk": {
+ "name": "mysql_environmentId_environment_environmentId_fk",
+ "tableFrom": "mysql",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mysql_serverId_server_serverId_fk": {
+ "name": "mysql_serverId_server_serverId_fk",
+ "tableFrom": "mysql",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "mysql_appName_unique": {
+ "name": "mysql_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.discord": {
+ "name": "discord",
+ "schema": "",
+ "columns": {
+ "discordId": {
+ "name": "discordId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "webhookUrl": {
+ "name": "webhookUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "decoration": {
+ "name": "decoration",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.email": {
+ "name": "email",
+ "schema": "",
+ "columns": {
+ "emailId": {
+ "name": "emailId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "smtpServer": {
+ "name": "smtpServer",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "smtpPort": {
+ "name": "smtpPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "fromAddress": {
+ "name": "fromAddress",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "toAddress": {
+ "name": "toAddress",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.gotify": {
+ "name": "gotify",
+ "schema": "",
+ "columns": {
+ "gotifyId": {
+ "name": "gotifyId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "serverUrl": {
+ "name": "serverUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appToken": {
+ "name": "appToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "priority": {
+ "name": "priority",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 5
+ },
+ "decoration": {
+ "name": "decoration",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.lark": {
+ "name": "lark",
+ "schema": "",
+ "columns": {
+ "larkId": {
+ "name": "larkId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "webhookUrl": {
+ "name": "webhookUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.notification": {
+ "name": "notification",
+ "schema": "",
+ "columns": {
+ "notificationId": {
+ "name": "notificationId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appDeploy": {
+ "name": "appDeploy",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "appBuildError": {
+ "name": "appBuildError",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "databaseBackup": {
+ "name": "databaseBackup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "dokployRestart": {
+ "name": "dokployRestart",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "dockerCleanup": {
+ "name": "dockerCleanup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "serverThreshold": {
+ "name": "serverThreshold",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "notificationType": {
+ "name": "notificationType",
+ "type": "notificationType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "slackId": {
+ "name": "slackId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "telegramId": {
+ "name": "telegramId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "discordId": {
+ "name": "discordId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "emailId": {
+ "name": "emailId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gotifyId": {
+ "name": "gotifyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ntfyId": {
+ "name": "ntfyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "larkId": {
+ "name": "larkId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "notification_slackId_slack_slackId_fk": {
+ "name": "notification_slackId_slack_slackId_fk",
+ "tableFrom": "notification",
+ "tableTo": "slack",
+ "columnsFrom": [
+ "slackId"
+ ],
+ "columnsTo": [
+ "slackId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_telegramId_telegram_telegramId_fk": {
+ "name": "notification_telegramId_telegram_telegramId_fk",
+ "tableFrom": "notification",
+ "tableTo": "telegram",
+ "columnsFrom": [
+ "telegramId"
+ ],
+ "columnsTo": [
+ "telegramId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_discordId_discord_discordId_fk": {
+ "name": "notification_discordId_discord_discordId_fk",
+ "tableFrom": "notification",
+ "tableTo": "discord",
+ "columnsFrom": [
+ "discordId"
+ ],
+ "columnsTo": [
+ "discordId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_emailId_email_emailId_fk": {
+ "name": "notification_emailId_email_emailId_fk",
+ "tableFrom": "notification",
+ "tableTo": "email",
+ "columnsFrom": [
+ "emailId"
+ ],
+ "columnsTo": [
+ "emailId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_gotifyId_gotify_gotifyId_fk": {
+ "name": "notification_gotifyId_gotify_gotifyId_fk",
+ "tableFrom": "notification",
+ "tableTo": "gotify",
+ "columnsFrom": [
+ "gotifyId"
+ ],
+ "columnsTo": [
+ "gotifyId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_ntfyId_ntfy_ntfyId_fk": {
+ "name": "notification_ntfyId_ntfy_ntfyId_fk",
+ "tableFrom": "notification",
+ "tableTo": "ntfy",
+ "columnsFrom": [
+ "ntfyId"
+ ],
+ "columnsTo": [
+ "ntfyId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_larkId_lark_larkId_fk": {
+ "name": "notification_larkId_lark_larkId_fk",
+ "tableFrom": "notification",
+ "tableTo": "lark",
+ "columnsFrom": [
+ "larkId"
+ ],
+ "columnsTo": [
+ "larkId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_organizationId_organization_id_fk": {
+ "name": "notification_organizationId_organization_id_fk",
+ "tableFrom": "notification",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ntfy": {
+ "name": "ntfy",
+ "schema": "",
+ "columns": {
+ "ntfyId": {
+ "name": "ntfyId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "serverUrl": {
+ "name": "serverUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "topic": {
+ "name": "topic",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "accessToken": {
+ "name": "accessToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "priority": {
+ "name": "priority",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 3
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.slack": {
+ "name": "slack",
+ "schema": "",
+ "columns": {
+ "slackId": {
+ "name": "slackId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "webhookUrl": {
+ "name": "webhookUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "channel": {
+ "name": "channel",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.telegram": {
+ "name": "telegram",
+ "schema": "",
+ "columns": {
+ "telegramId": {
+ "name": "telegramId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "botToken": {
+ "name": "botToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "chatId": {
+ "name": "chatId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "messageThreadId": {
+ "name": "messageThreadId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.port": {
+ "name": "port",
+ "schema": "",
+ "columns": {
+ "portId": {
+ "name": "portId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "publishedPort": {
+ "name": "publishedPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "publishMode": {
+ "name": "publishMode",
+ "type": "publishModeType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'host'"
+ },
+ "targetPort": {
+ "name": "targetPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "protocol": {
+ "name": "protocol",
+ "type": "protocolType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "port_applicationId_application_applicationId_fk": {
+ "name": "port_applicationId_application_applicationId_fk",
+ "tableFrom": "port",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.postgres": {
+ "name": "postgres",
+ "schema": "",
+ "columns": {
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseName": {
+ "name": "databaseName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "args": {
+ "name": "args",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "postgres_environmentId_environment_environmentId_fk": {
+ "name": "postgres_environmentId_environment_environmentId_fk",
+ "tableFrom": "postgres",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "postgres_serverId_server_serverId_fk": {
+ "name": "postgres_serverId_server_serverId_fk",
+ "tableFrom": "postgres",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "postgres_appName_unique": {
+ "name": "postgres_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.preview_deployments": {
+ "name": "preview_deployments",
+ "schema": "",
+ "columns": {
+ "previewDeploymentId": {
+ "name": "previewDeploymentId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "branch": {
+ "name": "branch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestId": {
+ "name": "pullRequestId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestNumber": {
+ "name": "pullRequestNumber",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestURL": {
+ "name": "pullRequestURL",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestTitle": {
+ "name": "pullRequestTitle",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestCommentId": {
+ "name": "pullRequestCommentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "previewStatus": {
+ "name": "previewStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "domainId": {
+ "name": "domainId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expiresAt": {
+ "name": "expiresAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "preview_deployments_applicationId_application_applicationId_fk": {
+ "name": "preview_deployments_applicationId_application_applicationId_fk",
+ "tableFrom": "preview_deployments",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "preview_deployments_domainId_domain_domainId_fk": {
+ "name": "preview_deployments_domainId_domain_domainId_fk",
+ "tableFrom": "preview_deployments",
+ "tableTo": "domain",
+ "columnsFrom": [
+ "domainId"
+ ],
+ "columnsTo": [
+ "domainId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "preview_deployments_appName_unique": {
+ "name": "preview_deployments_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.project": {
+ "name": "project",
+ "schema": "",
+ "columns": {
+ "projectId": {
+ "name": "projectId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "project_organizationId_organization_id_fk": {
+ "name": "project_organizationId_organization_id_fk",
+ "tableFrom": "project",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.redirect": {
+ "name": "redirect",
+ "schema": "",
+ "columns": {
+ "redirectId": {
+ "name": "redirectId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "regex": {
+ "name": "regex",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "replacement": {
+ "name": "replacement",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "permanent": {
+ "name": "permanent",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "uniqueConfigKey": {
+ "name": "uniqueConfigKey",
+ "type": "serial",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "redirect_applicationId_application_applicationId_fk": {
+ "name": "redirect_applicationId_application_applicationId_fk",
+ "tableFrom": "redirect",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.redis": {
+ "name": "redis",
+ "schema": "",
+ "columns": {
+ "redisId": {
+ "name": "redisId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "args": {
+ "name": "args",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "redis_environmentId_environment_environmentId_fk": {
+ "name": "redis_environmentId_environment_environmentId_fk",
+ "tableFrom": "redis",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "redis_serverId_server_serverId_fk": {
+ "name": "redis_serverId_server_serverId_fk",
+ "tableFrom": "redis",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "redis_appName_unique": {
+ "name": "redis_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.registry": {
+ "name": "registry",
+ "schema": "",
+ "columns": {
+ "registryId": {
+ "name": "registryId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "registryName": {
+ "name": "registryName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "imagePrefix": {
+ "name": "imagePrefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "registryUrl": {
+ "name": "registryUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "selfHosted": {
+ "name": "selfHosted",
+ "type": "RegistryType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'cloud'"
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "registry_organizationId_organization_id_fk": {
+ "name": "registry_organizationId_organization_id_fk",
+ "tableFrom": "registry",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.rollback": {
+ "name": "rollback",
+ "schema": "",
+ "columns": {
+ "rollbackId": {
+ "name": "rollbackId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "deploymentId": {
+ "name": "deploymentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "version": {
+ "name": "version",
+ "type": "serial",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "image": {
+ "name": "image",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "fullContext": {
+ "name": "fullContext",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "rollback_deploymentId_deployment_deploymentId_fk": {
+ "name": "rollback_deploymentId_deployment_deploymentId_fk",
+ "tableFrom": "rollback",
+ "tableTo": "deployment",
+ "columnsFrom": [
+ "deploymentId"
+ ],
+ "columnsTo": [
+ "deploymentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.schedule": {
+ "name": "schedule",
+ "schema": "",
+ "columns": {
+ "scheduleId": {
+ "name": "scheduleId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "cronExpression": {
+ "name": "cronExpression",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "shellType": {
+ "name": "shellType",
+ "type": "shellType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'bash'"
+ },
+ "scheduleType": {
+ "name": "scheduleType",
+ "type": "scheduleType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'application'"
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "script": {
+ "name": "script",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "userId": {
+ "name": "userId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "schedule_applicationId_application_applicationId_fk": {
+ "name": "schedule_applicationId_application_applicationId_fk",
+ "tableFrom": "schedule",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "schedule_composeId_compose_composeId_fk": {
+ "name": "schedule_composeId_compose_composeId_fk",
+ "tableFrom": "schedule",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "schedule_serverId_server_serverId_fk": {
+ "name": "schedule_serverId_server_serverId_fk",
+ "tableFrom": "schedule",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "schedule_userId_user_id_fk": {
+ "name": "schedule_userId_user_id_fk",
+ "tableFrom": "schedule",
+ "tableTo": "user",
+ "columnsFrom": [
+ "userId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.security": {
+ "name": "security",
+ "schema": "",
+ "columns": {
+ "securityId": {
+ "name": "securityId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "security_applicationId_application_applicationId_fk": {
+ "name": "security_applicationId_application_applicationId_fk",
+ "tableFrom": "security",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "security_username_applicationId_unique": {
+ "name": "security_username_applicationId_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "username",
+ "applicationId"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.server": {
+ "name": "server",
+ "schema": "",
+ "columns": {
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ipAddress": {
+ "name": "ipAddress",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "port": {
+ "name": "port",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'root'"
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "enableDockerCleanup": {
+ "name": "enableDockerCleanup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverStatus": {
+ "name": "serverStatus",
+ "type": "serverStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'active'"
+ },
+ "serverType": {
+ "name": "serverType",
+ "type": "serverType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'deploy'"
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "sshKeyId": {
+ "name": "sshKeyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "metricsConfig": {
+ "name": "metricsConfig",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'{\"server\":{\"type\":\"Remote\",\"refreshRate\":60,\"port\":4500,\"token\":\"\",\"urlCallback\":\"\",\"cronJob\":\"\",\"retentionDays\":2,\"thresholds\":{\"cpu\":0,\"memory\":0}},\"containers\":{\"refreshRate\":60,\"services\":{\"include\":[],\"exclude\":[]}}}'::jsonb"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "server_organizationId_organization_id_fk": {
+ "name": "server_organizationId_organization_id_fk",
+ "tableFrom": "server",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "server_sshKeyId_ssh-key_sshKeyId_fk": {
+ "name": "server_sshKeyId_ssh-key_sshKeyId_fk",
+ "tableFrom": "server",
+ "tableTo": "ssh-key",
+ "columnsFrom": [
+ "sshKeyId"
+ ],
+ "columnsTo": [
+ "sshKeyId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.session_temp": {
+ "name": "session_temp",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "token": {
+ "name": "token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "ip_address": {
+ "name": "ip_address",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_agent": {
+ "name": "user_agent",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "impersonated_by": {
+ "name": "impersonated_by",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "active_organization_id": {
+ "name": "active_organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "session_temp_user_id_user_id_fk": {
+ "name": "session_temp_user_id_user_id_fk",
+ "tableFrom": "session_temp",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "session_temp_token_unique": {
+ "name": "session_temp_token_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "token"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ssh-key": {
+ "name": "ssh-key",
+ "schema": "",
+ "columns": {
+ "sshKeyId": {
+ "name": "sshKeyId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "privateKey": {
+ "name": "privateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "publicKey": {
+ "name": "publicKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "lastUsedAt": {
+ "name": "lastUsedAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "ssh-key_organizationId_organization_id_fk": {
+ "name": "ssh-key_organizationId_organization_id_fk",
+ "tableFrom": "ssh-key",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.user": {
+ "name": "user",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "isRegistered": {
+ "name": "isRegistered",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "expirationDate": {
+ "name": "expirationDate",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "two_factor_enabled": {
+ "name": "two_factor_enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email_verified": {
+ "name": "email_verified",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "image": {
+ "name": "image",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "banned": {
+ "name": "banned",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ban_reason": {
+ "name": "ban_reason",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ban_expires": {
+ "name": "ban_expires",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverIp": {
+ "name": "serverIp",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "certificateType": {
+ "name": "certificateType",
+ "type": "certificateType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'none'"
+ },
+ "https": {
+ "name": "https",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "host": {
+ "name": "host",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "letsEncryptEmail": {
+ "name": "letsEncryptEmail",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "sshPrivateKey": {
+ "name": "sshPrivateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enableDockerCleanup": {
+ "name": "enableDockerCleanup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "logCleanupCron": {
+ "name": "logCleanupCron",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'0 0 * * *'"
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'user'"
+ },
+ "enablePaidFeatures": {
+ "name": "enablePaidFeatures",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "allowImpersonation": {
+ "name": "allowImpersonation",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "metricsConfig": {
+ "name": "metricsConfig",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'{\"server\":{\"type\":\"Dokploy\",\"refreshRate\":60,\"port\":4500,\"token\":\"\",\"retentionDays\":2,\"cronJob\":\"\",\"urlCallback\":\"\",\"thresholds\":{\"cpu\":0,\"memory\":0}},\"containers\":{\"refreshRate\":60,\"services\":{\"include\":[],\"exclude\":[]}}}'::jsonb"
+ },
+ "cleanupCacheApplications": {
+ "name": "cleanupCacheApplications",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "cleanupCacheOnPreviews": {
+ "name": "cleanupCacheOnPreviews",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "cleanupCacheOnCompose": {
+ "name": "cleanupCacheOnCompose",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "stripeCustomerId": {
+ "name": "stripeCustomerId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stripeSubscriptionId": {
+ "name": "stripeSubscriptionId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serversQuantity": {
+ "name": "serversQuantity",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 0
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "user_email_unique": {
+ "name": "user_email_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "email"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.volume_backup": {
+ "name": "volume_backup",
+ "schema": "",
+ "columns": {
+ "volumeBackupId": {
+ "name": "volumeBackupId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "volumeName": {
+ "name": "volumeName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "prefix": {
+ "name": "prefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceType": {
+ "name": "serviceType",
+ "type": "serviceType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'application'"
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "turnOff": {
+ "name": "turnOff",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "cronExpression": {
+ "name": "cronExpression",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "keepLatestCount": {
+ "name": "keepLatestCount",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "redisId": {
+ "name": "redisId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "destinationId": {
+ "name": "destinationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "volume_backup_applicationId_application_applicationId_fk": {
+ "name": "volume_backup_applicationId_application_applicationId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_postgresId_postgres_postgresId_fk": {
+ "name": "volume_backup_postgresId_postgres_postgresId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "postgres",
+ "columnsFrom": [
+ "postgresId"
+ ],
+ "columnsTo": [
+ "postgresId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_mariadbId_mariadb_mariadbId_fk": {
+ "name": "volume_backup_mariadbId_mariadb_mariadbId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "mariadb",
+ "columnsFrom": [
+ "mariadbId"
+ ],
+ "columnsTo": [
+ "mariadbId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_mongoId_mongo_mongoId_fk": {
+ "name": "volume_backup_mongoId_mongo_mongoId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "mongo",
+ "columnsFrom": [
+ "mongoId"
+ ],
+ "columnsTo": [
+ "mongoId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_mysqlId_mysql_mysqlId_fk": {
+ "name": "volume_backup_mysqlId_mysql_mysqlId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "mysql",
+ "columnsFrom": [
+ "mysqlId"
+ ],
+ "columnsTo": [
+ "mysqlId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_redisId_redis_redisId_fk": {
+ "name": "volume_backup_redisId_redis_redisId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "redis",
+ "columnsFrom": [
+ "redisId"
+ ],
+ "columnsTo": [
+ "redisId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_composeId_compose_composeId_fk": {
+ "name": "volume_backup_composeId_compose_composeId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_destinationId_destination_destinationId_fk": {
+ "name": "volume_backup_destinationId_destination_destinationId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "destination",
+ "columnsFrom": [
+ "destinationId"
+ ],
+ "columnsTo": [
+ "destinationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ }
+ },
+ "enums": {
+ "public.buildType": {
+ "name": "buildType",
+ "schema": "public",
+ "values": [
+ "dockerfile",
+ "heroku_buildpacks",
+ "paketo_buildpacks",
+ "nixpacks",
+ "static",
+ "railpack"
+ ]
+ },
+ "public.sourceType": {
+ "name": "sourceType",
+ "schema": "public",
+ "values": [
+ "docker",
+ "git",
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "drop"
+ ]
+ },
+ "public.backupType": {
+ "name": "backupType",
+ "schema": "public",
+ "values": [
+ "database",
+ "compose"
+ ]
+ },
+ "public.databaseType": {
+ "name": "databaseType",
+ "schema": "public",
+ "values": [
+ "postgres",
+ "mariadb",
+ "mysql",
+ "mongo",
+ "web-server"
+ ]
+ },
+ "public.composeType": {
+ "name": "composeType",
+ "schema": "public",
+ "values": [
+ "docker-compose",
+ "stack"
+ ]
+ },
+ "public.sourceTypeCompose": {
+ "name": "sourceTypeCompose",
+ "schema": "public",
+ "values": [
+ "git",
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "raw"
+ ]
+ },
+ "public.deploymentStatus": {
+ "name": "deploymentStatus",
+ "schema": "public",
+ "values": [
+ "running",
+ "done",
+ "error",
+ "cancelled"
+ ]
+ },
+ "public.domainType": {
+ "name": "domainType",
+ "schema": "public",
+ "values": [
+ "compose",
+ "application",
+ "preview"
+ ]
+ },
+ "public.gitProviderType": {
+ "name": "gitProviderType",
+ "schema": "public",
+ "values": [
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea"
+ ]
+ },
+ "public.mountType": {
+ "name": "mountType",
+ "schema": "public",
+ "values": [
+ "bind",
+ "volume",
+ "file"
+ ]
+ },
+ "public.serviceType": {
+ "name": "serviceType",
+ "schema": "public",
+ "values": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ]
+ },
+ "public.notificationType": {
+ "name": "notificationType",
+ "schema": "public",
+ "values": [
+ "slack",
+ "telegram",
+ "discord",
+ "email",
+ "gotify",
+ "ntfy",
+ "lark"
+ ]
+ },
+ "public.protocolType": {
+ "name": "protocolType",
+ "schema": "public",
+ "values": [
+ "tcp",
+ "udp"
+ ]
+ },
+ "public.publishModeType": {
+ "name": "publishModeType",
+ "schema": "public",
+ "values": [
+ "ingress",
+ "host"
+ ]
+ },
+ "public.RegistryType": {
+ "name": "RegistryType",
+ "schema": "public",
+ "values": [
+ "selfHosted",
+ "cloud"
+ ]
+ },
+ "public.scheduleType": {
+ "name": "scheduleType",
+ "schema": "public",
+ "values": [
+ "application",
+ "compose",
+ "server",
+ "dokploy-server"
+ ]
+ },
+ "public.shellType": {
+ "name": "shellType",
+ "schema": "public",
+ "values": [
+ "bash",
+ "sh"
+ ]
+ },
+ "public.serverStatus": {
+ "name": "serverStatus",
+ "schema": "public",
+ "values": [
+ "active",
+ "inactive"
+ ]
+ },
+ "public.serverType": {
+ "name": "serverType",
+ "schema": "public",
+ "values": [
+ "deploy",
+ "build"
+ ]
+ },
+ "public.applicationStatus": {
+ "name": "applicationStatus",
+ "schema": "public",
+ "values": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "public.certificateType": {
+ "name": "certificateType",
+ "schema": "public",
+ "values": [
+ "letsencrypt",
+ "none",
+ "custom"
+ ]
+ },
+ "public.triggerType": {
+ "name": "triggerType",
+ "schema": "public",
+ "values": [
+ "push",
+ "tag"
+ ]
+ }
+ },
+ "schemas": {},
+ "sequences": {},
+ "roles": {},
+ "policies": {},
+ "views": {},
+ "_meta": {
+ "columns": {},
+ "schemas": {},
+ "tables": {}
+ }
+}
\ No newline at end of file
diff --git a/apps/dokploy/drizzle/meta/_journal.json b/apps/dokploy/drizzle/meta/_journal.json
index 5add54e24..81d39091c 100644
--- a/apps/dokploy/drizzle/meta/_journal.json
+++ b/apps/dokploy/drizzle/meta/_journal.json
@@ -869,6 +869,13 @@
"when": 1764525308939,
"tag": "0123_cloudy_piledriver",
"breakpoints": true
+ },
+ {
+ "idx": 124,
+ "version": "7",
+ "when": 1764571454170,
+ "tag": "0124_certain_cloak",
+ "breakpoints": true
}
]
}
\ No newline at end of file
diff --git a/packages/server/src/db/schema/notification.ts b/packages/server/src/db/schema/notification.ts
index f7818b4cf..f3a4754de 100644
--- a/packages/server/src/db/schema/notification.ts
+++ b/packages/server/src/db/schema/notification.ts
@@ -116,7 +116,7 @@ export const ntfy = pgTable("ntfy", {
.$defaultFn(() => nanoid()),
serverUrl: text("serverUrl").notNull(),
topic: text("topic").notNull(),
- accessToken: text("accessToken").notNull(),
+ accessToken: text("accessToken"),
priority: integer("priority").notNull().default(3),
});
@@ -331,7 +331,7 @@ export const apiCreateNtfy = notificationsSchema
.extend({
serverUrl: z.string().min(1),
topic: z.string().min(1),
- accessToken: z.string().min(1),
+ accessToken: z.string().optional(),
priority: z.number().min(1),
})
.required();
@@ -395,7 +395,7 @@ export const apiSendTest = notificationsSchema
serverUrl: z.string(),
topic: z.string(),
appToken: z.string(),
- accessToken: z.string(),
+ accessToken: z.string().optional(),
priority: z.number(),
})
.partial();
diff --git a/packages/server/src/services/notification.ts b/packages/server/src/services/notification.ts
index 9eaf812e0..d0a7ab283 100644
--- a/packages/server/src/services/notification.ts
+++ b/packages/server/src/services/notification.ts
@@ -498,7 +498,7 @@ export const createNtfyNotification = async (
.values({
serverUrl: input.serverUrl,
topic: input.topic,
- accessToken: input.accessToken,
+ accessToken: input.accessToken ?? null,
priority: input.priority,
})
.returning()
@@ -569,7 +569,7 @@ export const updateNtfyNotification = async (
.set({
serverUrl: input.serverUrl,
topic: input.topic,
- accessToken: input.accessToken,
+ accessToken: input.accessToken ?? null,
priority: input.priority,
})
.where(eq(ntfy.ntfyId, input.ntfyId));
diff --git a/packages/server/src/utils/notifications/utils.ts b/packages/server/src/utils/notifications/utils.ts
index 539376ac5..b0d956470 100644
--- a/packages/server/src/utils/notifications/utils.ts
+++ b/packages/server/src/utils/notifications/utils.ts
@@ -156,15 +156,20 @@ export const sendNtfyNotification = async (
actions: string,
message: string,
) => {
+ const headers: Record = {
+ "X-Priority": connection.priority?.toString() || "3",
+ "X-Title": title,
+ "X-Tags": tags,
+ "X-Actions": actions,
+ };
+
+ if (connection.accessToken) {
+ headers.Authorization = `Bearer ${connection.accessToken}`;
+ }
+
const response = await fetch(`${connection.serverUrl}/${connection.topic}`, {
method: "POST",
- headers: {
- Authorization: `Bearer ${connection.accessToken}`,
- "X-Priority": connection.priority?.toString() || "3",
- "X-Title": title,
- "X-Tags": tags,
- "X-Actions": actions,
- },
+ headers,
body: message,
});
From e06f5979c30fe43e6b99f347b55353ae921c6c5d Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Mon, 1 Dec 2025 00:46:35 -0600
Subject: [PATCH 53/74] refactor: streamline notification header construction
in sendNtfyNotification
- Consolidated header creation for the notification request, improving code readability and maintainability.
- Made the Authorization header conditional based on the presence of accessToken, enhancing flexibility.
---
.../server/src/utils/notifications/utils.ts | 21 ++++++++-----------
1 file changed, 9 insertions(+), 12 deletions(-)
diff --git a/packages/server/src/utils/notifications/utils.ts b/packages/server/src/utils/notifications/utils.ts
index b0d956470..328df0b87 100644
--- a/packages/server/src/utils/notifications/utils.ts
+++ b/packages/server/src/utils/notifications/utils.ts
@@ -156,20 +156,17 @@ export const sendNtfyNotification = async (
actions: string,
message: string,
) => {
- const headers: Record = {
- "X-Priority": connection.priority?.toString() || "3",
- "X-Title": title,
- "X-Tags": tags,
- "X-Actions": actions,
- };
-
- if (connection.accessToken) {
- headers.Authorization = `Bearer ${connection.accessToken}`;
- }
-
const response = await fetch(`${connection.serverUrl}/${connection.topic}`, {
method: "POST",
- headers,
+ headers: {
+ ...(connection.accessToken && {
+ Authorization: `Bearer ${connection.accessToken}`,
+ }),
+ "X-Priority": connection.priority?.toString() || "3",
+ "X-Title": title,
+ "X-Tags": tags,
+ "X-Actions": actions,
+ },
body: message,
});
From ef9732d5d968f64cca1f4fc6e2bc53a39f733cf8 Mon Sep 17 00:00:00 2001
From: Jordan B
Date: Mon, 1 Dec 2025 08:51:55 +0100
Subject: [PATCH 54/74] refactor: change CPU value type from number to string
---
.../free/container/show-free-container-monitoring.tsx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/apps/dokploy/components/dashboard/monitoring/free/container/show-free-container-monitoring.tsx b/apps/dokploy/components/dashboard/monitoring/free/container/show-free-container-monitoring.tsx
index 4cc38cfc0..21dde8f90 100644
--- a/apps/dokploy/components/dashboard/monitoring/free/container/show-free-container-monitoring.tsx
+++ b/apps/dokploy/components/dashboard/monitoring/free/container/show-free-container-monitoring.tsx
@@ -10,7 +10,7 @@ import { DockerNetworkChart } from "./docker-network-chart";
const defaultData = {
cpu: {
- value: 0,
+ value: '0%',
time: "",
},
memory: {
@@ -46,7 +46,7 @@ interface Props {
}
export interface DockerStats {
cpu: {
- value: number;
+ value: string;
time: string;
};
memory: {
From 5a7f55ea63a29a4f563bf5e6410edf07808e4df3 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Tue, 2 Dec 2025 00:48:11 -0600
Subject: [PATCH 55/74] feat: implement rollback registry functionality in
application settings
- Added a new optional field `rollbackRegistryId` to the application schema to support rollback registry selection.
- Enhanced the form in the ShowRollbackSettings component to include a dropdown for selecting a rollback registry when rollbacks are enabled.
- Updated the application service to handle rollback registry logic during deployment and rollback processes.
- Improved error handling and validation for rollback settings, ensuring a registry is selected when rollbacks are active.
- Adjusted database schema and migration files to accommodate the new rollback registry feature.
---
.../rollbacks/show-rollback-settings.tsx | 94 +-
.../dokploy/drizzle/0125_neat_the_phantom.sql | 2 +
apps/dokploy/drizzle/meta/0125_snapshot.json | 6850 +++++++++++++++++
apps/dokploy/drizzle/meta/_journal.json | 7 +
packages/server/src/db/schema/application.ts | 11 +
packages/server/src/db/schema/registry.ts | 3 +
packages/server/src/services/application.ts | 32 +-
packages/server/src/services/rollbacks.ts | 73 +-
packages/server/src/utils/builders/index.ts | 70 +-
packages/server/src/utils/cluster/upload.ts | 44 +-
10 files changed, 7077 insertions(+), 109 deletions(-)
create mode 100644 apps/dokploy/drizzle/0125_neat_the_phantom.sql
create mode 100644 apps/dokploy/drizzle/meta/0125_snapshot.json
diff --git a/apps/dokploy/components/dashboard/application/rollbacks/show-rollback-settings.tsx b/apps/dokploy/components/dashboard/application/rollbacks/show-rollback-settings.tsx
index 2fc7c0522..8b6c6dd13 100644
--- a/apps/dokploy/components/dashboard/application/rollbacks/show-rollback-settings.tsx
+++ b/apps/dokploy/components/dashboard/application/rollbacks/show-rollback-settings.tsx
@@ -1,5 +1,5 @@
import { zodResolver } from "@hookform/resolvers/zod";
-import { useState } from "react";
+import { useEffect, useState } from "react";
import { useForm } from "react-hook-form";
import { toast } from "sonner";
import { z } from "zod";
@@ -20,13 +20,37 @@ import {
FormField,
FormItem,
FormLabel,
+ FormMessage,
} from "@/components/ui/form";
import { Switch } from "@/components/ui/switch";
+import {
+ Select,
+ SelectContent,
+ SelectGroup,
+ SelectItem,
+ SelectLabel,
+ SelectTrigger,
+ SelectValue,
+} from "@/components/ui/select";
import { api } from "@/utils/api";
-const formSchema = z.object({
- rollbackActive: z.boolean(),
-});
+const formSchema = z
+ .object({
+ rollbackActive: z.boolean(),
+ rollbackRegistryId: z.string().optional(),
+ })
+ .superRefine((values, ctx) => {
+ if (
+ values.rollbackActive &&
+ (!values.rollbackRegistryId || values.rollbackRegistryId === "none")
+ ) {
+ ctx.addIssue({
+ code: z.ZodIssueCode.custom,
+ path: ["rollbackRegistryId"],
+ message: "Registry is required when rollbacks are enabled",
+ });
+ }
+ });
type FormValues = z.infer;
@@ -49,17 +73,33 @@ export const ShowRollbackSettings = ({ applicationId, children }: Props) => {
const { mutateAsync: updateApplication, isLoading } =
api.application.update.useMutation();
+ const { data: registries } = api.registry.all.useQuery();
+
const form = useForm({
resolver: zodResolver(formSchema),
defaultValues: {
rollbackActive: application?.rollbackActive ?? false,
+ rollbackRegistryId: application?.rollbackRegistryId || "",
},
});
+ useEffect(() => {
+ if (application) {
+ form.reset({
+ rollbackActive: application.rollbackActive ?? false,
+ rollbackRegistryId: application.rollbackRegistryId || "",
+ });
+ }
+ }, [application, form]);
+
const onSubmit = async (data: FormValues) => {
await updateApplication({
applicationId,
rollbackActive: data.rollbackActive,
+ rollbackRegistryId:
+ data.rollbackRegistryId === "none" || !data.rollbackRegistryId
+ ? null
+ : data.rollbackRegistryId,
})
.then(() => {
toast.success("Rollback settings updated");
@@ -112,6 +152,52 @@ export const ShowRollbackSettings = ({ applicationId, children }: Props) => {
)}
/>
+ {form.watch("rollbackActive") && (
+ (
+
+ Rollback Registry
+
+
+
+
+
+
+
+
+
+
+ None
+
+
+ {registries?.map((registry) => (
+
+ {registry.registryName}
+
+ ))}
+
+ Registries ({registries?.length || 0})
+
+
+
+
+
+ Select a registry where rollback images will be stored.
+
+
+
+ )}
+ />
+ )}
+
Save Settings
diff --git a/apps/dokploy/drizzle/0125_neat_the_phantom.sql b/apps/dokploy/drizzle/0125_neat_the_phantom.sql
new file mode 100644
index 000000000..3129bb381
--- /dev/null
+++ b/apps/dokploy/drizzle/0125_neat_the_phantom.sql
@@ -0,0 +1,2 @@
+ALTER TABLE "application" ADD COLUMN "rollbackRegistryId" text;--> statement-breakpoint
+ALTER TABLE "application" ADD CONSTRAINT "application_rollbackRegistryId_registry_registryId_fk" FOREIGN KEY ("rollbackRegistryId") REFERENCES "public"."registry"("registryId") ON DELETE set null ON UPDATE no action;
\ No newline at end of file
diff --git a/apps/dokploy/drizzle/meta/0125_snapshot.json b/apps/dokploy/drizzle/meta/0125_snapshot.json
new file mode 100644
index 000000000..e49caf326
--- /dev/null
+++ b/apps/dokploy/drizzle/meta/0125_snapshot.json
@@ -0,0 +1,6850 @@
+{
+ "id": "bf1b30e7-7763-4efc-acc4-77e86ad8e530",
+ "prevId": "a9f2a5f0-53ee-4522-8cc8-37577ce161b3",
+ "version": "7",
+ "dialect": "postgresql",
+ "tables": {
+ "public.account": {
+ "name": "account",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "account_id": {
+ "name": "account_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "provider_id": {
+ "name": "provider_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "id_token": {
+ "name": "id_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "access_token_expires_at": {
+ "name": "access_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token_expires_at": {
+ "name": "refresh_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scope": {
+ "name": "scope",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "is2FAEnabled": {
+ "name": "is2FAEnabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "resetPasswordToken": {
+ "name": "resetPasswordToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "resetPasswordExpiresAt": {
+ "name": "resetPasswordExpiresAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "confirmationToken": {
+ "name": "confirmationToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "confirmationExpiresAt": {
+ "name": "confirmationExpiresAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "account_user_id_user_id_fk": {
+ "name": "account_user_id_user_id_fk",
+ "tableFrom": "account",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.apikey": {
+ "name": "apikey",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "start": {
+ "name": "start",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "prefix": {
+ "name": "prefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "key": {
+ "name": "key",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "refill_interval": {
+ "name": "refill_interval",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refill_amount": {
+ "name": "refill_amount",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "last_refill_at": {
+ "name": "last_refill_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rate_limit_enabled": {
+ "name": "rate_limit_enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rate_limit_time_window": {
+ "name": "rate_limit_time_window",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rate_limit_max": {
+ "name": "rate_limit_max",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "request_count": {
+ "name": "request_count",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "remaining": {
+ "name": "remaining",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "last_request": {
+ "name": "last_request",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "permissions": {
+ "name": "permissions",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "apikey_user_id_user_id_fk": {
+ "name": "apikey_user_id_user_id_fk",
+ "tableFrom": "apikey",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.invitation": {
+ "name": "invitation",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "status": {
+ "name": "status",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "inviter_id": {
+ "name": "inviter_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "team_id": {
+ "name": "team_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "invitation_organization_id_organization_id_fk": {
+ "name": "invitation_organization_id_organization_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "invitation_inviter_id_user_id_fk": {
+ "name": "invitation_inviter_id_user_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "user",
+ "columnsFrom": [
+ "inviter_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.member": {
+ "name": "member",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "team_id": {
+ "name": "team_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "is_default": {
+ "name": "is_default",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canCreateProjects": {
+ "name": "canCreateProjects",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToSSHKeys": {
+ "name": "canAccessToSSHKeys",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canCreateServices": {
+ "name": "canCreateServices",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canDeleteProjects": {
+ "name": "canDeleteProjects",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canDeleteServices": {
+ "name": "canDeleteServices",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToDocker": {
+ "name": "canAccessToDocker",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToAPI": {
+ "name": "canAccessToAPI",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToGitProviders": {
+ "name": "canAccessToGitProviders",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canAccessToTraefikFiles": {
+ "name": "canAccessToTraefikFiles",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canDeleteEnvironments": {
+ "name": "canDeleteEnvironments",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "canCreateEnvironments": {
+ "name": "canCreateEnvironments",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "accesedProjects": {
+ "name": "accesedProjects",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "ARRAY[]::text[]"
+ },
+ "accessedEnvironments": {
+ "name": "accessedEnvironments",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "ARRAY[]::text[]"
+ },
+ "accesedServices": {
+ "name": "accesedServices",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "ARRAY[]::text[]"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "member_organization_id_organization_id_fk": {
+ "name": "member_organization_id_organization_id_fk",
+ "tableFrom": "member",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "member_user_id_user_id_fk": {
+ "name": "member_user_id_user_id_fk",
+ "tableFrom": "member",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.organization": {
+ "name": "organization",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "slug": {
+ "name": "slug",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "logo": {
+ "name": "logo",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "owner_id": {
+ "name": "owner_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "organization_owner_id_user_id_fk": {
+ "name": "organization_owner_id_user_id_fk",
+ "tableFrom": "organization",
+ "tableTo": "user",
+ "columnsFrom": [
+ "owner_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "organization_slug_unique": {
+ "name": "organization_slug_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "slug"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.two_factor": {
+ "name": "two_factor",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "secret": {
+ "name": "secret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "backup_codes": {
+ "name": "backup_codes",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "two_factor_user_id_user_id_fk": {
+ "name": "two_factor_user_id_user_id_fk",
+ "tableFrom": "two_factor",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.verification": {
+ "name": "verification",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "identifier": {
+ "name": "identifier",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "value": {
+ "name": "value",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ai": {
+ "name": "ai",
+ "schema": "",
+ "columns": {
+ "aiId": {
+ "name": "aiId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "apiUrl": {
+ "name": "apiUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "apiKey": {
+ "name": "apiKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "model": {
+ "name": "model",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "isEnabled": {
+ "name": "isEnabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "ai_organizationId_organization_id_fk": {
+ "name": "ai_organizationId_organization_id_fk",
+ "tableFrom": "ai",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.application": {
+ "name": "application",
+ "schema": "",
+ "columns": {
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewEnv": {
+ "name": "previewEnv",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "watchPaths": {
+ "name": "watchPaths",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewBuildArgs": {
+ "name": "previewBuildArgs",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewBuildSecrets": {
+ "name": "previewBuildSecrets",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewLabels": {
+ "name": "previewLabels",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewWildcard": {
+ "name": "previewWildcard",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewPort": {
+ "name": "previewPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false,
+ "default": 3000
+ },
+ "previewHttps": {
+ "name": "previewHttps",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "previewPath": {
+ "name": "previewPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "certificateType": {
+ "name": "certificateType",
+ "type": "certificateType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'none'"
+ },
+ "previewCustomCertResolver": {
+ "name": "previewCustomCertResolver",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewLimit": {
+ "name": "previewLimit",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false,
+ "default": 3
+ },
+ "isPreviewDeploymentsActive": {
+ "name": "isPreviewDeploymentsActive",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "previewRequireCollaboratorPermissions": {
+ "name": "previewRequireCollaboratorPermissions",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": true
+ },
+ "rollbackActive": {
+ "name": "rollbackActive",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "buildArgs": {
+ "name": "buildArgs",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildSecrets": {
+ "name": "buildSecrets",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "title": {
+ "name": "title",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "subtitle": {
+ "name": "subtitle",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "args": {
+ "name": "args",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refreshToken": {
+ "name": "refreshToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "sourceType": {
+ "name": "sourceType",
+ "type": "sourceType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'github'"
+ },
+ "cleanCache": {
+ "name": "cleanCache",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "repository": {
+ "name": "repository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "owner": {
+ "name": "owner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "branch": {
+ "name": "branch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildPath": {
+ "name": "buildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "triggerType": {
+ "name": "triggerType",
+ "type": "triggerType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'push'"
+ },
+ "autoDeploy": {
+ "name": "autoDeploy",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabProjectId": {
+ "name": "gitlabProjectId",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabRepository": {
+ "name": "gitlabRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabOwner": {
+ "name": "gitlabOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabBranch": {
+ "name": "gitlabBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabBuildPath": {
+ "name": "gitlabBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "gitlabPathNamespace": {
+ "name": "gitlabPathNamespace",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaRepository": {
+ "name": "giteaRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaOwner": {
+ "name": "giteaOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaBranch": {
+ "name": "giteaBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaBuildPath": {
+ "name": "giteaBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "bitbucketRepository": {
+ "name": "bitbucketRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketOwner": {
+ "name": "bitbucketOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketBranch": {
+ "name": "bitbucketBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketBuildPath": {
+ "name": "bitbucketBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "registryUrl": {
+ "name": "registryUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitUrl": {
+ "name": "customGitUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitBranch": {
+ "name": "customGitBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitBuildPath": {
+ "name": "customGitBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitSSHKeyId": {
+ "name": "customGitSSHKeyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enableSubmodules": {
+ "name": "enableSubmodules",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "dockerfile": {
+ "name": "dockerfile",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerContextPath": {
+ "name": "dockerContextPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerBuildStage": {
+ "name": "dockerBuildStage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dropBuildPath": {
+ "name": "dropBuildPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "buildType": {
+ "name": "buildType",
+ "type": "buildType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'nixpacks'"
+ },
+ "railpackVersion": {
+ "name": "railpackVersion",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'0.2.2'"
+ },
+ "herokuVersion": {
+ "name": "herokuVersion",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'24'"
+ },
+ "publishDirectory": {
+ "name": "publishDirectory",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "isStaticSpa": {
+ "name": "isStaticSpa",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "registryId": {
+ "name": "registryId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackRegistryId": {
+ "name": "rollbackRegistryId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "githubId": {
+ "name": "githubId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabId": {
+ "name": "gitlabId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaId": {
+ "name": "giteaId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketId": {
+ "name": "bitbucketId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildServerId": {
+ "name": "buildServerId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildRegistryId": {
+ "name": "buildRegistryId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "application_customGitSSHKeyId_ssh-key_sshKeyId_fk": {
+ "name": "application_customGitSSHKeyId_ssh-key_sshKeyId_fk",
+ "tableFrom": "application",
+ "tableTo": "ssh-key",
+ "columnsFrom": [
+ "customGitSSHKeyId"
+ ],
+ "columnsTo": [
+ "sshKeyId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_registryId_registry_registryId_fk": {
+ "name": "application_registryId_registry_registryId_fk",
+ "tableFrom": "application",
+ "tableTo": "registry",
+ "columnsFrom": [
+ "registryId"
+ ],
+ "columnsTo": [
+ "registryId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_rollbackRegistryId_registry_registryId_fk": {
+ "name": "application_rollbackRegistryId_registry_registryId_fk",
+ "tableFrom": "application",
+ "tableTo": "registry",
+ "columnsFrom": [
+ "rollbackRegistryId"
+ ],
+ "columnsTo": [
+ "registryId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_environmentId_environment_environmentId_fk": {
+ "name": "application_environmentId_environment_environmentId_fk",
+ "tableFrom": "application",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "application_githubId_github_githubId_fk": {
+ "name": "application_githubId_github_githubId_fk",
+ "tableFrom": "application",
+ "tableTo": "github",
+ "columnsFrom": [
+ "githubId"
+ ],
+ "columnsTo": [
+ "githubId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_gitlabId_gitlab_gitlabId_fk": {
+ "name": "application_gitlabId_gitlab_gitlabId_fk",
+ "tableFrom": "application",
+ "tableTo": "gitlab",
+ "columnsFrom": [
+ "gitlabId"
+ ],
+ "columnsTo": [
+ "gitlabId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_giteaId_gitea_giteaId_fk": {
+ "name": "application_giteaId_gitea_giteaId_fk",
+ "tableFrom": "application",
+ "tableTo": "gitea",
+ "columnsFrom": [
+ "giteaId"
+ ],
+ "columnsTo": [
+ "giteaId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_bitbucketId_bitbucket_bitbucketId_fk": {
+ "name": "application_bitbucketId_bitbucket_bitbucketId_fk",
+ "tableFrom": "application",
+ "tableTo": "bitbucket",
+ "columnsFrom": [
+ "bitbucketId"
+ ],
+ "columnsTo": [
+ "bitbucketId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_serverId_server_serverId_fk": {
+ "name": "application_serverId_server_serverId_fk",
+ "tableFrom": "application",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "application_buildServerId_server_serverId_fk": {
+ "name": "application_buildServerId_server_serverId_fk",
+ "tableFrom": "application",
+ "tableTo": "server",
+ "columnsFrom": [
+ "buildServerId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "application_buildRegistryId_registry_registryId_fk": {
+ "name": "application_buildRegistryId_registry_registryId_fk",
+ "tableFrom": "application",
+ "tableTo": "registry",
+ "columnsFrom": [
+ "buildRegistryId"
+ ],
+ "columnsTo": [
+ "registryId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "application_appName_unique": {
+ "name": "application_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.backup": {
+ "name": "backup",
+ "schema": "",
+ "columns": {
+ "backupId": {
+ "name": "backupId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "schedule": {
+ "name": "schedule",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "database": {
+ "name": "database",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "prefix": {
+ "name": "prefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "destinationId": {
+ "name": "destinationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "keepLatestCount": {
+ "name": "keepLatestCount",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "backupType": {
+ "name": "backupType",
+ "type": "backupType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'database'"
+ },
+ "databaseType": {
+ "name": "databaseType",
+ "type": "databaseType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "userId": {
+ "name": "userId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "backup_destinationId_destination_destinationId_fk": {
+ "name": "backup_destinationId_destination_destinationId_fk",
+ "tableFrom": "backup",
+ "tableTo": "destination",
+ "columnsFrom": [
+ "destinationId"
+ ],
+ "columnsTo": [
+ "destinationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_composeId_compose_composeId_fk": {
+ "name": "backup_composeId_compose_composeId_fk",
+ "tableFrom": "backup",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_postgresId_postgres_postgresId_fk": {
+ "name": "backup_postgresId_postgres_postgresId_fk",
+ "tableFrom": "backup",
+ "tableTo": "postgres",
+ "columnsFrom": [
+ "postgresId"
+ ],
+ "columnsTo": [
+ "postgresId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_mariadbId_mariadb_mariadbId_fk": {
+ "name": "backup_mariadbId_mariadb_mariadbId_fk",
+ "tableFrom": "backup",
+ "tableTo": "mariadb",
+ "columnsFrom": [
+ "mariadbId"
+ ],
+ "columnsTo": [
+ "mariadbId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_mysqlId_mysql_mysqlId_fk": {
+ "name": "backup_mysqlId_mysql_mysqlId_fk",
+ "tableFrom": "backup",
+ "tableTo": "mysql",
+ "columnsFrom": [
+ "mysqlId"
+ ],
+ "columnsTo": [
+ "mysqlId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_mongoId_mongo_mongoId_fk": {
+ "name": "backup_mongoId_mongo_mongoId_fk",
+ "tableFrom": "backup",
+ "tableTo": "mongo",
+ "columnsFrom": [
+ "mongoId"
+ ],
+ "columnsTo": [
+ "mongoId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "backup_userId_user_id_fk": {
+ "name": "backup_userId_user_id_fk",
+ "tableFrom": "backup",
+ "tableTo": "user",
+ "columnsFrom": [
+ "userId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "backup_appName_unique": {
+ "name": "backup_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.bitbucket": {
+ "name": "bitbucket",
+ "schema": "",
+ "columns": {
+ "bitbucketId": {
+ "name": "bitbucketId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "bitbucketUsername": {
+ "name": "bitbucketUsername",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketEmail": {
+ "name": "bitbucketEmail",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "appPassword": {
+ "name": "appPassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "apiToken": {
+ "name": "apiToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketWorkspaceName": {
+ "name": "bitbucketWorkspaceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "bitbucket_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "bitbucket_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "bitbucket",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.certificate": {
+ "name": "certificate",
+ "schema": "",
+ "columns": {
+ "certificateId": {
+ "name": "certificateId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "certificateData": {
+ "name": "certificateData",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "privateKey": {
+ "name": "privateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "certificatePath": {
+ "name": "certificatePath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "autoRenew": {
+ "name": "autoRenew",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "certificate_organizationId_organization_id_fk": {
+ "name": "certificate_organizationId_organization_id_fk",
+ "tableFrom": "certificate",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "certificate_serverId_server_serverId_fk": {
+ "name": "certificate_serverId_server_serverId_fk",
+ "tableFrom": "certificate",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "certificate_certificatePath_unique": {
+ "name": "certificate_certificatePath_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "certificatePath"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.compose": {
+ "name": "compose",
+ "schema": "",
+ "columns": {
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeFile": {
+ "name": "composeFile",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "refreshToken": {
+ "name": "refreshToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "sourceType": {
+ "name": "sourceType",
+ "type": "sourceTypeCompose",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'github'"
+ },
+ "composeType": {
+ "name": "composeType",
+ "type": "composeType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'docker-compose'"
+ },
+ "repository": {
+ "name": "repository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "owner": {
+ "name": "owner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "branch": {
+ "name": "branch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "autoDeploy": {
+ "name": "autoDeploy",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabProjectId": {
+ "name": "gitlabProjectId",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabRepository": {
+ "name": "gitlabRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabOwner": {
+ "name": "gitlabOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabBranch": {
+ "name": "gitlabBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabPathNamespace": {
+ "name": "gitlabPathNamespace",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketRepository": {
+ "name": "bitbucketRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketOwner": {
+ "name": "bitbucketOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketBranch": {
+ "name": "bitbucketBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaRepository": {
+ "name": "giteaRepository",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaOwner": {
+ "name": "giteaOwner",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaBranch": {
+ "name": "giteaBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitUrl": {
+ "name": "customGitUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitBranch": {
+ "name": "customGitBranch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customGitSSHKeyId": {
+ "name": "customGitSSHKeyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "enableSubmodules": {
+ "name": "enableSubmodules",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "composePath": {
+ "name": "composePath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'./docker-compose.yml'"
+ },
+ "suffix": {
+ "name": "suffix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "randomize": {
+ "name": "randomize",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "isolatedDeployment": {
+ "name": "isolatedDeployment",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "isolatedDeploymentsVolume": {
+ "name": "isolatedDeploymentsVolume",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "triggerType": {
+ "name": "triggerType",
+ "type": "triggerType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'push'"
+ },
+ "composeStatus": {
+ "name": "composeStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "watchPaths": {
+ "name": "watchPaths",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubId": {
+ "name": "githubId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitlabId": {
+ "name": "gitlabId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "bitbucketId": {
+ "name": "bitbucketId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "giteaId": {
+ "name": "giteaId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk": {
+ "name": "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk",
+ "tableFrom": "compose",
+ "tableTo": "ssh-key",
+ "columnsFrom": [
+ "customGitSSHKeyId"
+ ],
+ "columnsTo": [
+ "sshKeyId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_environmentId_environment_environmentId_fk": {
+ "name": "compose_environmentId_environment_environmentId_fk",
+ "tableFrom": "compose",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "compose_githubId_github_githubId_fk": {
+ "name": "compose_githubId_github_githubId_fk",
+ "tableFrom": "compose",
+ "tableTo": "github",
+ "columnsFrom": [
+ "githubId"
+ ],
+ "columnsTo": [
+ "githubId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_gitlabId_gitlab_gitlabId_fk": {
+ "name": "compose_gitlabId_gitlab_gitlabId_fk",
+ "tableFrom": "compose",
+ "tableTo": "gitlab",
+ "columnsFrom": [
+ "gitlabId"
+ ],
+ "columnsTo": [
+ "gitlabId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_bitbucketId_bitbucket_bitbucketId_fk": {
+ "name": "compose_bitbucketId_bitbucket_bitbucketId_fk",
+ "tableFrom": "compose",
+ "tableTo": "bitbucket",
+ "columnsFrom": [
+ "bitbucketId"
+ ],
+ "columnsTo": [
+ "bitbucketId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_giteaId_gitea_giteaId_fk": {
+ "name": "compose_giteaId_gitea_giteaId_fk",
+ "tableFrom": "compose",
+ "tableTo": "gitea",
+ "columnsFrom": [
+ "giteaId"
+ ],
+ "columnsTo": [
+ "giteaId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ },
+ "compose_serverId_server_serverId_fk": {
+ "name": "compose_serverId_server_serverId_fk",
+ "tableFrom": "compose",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.deployment": {
+ "name": "deployment",
+ "schema": "",
+ "columns": {
+ "deploymentId": {
+ "name": "deploymentId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "title": {
+ "name": "title",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "status": {
+ "name": "status",
+ "type": "deploymentStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'running'"
+ },
+ "logPath": {
+ "name": "logPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pid": {
+ "name": "pid",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "isPreviewDeployment": {
+ "name": "isPreviewDeployment",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ },
+ "previewDeploymentId": {
+ "name": "previewDeploymentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "startedAt": {
+ "name": "startedAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "finishedAt": {
+ "name": "finishedAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "errorMessage": {
+ "name": "errorMessage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scheduleId": {
+ "name": "scheduleId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "backupId": {
+ "name": "backupId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackId": {
+ "name": "rollbackId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "volumeBackupId": {
+ "name": "volumeBackupId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "buildServerId": {
+ "name": "buildServerId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "deployment_applicationId_application_applicationId_fk": {
+ "name": "deployment_applicationId_application_applicationId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_composeId_compose_composeId_fk": {
+ "name": "deployment_composeId_compose_composeId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_serverId_server_serverId_fk": {
+ "name": "deployment_serverId_server_serverId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_previewDeploymentId_preview_deployments_previewDeploymentId_fk": {
+ "name": "deployment_previewDeploymentId_preview_deployments_previewDeploymentId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "preview_deployments",
+ "columnsFrom": [
+ "previewDeploymentId"
+ ],
+ "columnsTo": [
+ "previewDeploymentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_scheduleId_schedule_scheduleId_fk": {
+ "name": "deployment_scheduleId_schedule_scheduleId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "schedule",
+ "columnsFrom": [
+ "scheduleId"
+ ],
+ "columnsTo": [
+ "scheduleId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_backupId_backup_backupId_fk": {
+ "name": "deployment_backupId_backup_backupId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "backup",
+ "columnsFrom": [
+ "backupId"
+ ],
+ "columnsTo": [
+ "backupId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_rollbackId_rollback_rollbackId_fk": {
+ "name": "deployment_rollbackId_rollback_rollbackId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "rollback",
+ "columnsFrom": [
+ "rollbackId"
+ ],
+ "columnsTo": [
+ "rollbackId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_volumeBackupId_volume_backup_volumeBackupId_fk": {
+ "name": "deployment_volumeBackupId_volume_backup_volumeBackupId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "volume_backup",
+ "columnsFrom": [
+ "volumeBackupId"
+ ],
+ "columnsTo": [
+ "volumeBackupId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "deployment_buildServerId_server_serverId_fk": {
+ "name": "deployment_buildServerId_server_serverId_fk",
+ "tableFrom": "deployment",
+ "tableTo": "server",
+ "columnsFrom": [
+ "buildServerId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.destination": {
+ "name": "destination",
+ "schema": "",
+ "columns": {
+ "destinationId": {
+ "name": "destinationId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "provider": {
+ "name": "provider",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "accessKey": {
+ "name": "accessKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "secretAccessKey": {
+ "name": "secretAccessKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "bucket": {
+ "name": "bucket",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "region": {
+ "name": "region",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "endpoint": {
+ "name": "endpoint",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "destination_organizationId_organization_id_fk": {
+ "name": "destination_organizationId_organization_id_fk",
+ "tableFrom": "destination",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.domain": {
+ "name": "domain",
+ "schema": "",
+ "columns": {
+ "domainId": {
+ "name": "domainId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "host": {
+ "name": "host",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "https": {
+ "name": "https",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "port": {
+ "name": "port",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false,
+ "default": 3000
+ },
+ "path": {
+ "name": "path",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "domainType": {
+ "name": "domainType",
+ "type": "domainType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'application'"
+ },
+ "uniqueConfigKey": {
+ "name": "uniqueConfigKey",
+ "type": "serial",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "customCertResolver": {
+ "name": "customCertResolver",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "previewDeploymentId": {
+ "name": "previewDeploymentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "certificateType": {
+ "name": "certificateType",
+ "type": "certificateType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'none'"
+ },
+ "internalPath": {
+ "name": "internalPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'/'"
+ },
+ "stripPath": {
+ "name": "stripPath",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "domain_composeId_compose_composeId_fk": {
+ "name": "domain_composeId_compose_composeId_fk",
+ "tableFrom": "domain",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "domain_applicationId_application_applicationId_fk": {
+ "name": "domain_applicationId_application_applicationId_fk",
+ "tableFrom": "domain",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "domain_previewDeploymentId_preview_deployments_previewDeploymentId_fk": {
+ "name": "domain_previewDeploymentId_preview_deployments_previewDeploymentId_fk",
+ "tableFrom": "domain",
+ "tableTo": "preview_deployments",
+ "columnsFrom": [
+ "previewDeploymentId"
+ ],
+ "columnsTo": [
+ "previewDeploymentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.environment": {
+ "name": "environment",
+ "schema": "",
+ "columns": {
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "projectId": {
+ "name": "projectId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "environment_projectId_project_projectId_fk": {
+ "name": "environment_projectId_project_projectId_fk",
+ "tableFrom": "environment",
+ "tableTo": "project",
+ "columnsFrom": [
+ "projectId"
+ ],
+ "columnsTo": [
+ "projectId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.git_provider": {
+ "name": "git_provider",
+ "schema": "",
+ "columns": {
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "providerType": {
+ "name": "providerType",
+ "type": "gitProviderType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'github'"
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "userId": {
+ "name": "userId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "git_provider_organizationId_organization_id_fk": {
+ "name": "git_provider_organizationId_organization_id_fk",
+ "tableFrom": "git_provider",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "git_provider_userId_user_id_fk": {
+ "name": "git_provider_userId_user_id_fk",
+ "tableFrom": "git_provider",
+ "tableTo": "user",
+ "columnsFrom": [
+ "userId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.gitea": {
+ "name": "gitea",
+ "schema": "",
+ "columns": {
+ "giteaId": {
+ "name": "giteaId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "giteaUrl": {
+ "name": "giteaUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'https://gitea.com'"
+ },
+ "redirect_uri": {
+ "name": "redirect_uri",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "client_id": {
+ "name": "client_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "client_secret": {
+ "name": "client_secret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scopes": {
+ "name": "scopes",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'repo,repo:status,read:user,read:org'"
+ },
+ "last_authenticated_at": {
+ "name": "last_authenticated_at",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "gitea_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "gitea_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "gitea",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.github": {
+ "name": "github",
+ "schema": "",
+ "columns": {
+ "githubId": {
+ "name": "githubId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "githubAppName": {
+ "name": "githubAppName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubAppId": {
+ "name": "githubAppId",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubClientId": {
+ "name": "githubClientId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubClientSecret": {
+ "name": "githubClientSecret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubInstallationId": {
+ "name": "githubInstallationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubPrivateKey": {
+ "name": "githubPrivateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "githubWebhookSecret": {
+ "name": "githubWebhookSecret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "github_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "github_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "github",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.gitlab": {
+ "name": "gitlab",
+ "schema": "",
+ "columns": {
+ "gitlabId": {
+ "name": "gitlabId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "gitlabUrl": {
+ "name": "gitlabUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'https://gitlab.com'"
+ },
+ "application_id": {
+ "name": "application_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "redirect_uri": {
+ "name": "redirect_uri",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "secret": {
+ "name": "secret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "group_name": {
+ "name": "group_name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gitProviderId": {
+ "name": "gitProviderId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "gitlab_gitProviderId_git_provider_gitProviderId_fk": {
+ "name": "gitlab_gitProviderId_git_provider_gitProviderId_fk",
+ "tableFrom": "gitlab",
+ "tableTo": "git_provider",
+ "columnsFrom": [
+ "gitProviderId"
+ ],
+ "columnsTo": [
+ "gitProviderId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mariadb": {
+ "name": "mariadb",
+ "schema": "",
+ "columns": {
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "databaseName": {
+ "name": "databaseName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "rootPassword": {
+ "name": "rootPassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "args": {
+ "name": "args",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mariadb_environmentId_environment_environmentId_fk": {
+ "name": "mariadb_environmentId_environment_environmentId_fk",
+ "tableFrom": "mariadb",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mariadb_serverId_server_serverId_fk": {
+ "name": "mariadb_serverId_server_serverId_fk",
+ "tableFrom": "mariadb",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "mariadb_appName_unique": {
+ "name": "mariadb_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mongo": {
+ "name": "mongo",
+ "schema": "",
+ "columns": {
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "args": {
+ "name": "args",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicaSets": {
+ "name": "replicaSets",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false,
+ "default": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mongo_environmentId_environment_environmentId_fk": {
+ "name": "mongo_environmentId_environment_environmentId_fk",
+ "tableFrom": "mongo",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mongo_serverId_server_serverId_fk": {
+ "name": "mongo_serverId_server_serverId_fk",
+ "tableFrom": "mongo",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "mongo_appName_unique": {
+ "name": "mongo_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mount": {
+ "name": "mount",
+ "schema": "",
+ "columns": {
+ "mountId": {
+ "name": "mountId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "type": {
+ "name": "type",
+ "type": "mountType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "hostPath": {
+ "name": "hostPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "volumeName": {
+ "name": "volumeName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "filePath": {
+ "name": "filePath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "content": {
+ "name": "content",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serviceType": {
+ "name": "serviceType",
+ "type": "serviceType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'application'"
+ },
+ "mountPath": {
+ "name": "mountPath",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "redisId": {
+ "name": "redisId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mount_applicationId_application_applicationId_fk": {
+ "name": "mount_applicationId_application_applicationId_fk",
+ "tableFrom": "mount",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_postgresId_postgres_postgresId_fk": {
+ "name": "mount_postgresId_postgres_postgresId_fk",
+ "tableFrom": "mount",
+ "tableTo": "postgres",
+ "columnsFrom": [
+ "postgresId"
+ ],
+ "columnsTo": [
+ "postgresId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_mariadbId_mariadb_mariadbId_fk": {
+ "name": "mount_mariadbId_mariadb_mariadbId_fk",
+ "tableFrom": "mount",
+ "tableTo": "mariadb",
+ "columnsFrom": [
+ "mariadbId"
+ ],
+ "columnsTo": [
+ "mariadbId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_mongoId_mongo_mongoId_fk": {
+ "name": "mount_mongoId_mongo_mongoId_fk",
+ "tableFrom": "mount",
+ "tableTo": "mongo",
+ "columnsFrom": [
+ "mongoId"
+ ],
+ "columnsTo": [
+ "mongoId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_mysqlId_mysql_mysqlId_fk": {
+ "name": "mount_mysqlId_mysql_mysqlId_fk",
+ "tableFrom": "mount",
+ "tableTo": "mysql",
+ "columnsFrom": [
+ "mysqlId"
+ ],
+ "columnsTo": [
+ "mysqlId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_redisId_redis_redisId_fk": {
+ "name": "mount_redisId_redis_redisId_fk",
+ "tableFrom": "mount",
+ "tableTo": "redis",
+ "columnsFrom": [
+ "redisId"
+ ],
+ "columnsTo": [
+ "redisId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mount_composeId_compose_composeId_fk": {
+ "name": "mount_composeId_compose_composeId_fk",
+ "tableFrom": "mount",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.mysql": {
+ "name": "mysql",
+ "schema": "",
+ "columns": {
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "databaseName": {
+ "name": "databaseName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "rootPassword": {
+ "name": "rootPassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "args": {
+ "name": "args",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "mysql_environmentId_environment_environmentId_fk": {
+ "name": "mysql_environmentId_environment_environmentId_fk",
+ "tableFrom": "mysql",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "mysql_serverId_server_serverId_fk": {
+ "name": "mysql_serverId_server_serverId_fk",
+ "tableFrom": "mysql",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "mysql_appName_unique": {
+ "name": "mysql_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.discord": {
+ "name": "discord",
+ "schema": "",
+ "columns": {
+ "discordId": {
+ "name": "discordId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "webhookUrl": {
+ "name": "webhookUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "decoration": {
+ "name": "decoration",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.email": {
+ "name": "email",
+ "schema": "",
+ "columns": {
+ "emailId": {
+ "name": "emailId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "smtpServer": {
+ "name": "smtpServer",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "smtpPort": {
+ "name": "smtpPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "fromAddress": {
+ "name": "fromAddress",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "toAddress": {
+ "name": "toAddress",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.gotify": {
+ "name": "gotify",
+ "schema": "",
+ "columns": {
+ "gotifyId": {
+ "name": "gotifyId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "serverUrl": {
+ "name": "serverUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appToken": {
+ "name": "appToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "priority": {
+ "name": "priority",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 5
+ },
+ "decoration": {
+ "name": "decoration",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.lark": {
+ "name": "lark",
+ "schema": "",
+ "columns": {
+ "larkId": {
+ "name": "larkId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "webhookUrl": {
+ "name": "webhookUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.notification": {
+ "name": "notification",
+ "schema": "",
+ "columns": {
+ "notificationId": {
+ "name": "notificationId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appDeploy": {
+ "name": "appDeploy",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "appBuildError": {
+ "name": "appBuildError",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "databaseBackup": {
+ "name": "databaseBackup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "dokployRestart": {
+ "name": "dokployRestart",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "dockerCleanup": {
+ "name": "dockerCleanup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "serverThreshold": {
+ "name": "serverThreshold",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "notificationType": {
+ "name": "notificationType",
+ "type": "notificationType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "slackId": {
+ "name": "slackId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "telegramId": {
+ "name": "telegramId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "discordId": {
+ "name": "discordId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "emailId": {
+ "name": "emailId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gotifyId": {
+ "name": "gotifyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ntfyId": {
+ "name": "ntfyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "larkId": {
+ "name": "larkId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "notification_slackId_slack_slackId_fk": {
+ "name": "notification_slackId_slack_slackId_fk",
+ "tableFrom": "notification",
+ "tableTo": "slack",
+ "columnsFrom": [
+ "slackId"
+ ],
+ "columnsTo": [
+ "slackId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_telegramId_telegram_telegramId_fk": {
+ "name": "notification_telegramId_telegram_telegramId_fk",
+ "tableFrom": "notification",
+ "tableTo": "telegram",
+ "columnsFrom": [
+ "telegramId"
+ ],
+ "columnsTo": [
+ "telegramId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_discordId_discord_discordId_fk": {
+ "name": "notification_discordId_discord_discordId_fk",
+ "tableFrom": "notification",
+ "tableTo": "discord",
+ "columnsFrom": [
+ "discordId"
+ ],
+ "columnsTo": [
+ "discordId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_emailId_email_emailId_fk": {
+ "name": "notification_emailId_email_emailId_fk",
+ "tableFrom": "notification",
+ "tableTo": "email",
+ "columnsFrom": [
+ "emailId"
+ ],
+ "columnsTo": [
+ "emailId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_gotifyId_gotify_gotifyId_fk": {
+ "name": "notification_gotifyId_gotify_gotifyId_fk",
+ "tableFrom": "notification",
+ "tableTo": "gotify",
+ "columnsFrom": [
+ "gotifyId"
+ ],
+ "columnsTo": [
+ "gotifyId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_ntfyId_ntfy_ntfyId_fk": {
+ "name": "notification_ntfyId_ntfy_ntfyId_fk",
+ "tableFrom": "notification",
+ "tableTo": "ntfy",
+ "columnsFrom": [
+ "ntfyId"
+ ],
+ "columnsTo": [
+ "ntfyId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_larkId_lark_larkId_fk": {
+ "name": "notification_larkId_lark_larkId_fk",
+ "tableFrom": "notification",
+ "tableTo": "lark",
+ "columnsFrom": [
+ "larkId"
+ ],
+ "columnsTo": [
+ "larkId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "notification_organizationId_organization_id_fk": {
+ "name": "notification_organizationId_organization_id_fk",
+ "tableFrom": "notification",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ntfy": {
+ "name": "ntfy",
+ "schema": "",
+ "columns": {
+ "ntfyId": {
+ "name": "ntfyId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "serverUrl": {
+ "name": "serverUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "topic": {
+ "name": "topic",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "accessToken": {
+ "name": "accessToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "priority": {
+ "name": "priority",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 3
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.slack": {
+ "name": "slack",
+ "schema": "",
+ "columns": {
+ "slackId": {
+ "name": "slackId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "webhookUrl": {
+ "name": "webhookUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "channel": {
+ "name": "channel",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.telegram": {
+ "name": "telegram",
+ "schema": "",
+ "columns": {
+ "telegramId": {
+ "name": "telegramId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "botToken": {
+ "name": "botToken",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "chatId": {
+ "name": "chatId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "messageThreadId": {
+ "name": "messageThreadId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.port": {
+ "name": "port",
+ "schema": "",
+ "columns": {
+ "portId": {
+ "name": "portId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "publishedPort": {
+ "name": "publishedPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "publishMode": {
+ "name": "publishMode",
+ "type": "publishModeType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'host'"
+ },
+ "targetPort": {
+ "name": "targetPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "protocol": {
+ "name": "protocol",
+ "type": "protocolType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "port_applicationId_application_applicationId_fk": {
+ "name": "port_applicationId_application_applicationId_fk",
+ "tableFrom": "port",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.postgres": {
+ "name": "postgres",
+ "schema": "",
+ "columns": {
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseName": {
+ "name": "databaseName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databaseUser": {
+ "name": "databaseUser",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "databasePassword": {
+ "name": "databasePassword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "args": {
+ "name": "args",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "postgres_environmentId_environment_environmentId_fk": {
+ "name": "postgres_environmentId_environment_environmentId_fk",
+ "tableFrom": "postgres",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "postgres_serverId_server_serverId_fk": {
+ "name": "postgres_serverId_server_serverId_fk",
+ "tableFrom": "postgres",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "postgres_appName_unique": {
+ "name": "postgres_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.preview_deployments": {
+ "name": "preview_deployments",
+ "schema": "",
+ "columns": {
+ "previewDeploymentId": {
+ "name": "previewDeploymentId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "branch": {
+ "name": "branch",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestId": {
+ "name": "pullRequestId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestNumber": {
+ "name": "pullRequestNumber",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestURL": {
+ "name": "pullRequestURL",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestTitle": {
+ "name": "pullRequestTitle",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "pullRequestCommentId": {
+ "name": "pullRequestCommentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "previewStatus": {
+ "name": "previewStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "domainId": {
+ "name": "domainId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expiresAt": {
+ "name": "expiresAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "preview_deployments_applicationId_application_applicationId_fk": {
+ "name": "preview_deployments_applicationId_application_applicationId_fk",
+ "tableFrom": "preview_deployments",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "preview_deployments_domainId_domain_domainId_fk": {
+ "name": "preview_deployments_domainId_domain_domainId_fk",
+ "tableFrom": "preview_deployments",
+ "tableTo": "domain",
+ "columnsFrom": [
+ "domainId"
+ ],
+ "columnsTo": [
+ "domainId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "preview_deployments_appName_unique": {
+ "name": "preview_deployments_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.project": {
+ "name": "project",
+ "schema": "",
+ "columns": {
+ "projectId": {
+ "name": "projectId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "project_organizationId_organization_id_fk": {
+ "name": "project_organizationId_organization_id_fk",
+ "tableFrom": "project",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.redirect": {
+ "name": "redirect",
+ "schema": "",
+ "columns": {
+ "redirectId": {
+ "name": "redirectId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "regex": {
+ "name": "regex",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "replacement": {
+ "name": "replacement",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "permanent": {
+ "name": "permanent",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "uniqueConfigKey": {
+ "name": "uniqueConfigKey",
+ "type": "serial",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "redirect_applicationId_application_applicationId_fk": {
+ "name": "redirect_applicationId_application_applicationId_fk",
+ "tableFrom": "redirect",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.redis": {
+ "name": "redis",
+ "schema": "",
+ "columns": {
+ "redisId": {
+ "name": "redisId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "dockerImage": {
+ "name": "dockerImage",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "args": {
+ "name": "args",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "env": {
+ "name": "env",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryReservation": {
+ "name": "memoryReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "memoryLimit": {
+ "name": "memoryLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuReservation": {
+ "name": "cpuReservation",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "cpuLimit": {
+ "name": "cpuLimit",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "externalPort": {
+ "name": "externalPort",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationStatus": {
+ "name": "applicationStatus",
+ "type": "applicationStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'idle'"
+ },
+ "healthCheckSwarm": {
+ "name": "healthCheckSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "restartPolicySwarm": {
+ "name": "restartPolicySwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "placementSwarm": {
+ "name": "placementSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updateConfigSwarm": {
+ "name": "updateConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "rollbackConfigSwarm": {
+ "name": "rollbackConfigSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modeSwarm": {
+ "name": "modeSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "labelsSwarm": {
+ "name": "labelsSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "networkSwarm": {
+ "name": "networkSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stopGracePeriodSwarm": {
+ "name": "stopGracePeriodSwarm",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "endpointSpecSwarm": {
+ "name": "endpointSpecSwarm",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "replicas": {
+ "name": "replicas",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 1
+ },
+ "environmentId": {
+ "name": "environmentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "redis_environmentId_environment_environmentId_fk": {
+ "name": "redis_environmentId_environment_environmentId_fk",
+ "tableFrom": "redis",
+ "tableTo": "environment",
+ "columnsFrom": [
+ "environmentId"
+ ],
+ "columnsTo": [
+ "environmentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "redis_serverId_server_serverId_fk": {
+ "name": "redis_serverId_server_serverId_fk",
+ "tableFrom": "redis",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "redis_appName_unique": {
+ "name": "redis_appName_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "appName"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.registry": {
+ "name": "registry",
+ "schema": "",
+ "columns": {
+ "registryId": {
+ "name": "registryId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "registryName": {
+ "name": "registryName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "imagePrefix": {
+ "name": "imagePrefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "registryUrl": {
+ "name": "registryUrl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "selfHosted": {
+ "name": "selfHosted",
+ "type": "RegistryType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'cloud'"
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "registry_organizationId_organization_id_fk": {
+ "name": "registry_organizationId_organization_id_fk",
+ "tableFrom": "registry",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.rollback": {
+ "name": "rollback",
+ "schema": "",
+ "columns": {
+ "rollbackId": {
+ "name": "rollbackId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "deploymentId": {
+ "name": "deploymentId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "version": {
+ "name": "version",
+ "type": "serial",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "image": {
+ "name": "image",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "fullContext": {
+ "name": "fullContext",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "rollback_deploymentId_deployment_deploymentId_fk": {
+ "name": "rollback_deploymentId_deployment_deploymentId_fk",
+ "tableFrom": "rollback",
+ "tableTo": "deployment",
+ "columnsFrom": [
+ "deploymentId"
+ ],
+ "columnsTo": [
+ "deploymentId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.schedule": {
+ "name": "schedule",
+ "schema": "",
+ "columns": {
+ "scheduleId": {
+ "name": "scheduleId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "cronExpression": {
+ "name": "cronExpression",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "shellType": {
+ "name": "shellType",
+ "type": "shellType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'bash'"
+ },
+ "scheduleType": {
+ "name": "scheduleType",
+ "type": "scheduleType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'application'"
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "script": {
+ "name": "script",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "userId": {
+ "name": "userId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "schedule_applicationId_application_applicationId_fk": {
+ "name": "schedule_applicationId_application_applicationId_fk",
+ "tableFrom": "schedule",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "schedule_composeId_compose_composeId_fk": {
+ "name": "schedule_composeId_compose_composeId_fk",
+ "tableFrom": "schedule",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "schedule_serverId_server_serverId_fk": {
+ "name": "schedule_serverId_server_serverId_fk",
+ "tableFrom": "schedule",
+ "tableTo": "server",
+ "columnsFrom": [
+ "serverId"
+ ],
+ "columnsTo": [
+ "serverId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "schedule_userId_user_id_fk": {
+ "name": "schedule_userId_user_id_fk",
+ "tableFrom": "schedule",
+ "tableTo": "user",
+ "columnsFrom": [
+ "userId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.security": {
+ "name": "security",
+ "schema": "",
+ "columns": {
+ "securityId": {
+ "name": "securityId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "security_applicationId_application_applicationId_fk": {
+ "name": "security_applicationId_application_applicationId_fk",
+ "tableFrom": "security",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "security_username_applicationId_unique": {
+ "name": "security_username_applicationId_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "username",
+ "applicationId"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.server": {
+ "name": "server",
+ "schema": "",
+ "columns": {
+ "serverId": {
+ "name": "serverId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ipAddress": {
+ "name": "ipAddress",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "port": {
+ "name": "port",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'root'"
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "enableDockerCleanup": {
+ "name": "enableDockerCleanup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverStatus": {
+ "name": "serverStatus",
+ "type": "serverStatus",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'active'"
+ },
+ "serverType": {
+ "name": "serverType",
+ "type": "serverType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'deploy'"
+ },
+ "command": {
+ "name": "command",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "sshKeyId": {
+ "name": "sshKeyId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "metricsConfig": {
+ "name": "metricsConfig",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'{\"server\":{\"type\":\"Remote\",\"refreshRate\":60,\"port\":4500,\"token\":\"\",\"urlCallback\":\"\",\"cronJob\":\"\",\"retentionDays\":2,\"thresholds\":{\"cpu\":0,\"memory\":0}},\"containers\":{\"refreshRate\":60,\"services\":{\"include\":[],\"exclude\":[]}}}'::jsonb"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "server_organizationId_organization_id_fk": {
+ "name": "server_organizationId_organization_id_fk",
+ "tableFrom": "server",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "server_sshKeyId_ssh-key_sshKeyId_fk": {
+ "name": "server_sshKeyId_ssh-key_sshKeyId_fk",
+ "tableFrom": "server",
+ "tableTo": "ssh-key",
+ "columnsFrom": [
+ "sshKeyId"
+ ],
+ "columnsTo": [
+ "sshKeyId"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.session_temp": {
+ "name": "session_temp",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "token": {
+ "name": "token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "ip_address": {
+ "name": "ip_address",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_agent": {
+ "name": "user_agent",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "impersonated_by": {
+ "name": "impersonated_by",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "active_organization_id": {
+ "name": "active_organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "session_temp_user_id_user_id_fk": {
+ "name": "session_temp_user_id_user_id_fk",
+ "tableFrom": "session_temp",
+ "tableTo": "user",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "session_temp_token_unique": {
+ "name": "session_temp_token_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "token"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ssh-key": {
+ "name": "ssh-key",
+ "schema": "",
+ "columns": {
+ "sshKeyId": {
+ "name": "sshKeyId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "privateKey": {
+ "name": "privateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "publicKey": {
+ "name": "publicKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "lastUsedAt": {
+ "name": "lastUsedAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "organizationId": {
+ "name": "organizationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "ssh-key_organizationId_organization_id_fk": {
+ "name": "ssh-key_organizationId_organization_id_fk",
+ "tableFrom": "ssh-key",
+ "tableTo": "organization",
+ "columnsFrom": [
+ "organizationId"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.user": {
+ "name": "user",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "isRegistered": {
+ "name": "isRegistered",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "expirationDate": {
+ "name": "expirationDate",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "now()"
+ },
+ "two_factor_enabled": {
+ "name": "two_factor_enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email_verified": {
+ "name": "email_verified",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "image": {
+ "name": "image",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "banned": {
+ "name": "banned",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ban_reason": {
+ "name": "ban_reason",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ban_expires": {
+ "name": "ban_expires",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serverIp": {
+ "name": "serverIp",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "certificateType": {
+ "name": "certificateType",
+ "type": "certificateType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'none'"
+ },
+ "https": {
+ "name": "https",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "host": {
+ "name": "host",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "letsEncryptEmail": {
+ "name": "letsEncryptEmail",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "sshPrivateKey": {
+ "name": "sshPrivateKey",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enableDockerCleanup": {
+ "name": "enableDockerCleanup",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "logCleanupCron": {
+ "name": "logCleanupCron",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'0 0 * * *'"
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'user'"
+ },
+ "enablePaidFeatures": {
+ "name": "enablePaidFeatures",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "allowImpersonation": {
+ "name": "allowImpersonation",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "metricsConfig": {
+ "name": "metricsConfig",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'{\"server\":{\"type\":\"Dokploy\",\"refreshRate\":60,\"port\":4500,\"token\":\"\",\"retentionDays\":2,\"cronJob\":\"\",\"urlCallback\":\"\",\"thresholds\":{\"cpu\":0,\"memory\":0}},\"containers\":{\"refreshRate\":60,\"services\":{\"include\":[],\"exclude\":[]}}}'::jsonb"
+ },
+ "cleanupCacheApplications": {
+ "name": "cleanupCacheApplications",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "cleanupCacheOnPreviews": {
+ "name": "cleanupCacheOnPreviews",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "cleanupCacheOnCompose": {
+ "name": "cleanupCacheOnCompose",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "stripeCustomerId": {
+ "name": "stripeCustomerId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stripeSubscriptionId": {
+ "name": "stripeSubscriptionId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "serversQuantity": {
+ "name": "serversQuantity",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 0
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "user_email_unique": {
+ "name": "user_email_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "email"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.volume_backup": {
+ "name": "volume_backup",
+ "schema": "",
+ "columns": {
+ "volumeBackupId": {
+ "name": "volumeBackupId",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "volumeName": {
+ "name": "volumeName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "prefix": {
+ "name": "prefix",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceType": {
+ "name": "serviceType",
+ "type": "serviceType",
+ "typeSchema": "public",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'application'"
+ },
+ "appName": {
+ "name": "appName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "serviceName": {
+ "name": "serviceName",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "turnOff": {
+ "name": "turnOff",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "cronExpression": {
+ "name": "cronExpression",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "keepLatestCount": {
+ "name": "keepLatestCount",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "enabled": {
+ "name": "enabled",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "postgresId": {
+ "name": "postgresId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mariadbId": {
+ "name": "mariadbId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mongoId": {
+ "name": "mongoId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mysqlId": {
+ "name": "mysqlId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "redisId": {
+ "name": "redisId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "composeId": {
+ "name": "composeId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "destinationId": {
+ "name": "destinationId",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "volume_backup_applicationId_application_applicationId_fk": {
+ "name": "volume_backup_applicationId_application_applicationId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "application",
+ "columnsFrom": [
+ "applicationId"
+ ],
+ "columnsTo": [
+ "applicationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_postgresId_postgres_postgresId_fk": {
+ "name": "volume_backup_postgresId_postgres_postgresId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "postgres",
+ "columnsFrom": [
+ "postgresId"
+ ],
+ "columnsTo": [
+ "postgresId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_mariadbId_mariadb_mariadbId_fk": {
+ "name": "volume_backup_mariadbId_mariadb_mariadbId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "mariadb",
+ "columnsFrom": [
+ "mariadbId"
+ ],
+ "columnsTo": [
+ "mariadbId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_mongoId_mongo_mongoId_fk": {
+ "name": "volume_backup_mongoId_mongo_mongoId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "mongo",
+ "columnsFrom": [
+ "mongoId"
+ ],
+ "columnsTo": [
+ "mongoId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_mysqlId_mysql_mysqlId_fk": {
+ "name": "volume_backup_mysqlId_mysql_mysqlId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "mysql",
+ "columnsFrom": [
+ "mysqlId"
+ ],
+ "columnsTo": [
+ "mysqlId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_redisId_redis_redisId_fk": {
+ "name": "volume_backup_redisId_redis_redisId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "redis",
+ "columnsFrom": [
+ "redisId"
+ ],
+ "columnsTo": [
+ "redisId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_composeId_compose_composeId_fk": {
+ "name": "volume_backup_composeId_compose_composeId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "compose",
+ "columnsFrom": [
+ "composeId"
+ ],
+ "columnsTo": [
+ "composeId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "volume_backup_destinationId_destination_destinationId_fk": {
+ "name": "volume_backup_destinationId_destination_destinationId_fk",
+ "tableFrom": "volume_backup",
+ "tableTo": "destination",
+ "columnsFrom": [
+ "destinationId"
+ ],
+ "columnsTo": [
+ "destinationId"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ }
+ },
+ "enums": {
+ "public.buildType": {
+ "name": "buildType",
+ "schema": "public",
+ "values": [
+ "dockerfile",
+ "heroku_buildpacks",
+ "paketo_buildpacks",
+ "nixpacks",
+ "static",
+ "railpack"
+ ]
+ },
+ "public.sourceType": {
+ "name": "sourceType",
+ "schema": "public",
+ "values": [
+ "docker",
+ "git",
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "drop"
+ ]
+ },
+ "public.backupType": {
+ "name": "backupType",
+ "schema": "public",
+ "values": [
+ "database",
+ "compose"
+ ]
+ },
+ "public.databaseType": {
+ "name": "databaseType",
+ "schema": "public",
+ "values": [
+ "postgres",
+ "mariadb",
+ "mysql",
+ "mongo",
+ "web-server"
+ ]
+ },
+ "public.composeType": {
+ "name": "composeType",
+ "schema": "public",
+ "values": [
+ "docker-compose",
+ "stack"
+ ]
+ },
+ "public.sourceTypeCompose": {
+ "name": "sourceTypeCompose",
+ "schema": "public",
+ "values": [
+ "git",
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea",
+ "raw"
+ ]
+ },
+ "public.deploymentStatus": {
+ "name": "deploymentStatus",
+ "schema": "public",
+ "values": [
+ "running",
+ "done",
+ "error",
+ "cancelled"
+ ]
+ },
+ "public.domainType": {
+ "name": "domainType",
+ "schema": "public",
+ "values": [
+ "compose",
+ "application",
+ "preview"
+ ]
+ },
+ "public.gitProviderType": {
+ "name": "gitProviderType",
+ "schema": "public",
+ "values": [
+ "github",
+ "gitlab",
+ "bitbucket",
+ "gitea"
+ ]
+ },
+ "public.mountType": {
+ "name": "mountType",
+ "schema": "public",
+ "values": [
+ "bind",
+ "volume",
+ "file"
+ ]
+ },
+ "public.serviceType": {
+ "name": "serviceType",
+ "schema": "public",
+ "values": [
+ "application",
+ "postgres",
+ "mysql",
+ "mariadb",
+ "mongo",
+ "redis",
+ "compose"
+ ]
+ },
+ "public.notificationType": {
+ "name": "notificationType",
+ "schema": "public",
+ "values": [
+ "slack",
+ "telegram",
+ "discord",
+ "email",
+ "gotify",
+ "ntfy",
+ "lark"
+ ]
+ },
+ "public.protocolType": {
+ "name": "protocolType",
+ "schema": "public",
+ "values": [
+ "tcp",
+ "udp"
+ ]
+ },
+ "public.publishModeType": {
+ "name": "publishModeType",
+ "schema": "public",
+ "values": [
+ "ingress",
+ "host"
+ ]
+ },
+ "public.RegistryType": {
+ "name": "RegistryType",
+ "schema": "public",
+ "values": [
+ "selfHosted",
+ "cloud"
+ ]
+ },
+ "public.scheduleType": {
+ "name": "scheduleType",
+ "schema": "public",
+ "values": [
+ "application",
+ "compose",
+ "server",
+ "dokploy-server"
+ ]
+ },
+ "public.shellType": {
+ "name": "shellType",
+ "schema": "public",
+ "values": [
+ "bash",
+ "sh"
+ ]
+ },
+ "public.serverStatus": {
+ "name": "serverStatus",
+ "schema": "public",
+ "values": [
+ "active",
+ "inactive"
+ ]
+ },
+ "public.serverType": {
+ "name": "serverType",
+ "schema": "public",
+ "values": [
+ "deploy",
+ "build"
+ ]
+ },
+ "public.applicationStatus": {
+ "name": "applicationStatus",
+ "schema": "public",
+ "values": [
+ "idle",
+ "running",
+ "done",
+ "error"
+ ]
+ },
+ "public.certificateType": {
+ "name": "certificateType",
+ "schema": "public",
+ "values": [
+ "letsencrypt",
+ "none",
+ "custom"
+ ]
+ },
+ "public.triggerType": {
+ "name": "triggerType",
+ "schema": "public",
+ "values": [
+ "push",
+ "tag"
+ ]
+ }
+ },
+ "schemas": {},
+ "sequences": {},
+ "roles": {},
+ "policies": {},
+ "views": {},
+ "_meta": {
+ "columns": {},
+ "schemas": {},
+ "tables": {}
+ }
+}
\ No newline at end of file
diff --git a/apps/dokploy/drizzle/meta/_journal.json b/apps/dokploy/drizzle/meta/_journal.json
index 81d39091c..665c47045 100644
--- a/apps/dokploy/drizzle/meta/_journal.json
+++ b/apps/dokploy/drizzle/meta/_journal.json
@@ -876,6 +876,13 @@
"when": 1764571454170,
"tag": "0124_certain_cloak",
"breakpoints": true
+ },
+ {
+ "idx": 125,
+ "version": "7",
+ "when": 1764573207555,
+ "tag": "0125_neat_the_phantom",
+ "breakpoints": true
}
]
}
\ No newline at end of file
diff --git a/packages/server/src/db/schema/application.ts b/packages/server/src/db/schema/application.ts
index 11f2907f8..7675650d4 100644
--- a/packages/server/src/db/schema/application.ts
+++ b/packages/server/src/db/schema/application.ts
@@ -187,6 +187,12 @@ export const applications = pgTable("application", {
registryId: text("registryId").references(() => registry.registryId, {
onDelete: "set null",
}),
+ rollbackRegistryId: text("rollbackRegistryId").references(
+ () => registry.registryId,
+ {
+ onDelete: "set null",
+ },
+ ),
environmentId: text("environmentId")
.notNull()
.references(() => environments.environmentId, { onDelete: "cascade" }),
@@ -270,6 +276,11 @@ export const applicationsRelations = relations(
relationName: "applicationBuildRegistry",
}),
previewDeployments: many(previewDeployments),
+ rollbackRegistry: one(registry, {
+ fields: [applications.rollbackRegistryId],
+ references: [registry.registryId],
+ relationName: "applicationRollbackRegistry",
+ }),
}),
);
diff --git a/packages/server/src/db/schema/registry.ts b/packages/server/src/db/schema/registry.ts
index 6fe1d5285..425ce768c 100644
--- a/packages/server/src/db/schema/registry.ts
+++ b/packages/server/src/db/schema/registry.ts
@@ -39,6 +39,9 @@ export const registryRelations = relations(registry, ({ many }) => ({
buildApplications: many(applications, {
relationName: "applicationBuildRegistry",
}),
+ rollbackApplications: many(applications, {
+ relationName: "applicationRollbackRegistry",
+ }),
}));
const createSchema = createInsertSchema(registry, {
diff --git a/packages/server/src/services/application.ts b/packages/server/src/services/application.ts
index c9c0bb765..2fb63ff7e 100644
--- a/packages/server/src/services/application.ts
+++ b/packages/server/src/services/application.ts
@@ -49,7 +49,6 @@ import {
updatePreviewDeployment,
} from "./preview-deployment";
import { validUniqueServerAppName } from "./project";
-import { createRollback } from "./rollbacks";
export type Application = typeof applications.$inferSelect;
export const createApplication = async (
@@ -113,6 +112,7 @@ export const findApplicationById = async (applicationId: string) => {
server: true,
previewDeployments: true,
buildRegistry: true,
+ rollbackRegistry: true,
},
});
if (!application) {
@@ -198,7 +198,7 @@ export const deployApplication = async ({
command += await buildRemoteDocker(application);
}
- command += getBuildCommand(application);
+ command += await getBuildCommand(application);
const commandWithLog = `(${command}) >> ${deployment.logPath} 2>&1`;
if (serverId) {
@@ -211,17 +211,6 @@ export const deployApplication = async ({
await updateDeploymentStatus(deployment.deploymentId, "done");
await updateApplicationStatus(applicationId, "done");
- if (application.rollbackActive) {
- const tagImage =
- application.sourceType === "docker"
- ? application.dockerImage
- : application.appName;
- await createRollback({
- appName: tagImage || "",
- deploymentId: deployment.deploymentId,
- });
- }
-
await sendBuildSuccessNotifications({
projectName: application.environment.project.name,
applicationName: application.name,
@@ -299,7 +288,7 @@ export const rebuildApplication = async ({
try {
let command = "set -e;";
// Check case for docker only
- command += getBuildCommand(application);
+ command += await getBuildCommand(application);
const commandWithLog = `(${command}) >> ${deployment.logPath} 2>&1`;
if (serverId) {
await execAsyncRemote(serverId, commandWithLog);
@@ -310,17 +299,6 @@ export const rebuildApplication = async ({
await updateDeploymentStatus(deployment.deploymentId, "done");
await updateApplicationStatus(applicationId, "done");
- if (application.rollbackActive) {
- const tagImage =
- application.sourceType === "docker"
- ? application.dockerImage
- : application.appName;
- await createRollback({
- appName: tagImage || "",
- deploymentId: deployment.deploymentId,
- });
- }
-
await sendBuildSuccessNotifications({
projectName: application.environment.project.name,
applicationName: application.name,
@@ -423,6 +401,10 @@ export const deployPreviewApplication = async ({
application.env = `${application.previewEnv}\nDOKPLOY_DEPLOY_URL=${previewDeployment?.domain?.host}`;
application.buildArgs = `${application.previewBuildArgs}\nDOKPLOY_DEPLOY_URL=${previewDeployment?.domain?.host}`;
application.buildSecrets = `${application.previewBuildSecrets}\nDOKPLOY_DEPLOY_URL=${previewDeployment?.domain?.host}`;
+ application.rollbackActive = false;
+ application.buildRegistry = null;
+ application.rollbackRegistry = null;
+ application.registry = null;
let command = "set -e;";
if (application.sourceType === "github") {
diff --git a/packages/server/src/services/rollbacks.ts b/packages/server/src/services/rollbacks.ts
index 16877e7d9..5677d44b6 100644
--- a/packages/server/src/services/rollbacks.ts
+++ b/packages/server/src/services/rollbacks.ts
@@ -7,7 +7,8 @@ import {
deployments as deploymentsSchema,
rollbacks,
} from "../db/schema";
-import { type ApplicationNested, getAuthConfig } from "../utils/builders";
+import type { ApplicationNested } from "../utils/builders";
+import { getRegistryTag } from "../utils/cluster/upload";
import {
calculateResources,
generateBindMounts,
@@ -22,11 +23,12 @@ import { findDeploymentById } from "./deployment";
import type { Mount } from "./mount";
import type { Port } from "./port";
import type { Project } from "./project";
+import type { Registry } from "./registry";
export const createRollback = async (
input: z.infer,
) => {
- await db.transaction(async (tx) => {
+ return await db.transaction(async (tx) => {
const { fullContext, ...other } = input;
const rollback = await tx
.insert(rollbacks)
@@ -70,9 +72,11 @@ export const createRollback = async (
})
.where(eq(deploymentsSchema.deploymentId, rollback.deploymentId));
- await createRollbackImage(rest, tagImage);
+ const updatedRollback = await tx.query.rollbacks.findFirst({
+ where: eq(rollbacks.rollbackId, rollback.rollbackId),
+ });
- return rollback;
+ return updatedRollback;
});
};
@@ -103,27 +107,6 @@ export const findRollbackById = async (rollbackId: string) => {
return result;
};
-const createRollbackImage = async (
- application: ApplicationNested,
- tagImage: string,
-) => {
- const docker = await getRemoteDocker(application.serverId);
-
- const appTagName =
- application.sourceType === "docker"
- ? application.dockerImage
- : `${application.appName}:latest`;
-
- const result = docker.getImage(appTagName || "");
-
- const [repo, version] = tagImage.split(":");
-
- await result.tag({
- repo,
- tag: version,
- });
-};
-
const deleteRollbackImage = async (image: string, serverId?: string | null) => {
const command = `docker image rm ${image} --force`;
@@ -179,14 +162,18 @@ export const rollback = async (rollbackId: string) => {
if (!result.fullContext) {
throw new Error("Rollback context not found");
}
-
- // Use the full context for rollback
- await rollbackApplication(
- application.appName,
- result.image || "",
- application.serverId,
- result.fullContext,
- );
+ try {
+ // Use the full context for rollback
+ await rollbackApplication(
+ application.appName,
+ result.image || "",
+ application.serverId,
+ result.fullContext,
+ );
+ } catch (error) {
+ console.error(error);
+ throw new Error("Failed to rollback application");
+ }
};
const rollbackApplication = async (
@@ -199,6 +186,7 @@ const rollbackApplication = async (
};
mounts: Mount[];
ports: Port[];
+ rollbackRegistry?: Registry;
},
) => {
if (!fullContext) {
@@ -245,16 +233,24 @@ const rollbackApplication = async (
fullContext.environment.project.env,
);
- // For rollback, we use the provided image instead of calculating it
- const authConfig = getAuthConfig(fullContext as ApplicationNested);
+ // Build the full registry image path if rollbackRegistry is available
+ // e.g., "appName:v5" -> "siumauricio/appName:v5" or "registry.com/prefix/appName:v5"
+ let rollbackImage = image;
+ if (fullContext.rollbackRegistry) {
+ rollbackImage = getRegistryTag(fullContext.rollbackRegistry, image);
+ }
const settings: CreateServiceOptions = {
- authconfig: authConfig,
+ authconfig: {
+ password: fullContext.rollbackRegistry?.password || "",
+ username: fullContext.rollbackRegistry?.username || "",
+ serveraddress: fullContext.rollbackRegistry?.registryUrl || "",
+ },
Name: appName,
TaskTemplate: {
ContainerSpec: {
HealthCheck,
- Image: image,
+ Image: rollbackImage,
Env: envVariables,
Mounts: [...volumesMount, ...bindsMount],
...(command
@@ -297,7 +293,8 @@ const rollbackApplication = async (
ForceUpdate: inspect.Spec.TaskTemplate.ForceUpdate + 1,
},
});
- } catch {
+ } catch (error) {
+ console.error(error);
await docker.createService(settings);
}
};
diff --git a/packages/server/src/utils/builders/index.ts b/packages/server/src/utils/builders/index.ts
index 139b9bb1d..be6fcbcf0 100644
--- a/packages/server/src/utils/builders/index.ts
+++ b/packages/server/src/utils/builders/index.ts
@@ -1,6 +1,6 @@
import type { InferResultType } from "@dokploy/server/types/with";
import type { CreateServiceOptions } from "dockerode";
-import { uploadImageRemoteCommand } from "../cluster/upload";
+import { getRegistryTag, uploadImageRemoteCommand } from "../cluster/upload";
import {
calculateResources,
generateBindMounts,
@@ -30,39 +30,45 @@ export type ApplicationNested = InferResultType<
ports: true;
registry: true;
buildRegistry: true;
+ rollbackRegistry: true;
+ deployments: true;
environment: { with: { project: true } };
}
>;
-export const getBuildCommand = (application: ApplicationNested) => {
+export const getBuildCommand = async (application: ApplicationNested) => {
let command = "";
- const { buildType } = application;
- if (application.sourceType === "docker") {
- return "";
+ if (application.sourceType !== "docker") {
+ const { buildType } = application;
+ switch (buildType) {
+ case "nixpacks":
+ command = getNixpacksCommand(application);
+ break;
+ case "heroku_buildpacks":
+ command = getHerokuCommand(application);
+ break;
+ case "paketo_buildpacks":
+ command = getPaketoCommand(application);
+ break;
+ case "static":
+ command = getStaticCommand(application);
+ break;
+ case "dockerfile":
+ command = getDockerCommand(application);
+ break;
+ case "railpack":
+ command = getRailpackCommand(application);
+ break;
+ }
}
- switch (buildType) {
- case "nixpacks":
- command = getNixpacksCommand(application);
- break;
- case "heroku_buildpacks":
- command = getHerokuCommand(application);
- break;
- case "paketo_buildpacks":
- command = getPaketoCommand(application);
- break;
- case "static":
- command = getStaticCommand(application);
- break;
- case "dockerfile":
- command = getDockerCommand(application);
- break;
- case "railpack":
- command = getRailpackCommand(application);
- break;
- }
- if (application.registry || application.buildRegistry) {
- command += uploadImageRemoteCommand(application);
+
+ if (
+ application.registry ||
+ application.buildRegistry ||
+ application.rollbackRegistry
+ ) {
+ command += await uploadImageRemoteCommand(application);
}
return command;
@@ -188,17 +194,11 @@ const getImageName = (application: ApplicationNested) => {
}
if (registry) {
- const { registryUrl, imagePrefix, username } = registry;
- const registryTag = imagePrefix
- ? `${registryUrl ? `${registryUrl}/` : ""}${imagePrefix}/${imageName}`
- : `${registryUrl ? `${registryUrl}/` : ""}${username}/${imageName}`;
+ const registryTag = getRegistryTag(registry, imageName);
return registryTag;
}
if (buildRegistry) {
- const { registryUrl, imagePrefix, username } = buildRegistry;
- const registryTag = imagePrefix
- ? `${registryUrl ? `${registryUrl}/` : ""}${imagePrefix}/${imageName}`
- : `${registryUrl ? `${registryUrl}/` : ""}${username}/${imageName}`;
+ const registryTag = getRegistryTag(buildRegistry, imageName);
return registryTag;
}
diff --git a/packages/server/src/utils/cluster/upload.ts b/packages/server/src/utils/cluster/upload.ts
index a57a771f3..f1860d5a8 100644
--- a/packages/server/src/utils/cluster/upload.ts
+++ b/packages/server/src/utils/cluster/upload.ts
@@ -1,16 +1,24 @@
+import { findAllDeploymentsByApplicationId } from "@dokploy/server/services/deployment";
import type { Registry } from "@dokploy/server/services/registry";
+import { createRollback } from "@dokploy/server/services/rollbacks";
import type { ApplicationNested } from "../builders";
-export const uploadImageRemoteCommand = (application: ApplicationNested) => {
+export const uploadImageRemoteCommand = async (
+ application: ApplicationNested,
+) => {
const registry = application.registry;
const buildRegistry = application.buildRegistry;
+ const rollbackRegistry = application.rollbackRegistry;
- if (!registry && !buildRegistry) {
+ if (!registry && !buildRegistry && !rollbackRegistry) {
throw new Error("No registry found");
}
const { appName } = application;
- const imageName = `${appName}:latest`;
+ const imageName =
+ application.sourceType === "docker"
+ ? application.dockerImage || ""
+ : `${appName}:latest`;
const commands: string[] = [];
if (registry) {
@@ -35,16 +43,38 @@ export const uploadImageRemoteCommand = (application: ApplicationNested) => {
);
}
}
+
+ if (rollbackRegistry && application.rollbackActive) {
+ const deployment = await findAllDeploymentsByApplicationId(
+ application.applicationId,
+ );
+ if (!deployment || !deployment[0]) {
+ throw new Error("Deployment not found");
+ }
+ const deploymentId = deployment[0].deploymentId;
+ const rollback = await createRollback({
+ appName: appName,
+ deploymentId: deploymentId,
+ });
+
+ const rollbackRegistryTag = getRegistryTag(
+ rollbackRegistry,
+ rollback?.image || "",
+ );
+ if (rollbackRegistryTag) {
+ commands.push(`echo "🔄 [Enabled Rollback Registry]"`);
+ commands.push(
+ getRegistryCommands(rollbackRegistry, imageName, rollbackRegistryTag),
+ );
+ }
+ }
try {
return commands.join("\n");
} catch (error) {
throw error;
}
};
-const getRegistryTag = (registry: Registry | null, imageName: string) => {
- if (!registry) {
- return null;
- }
+export const getRegistryTag = (registry: Registry, imageName: string) => {
const { registryUrl, imagePrefix, username } = registry;
return imagePrefix
? `${registryUrl ? `${registryUrl}/` : ""}${imagePrefix}/${imageName}`
From 76613de095ddbceb15eb32fff2e922061c3fc23d Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Tue, 2 Dec 2025 00:49:40 -0600
Subject: [PATCH 56/74] fix: await build command in deployPreviewApplication
function
- Updated the deployPreviewApplication function to await the getBuildCommand call, ensuring the command is fully constructed before execution.
- This change improves the reliability of the deployment process by handling asynchronous command generation correctly.
---
packages/server/src/services/application.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/server/src/services/application.ts b/packages/server/src/services/application.ts
index 2fb63ff7e..61a77ae5a 100644
--- a/packages/server/src/services/application.ts
+++ b/packages/server/src/services/application.ts
@@ -413,7 +413,7 @@ export const deployPreviewApplication = async ({
appName: previewDeployment.appName,
branch: previewDeployment.branch,
});
- command += getBuildCommand(application);
+ command += await getBuildCommand(application);
const commandWithLog = `(${command}) >> ${deployment.logPath} 2>&1`;
if (application.serverId) {
From fbf840bf6e75ae7eb12c0a6185e0fd1d50ef2409 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Tue, 2 Dec 2025 00:55:12 -0600
Subject: [PATCH 57/74] test: update command generation tests to use
mockResolvedValue
- Changed mockReturnValue to mockResolvedValue for getBuildCommand in deployApplication tests, ensuring asynchronous command generation is handled correctly.
- Added rollbackRegistryId, rollbackRegistry, and deployments fields to application settings in drop and traefik tests for improved rollback functionality.
---
apps/dokploy/__test__/deploy/application.command.test.ts | 8 ++++----
apps/dokploy/__test__/drop/drop.test.ts | 3 +++
apps/dokploy/__test__/traefik/traefik.test.ts | 3 +++
3 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/apps/dokploy/__test__/deploy/application.command.test.ts b/apps/dokploy/__test__/deploy/application.command.test.ts
index a0c4387c8..be29748eb 100644
--- a/apps/dokploy/__test__/deploy/application.command.test.ts
+++ b/apps/dokploy/__test__/deploy/application.command.test.ts
@@ -189,7 +189,7 @@ describe("deployApplication - Command Generation Tests", () => {
it("should verify nixpacks command is called with correct app", async () => {
const mockNixpacksCommand = "nixpacks build /path/to/app --name test-app";
- vi.mocked(builders.getBuildCommand).mockReturnValue(mockNixpacksCommand);
+ vi.mocked(builders.getBuildCommand).mockResolvedValue(mockNixpacksCommand);
await deployApplication({
applicationId: "test-app-id",
@@ -220,7 +220,7 @@ describe("deployApplication - Command Generation Tests", () => {
);
const mockRailpackCommand = "railpack prepare /path/to/app";
- vi.mocked(builders.getBuildCommand).mockReturnValue(mockRailpackCommand);
+ vi.mocked(builders.getBuildCommand).mockResolvedValue(mockRailpackCommand);
await deployApplication({
applicationId: "test-app-id",
@@ -241,7 +241,7 @@ describe("deployApplication - Command Generation Tests", () => {
it("should execute commands in correct order", async () => {
const mockNixpacksCommand = "nixpacks build";
- vi.mocked(builders.getBuildCommand).mockReturnValue(mockNixpacksCommand);
+ vi.mocked(builders.getBuildCommand).mockResolvedValue(mockNixpacksCommand);
await deployApplication({
applicationId: "test-app-id",
@@ -260,7 +260,7 @@ describe("deployApplication - Command Generation Tests", () => {
it("should include log redirection in command", async () => {
const mockCommand = "nixpacks build";
- vi.mocked(builders.getBuildCommand).mockReturnValue(mockCommand);
+ vi.mocked(builders.getBuildCommand).mockResolvedValue(mockCommand);
await deployApplication({
applicationId: "test-app-id",
diff --git a/apps/dokploy/__test__/drop/drop.test.ts b/apps/dokploy/__test__/drop/drop.test.ts
index bd2d3c981..cabc77d87 100644
--- a/apps/dokploy/__test__/drop/drop.test.ts
+++ b/apps/dokploy/__test__/drop/drop.test.ts
@@ -41,6 +41,9 @@ const baseApp: ApplicationNested = {
giteaRepository: "",
cleanCache: false,
watchPaths: [],
+ rollbackRegistryId: "",
+ rollbackRegistry: null,
+ deployments: [],
enableSubmodules: false,
applicationStatus: "done",
triggerType: "push",
diff --git a/apps/dokploy/__test__/traefik/traefik.test.ts b/apps/dokploy/__test__/traefik/traefik.test.ts
index e6b98c3ba..279e74fa5 100644
--- a/apps/dokploy/__test__/traefik/traefik.test.ts
+++ b/apps/dokploy/__test__/traefik/traefik.test.ts
@@ -17,6 +17,9 @@ const baseApp: ApplicationNested = {
giteaBuildPath: "",
giteaId: "",
args: [],
+ rollbackRegistryId: "",
+ rollbackRegistry: null,
+ deployments: [],
cleanCache: false,
applicationStatus: "done",
endpointSpecSwarm: null,
From 18e609313b3ec1c336c5cc6ebb91e2a6a8434481 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Tue, 2 Dec 2025 00:56:27 -0600
Subject: [PATCH 58/74] refactor: simplify rollback error handling in rollback
function
- Removed try-catch block in the rollback function to streamline error handling, allowing for direct propagation of errors from the rollbackApplication call.
- This change enhances code readability and maintains the functionality of the rollback process.
---
packages/server/src/services/rollbacks.ts | 19 +++++++------------
1 file changed, 7 insertions(+), 12 deletions(-)
diff --git a/packages/server/src/services/rollbacks.ts b/packages/server/src/services/rollbacks.ts
index 5677d44b6..2e9da4ee1 100644
--- a/packages/server/src/services/rollbacks.ts
+++ b/packages/server/src/services/rollbacks.ts
@@ -162,18 +162,13 @@ export const rollback = async (rollbackId: string) => {
if (!result.fullContext) {
throw new Error("Rollback context not found");
}
- try {
- // Use the full context for rollback
- await rollbackApplication(
- application.appName,
- result.image || "",
- application.serverId,
- result.fullContext,
- );
- } catch (error) {
- console.error(error);
- throw new Error("Failed to rollback application");
- }
+ // Use the full context for rollback
+ await rollbackApplication(
+ application.appName,
+ result.image || "",
+ application.serverId,
+ result.fullContext,
+ );
};
const rollbackApplication = async (
From e627c9af9995061def790f92e5bf2d8846be115e Mon Sep 17 00:00:00 2001
From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com>
Date: Wed, 3 Dec 2025 02:19:15 +0000
Subject: [PATCH 59/74] [autofix.ci] apply automated fixes
---
.../free/container/show-free-container-monitoring.tsx | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/apps/dokploy/components/dashboard/monitoring/free/container/show-free-container-monitoring.tsx b/apps/dokploy/components/dashboard/monitoring/free/container/show-free-container-monitoring.tsx
index 21dde8f90..83ea49f12 100644
--- a/apps/dokploy/components/dashboard/monitoring/free/container/show-free-container-monitoring.tsx
+++ b/apps/dokploy/components/dashboard/monitoring/free/container/show-free-container-monitoring.tsx
@@ -10,7 +10,7 @@ import { DockerNetworkChart } from "./docker-network-chart";
const defaultData = {
cpu: {
- value: '0%',
+ value: "0%",
time: "",
},
memory: {
@@ -220,7 +220,10 @@ export const ContainerFreeMonitoring = ({
Used: {currentData.cpu.value}
-
+
From c34fdf7a4645e8b623c3e92268f24c8a3d8a060a Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Tue, 2 Dec 2025 20:22:27 -0600
Subject: [PATCH 60/74] fix: ensure proper parsing of CPU value for progress
component in monitoring dashboard
---
.../free/container/show-free-container-monitoring.tsx | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/apps/dokploy/components/dashboard/monitoring/free/container/show-free-container-monitoring.tsx b/apps/dokploy/components/dashboard/monitoring/free/container/show-free-container-monitoring.tsx
index 83ea49f12..1dd41e722 100644
--- a/apps/dokploy/components/dashboard/monitoring/free/container/show-free-container-monitoring.tsx
+++ b/apps/dokploy/components/dashboard/monitoring/free/container/show-free-container-monitoring.tsx
@@ -221,7 +221,10 @@ export const ContainerFreeMonitoring = ({
Used: {currentData.cpu.value}
From ed312dc1c05835bc41595b8eca03525243980f9a Mon Sep 17 00:00:00 2001
From: Samson Amaugo
Date: Thu, 4 Dec 2025 02:21:57 +0100
Subject: [PATCH 61/74] fix: update mount path for PostgreSQL 18+ to use
/var/lib/postgresql/{version}/docker
---
packages/server/src/services/postgres.ts | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/packages/server/src/services/postgres.ts b/packages/server/src/services/postgres.ts
index d7016038a..c926a5526 100644
--- a/packages/server/src/services/postgres.ts
+++ b/packages/server/src/services/postgres.ts
@@ -19,7 +19,8 @@ export function getMountPath(dockerImage: string): string {
if (versionMatch?.[1]) {
const version = Number.parseInt(versionMatch[1], 10);
if (version >= 18) {
- return `/var/lib/postgresql/${version}/data`;
+ // PostgreSQL 18+ uses /var/lib/postgresql/{version}/docker as the default PGDATA
+ return `/var/lib/postgresql/${version}/docker`;
}
}
return "/var/lib/postgresql/data";
From dc28ddba2a3728d36cfad0101433a5d2fb04bb2c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Philipp=20C=2E=20Ge=CC=81rard?=
Date: Thu, 4 Dec 2025 12:51:41 +0100
Subject: [PATCH 62/74] test: add regression tests for Traefik Host rule format
Add comprehensive tests to verify that Traefik Host rule labels are
generated with the correct format: Host(`domain.com`) with both
opening and closing parentheses.
These tests cover:
- Basic Host rule format validation
- PathPrefix format validation
- Combined Host and PathPrefix rules
- YAML serialization round-trip preservation
- Edge cases for various domain name formats
- Multiple entrypoints (web/websecure)
- Special characters in paths
Related to: #3161
---
.../compose/domain/host-rule-format.test.ts | 211 ++++++++++++++++++
1 file changed, 211 insertions(+)
create mode 100644 apps/dokploy/__test__/compose/domain/host-rule-format.test.ts
diff --git a/apps/dokploy/__test__/compose/domain/host-rule-format.test.ts b/apps/dokploy/__test__/compose/domain/host-rule-format.test.ts
new file mode 100644
index 000000000..6a4aee50e
--- /dev/null
+++ b/apps/dokploy/__test__/compose/domain/host-rule-format.test.ts
@@ -0,0 +1,211 @@
+import type { Domain } from "@dokploy/server";
+import { createDomainLabels } from "@dokploy/server";
+import { parse, stringify } from "yaml";
+import { describe, expect, it } from "vitest";
+
+/**
+ * Regression tests for Traefik Host rule label format.
+ *
+ * These tests verify that the Host rule is generated with the correct format:
+ * - Host(`domain.com`) - with opening and closing parentheses
+ * - Host(`domain.com`) && PathPrefix(`/path`) - for path-based routing
+ *
+ * Issue: https://github.com/Dokploy/dokploy/issues/3161
+ * The bug caused Host rules to be malformed as Host`domain.com`)
+ * (missing opening parenthesis) which broke all domain routing.
+ */
+describe("Host rule format regression tests", () => {
+ const baseDomain: Domain = {
+ host: "example.com",
+ port: 8080,
+ https: false,
+ uniqueConfigKey: 1,
+ customCertResolver: null,
+ certificateType: "none",
+ applicationId: "",
+ composeId: "",
+ domainType: "compose",
+ serviceName: "test-app",
+ domainId: "",
+ path: "/",
+ createdAt: "",
+ previewDeploymentId: "",
+ internalPath: "/",
+ stripPath: false,
+ };
+
+ describe("Host rule format validation", () => {
+ it("should generate Host rule with correct parentheses format", async () => {
+ const labels = await createDomainLabels("test-app", baseDomain, "web");
+ const ruleLabel = labels.find((l) => l.includes(".rule="));
+
+ expect(ruleLabel).toBeDefined();
+ // Verify exact format: Host(`domain`)
+ expect(ruleLabel).toMatch(/Host\(`[^`]+`\)/);
+ // Ensure opening parenthesis is present after Host
+ expect(ruleLabel).toContain("Host(`example.com`)");
+ // Ensure it does NOT have the malformed format
+ expect(ruleLabel).not.toMatch(/Host`[^`]+`\)/);
+ });
+
+ it("should generate PathPrefix with correct parentheses format", async () => {
+ const labels = await createDomainLabels(
+ "test-app",
+ { ...baseDomain, path: "/api" },
+ "web",
+ );
+ const ruleLabel = labels.find((l) => l.includes(".rule="));
+
+ expect(ruleLabel).toBeDefined();
+ // Verify PathPrefix format
+ expect(ruleLabel).toMatch(/PathPrefix\(`[^`]+`\)/);
+ expect(ruleLabel).toContain("PathPrefix(`/api`)");
+ // Ensure opening parenthesis is present
+ expect(ruleLabel).not.toMatch(/PathPrefix`[^`]+`\)/);
+ });
+
+ it("should generate combined Host and PathPrefix with correct format", async () => {
+ const labels = await createDomainLabels(
+ "test-app",
+ { ...baseDomain, path: "/api/v1" },
+ "websecure",
+ );
+ const ruleLabel = labels.find((l) => l.includes(".rule="));
+
+ expect(ruleLabel).toBeDefined();
+ expect(ruleLabel).toBe(
+ "traefik.http.routers.test-app-1-websecure.rule=Host(`example.com`) && PathPrefix(`/api/v1`)",
+ );
+ });
+ });
+
+ describe("YAML serialization preserves Host rule format", () => {
+ it("should preserve Host rule format through YAML stringify/parse", async () => {
+ const labels = await createDomainLabels("test-app", baseDomain, "web");
+ const ruleLabel = labels.find((l) => l.includes(".rule="));
+
+ // Simulate compose file structure
+ const composeSpec = {
+ services: {
+ myapp: {
+ image: "nginx",
+ labels: labels,
+ },
+ },
+ };
+
+ // Stringify to YAML
+ const yamlOutput = stringify(composeSpec, { lineWidth: 1000 });
+
+ // Parse back
+ const parsed = parse(yamlOutput) as typeof composeSpec;
+ const parsedRuleLabel = parsed.services.myapp.labels.find((l: string) =>
+ l.includes(".rule="),
+ );
+
+ // Verify format is preserved
+ expect(parsedRuleLabel).toBe(ruleLabel);
+ expect(parsedRuleLabel).toContain("Host(`example.com`)");
+ expect(parsedRuleLabel).not.toMatch(/Host`[^`]+`\)/);
+ });
+
+ it("should preserve complex rule format through YAML serialization", async () => {
+ const labels = await createDomainLabels(
+ "test-app",
+ { ...baseDomain, path: "/api", https: true },
+ "websecure",
+ );
+
+ const composeSpec = {
+ services: {
+ myapp: {
+ labels: labels,
+ },
+ },
+ };
+
+ const yamlOutput = stringify(composeSpec, { lineWidth: 1000 });
+ const parsed = parse(yamlOutput) as typeof composeSpec;
+ const parsedRuleLabel = parsed.services.myapp.labels.find((l: string) =>
+ l.includes(".rule="),
+ );
+
+ expect(parsedRuleLabel).toContain("Host(`example.com`) && PathPrefix(`/api`)");
+ });
+ });
+
+ describe("Edge cases for domain names", () => {
+ const domainCases = [
+ { name: "simple domain", host: "example.com" },
+ { name: "subdomain", host: "app.example.com" },
+ { name: "deep subdomain", host: "api.v1.app.example.com" },
+ { name: "numeric domain", host: "123.example.com" },
+ { name: "hyphenated domain", host: "my-app.example-host.com" },
+ { name: "localhost", host: "localhost" },
+ { name: "IP address style", host: "192.168.1.100" },
+ ];
+
+ for (const { name, host } of domainCases) {
+ it(`should generate correct Host rule for ${name}: ${host}`, async () => {
+ const labels = await createDomainLabels(
+ "test-app",
+ { ...baseDomain, host },
+ "web",
+ );
+ const ruleLabel = labels.find((l) => l.includes(".rule="));
+
+ expect(ruleLabel).toBeDefined();
+ expect(ruleLabel).toContain(`Host(\`${host}\`)`);
+ // Verify parenthesis is present
+ expect(ruleLabel).toMatch(new RegExp(`Host\\(\\\`${host.replace(/\./g, "\\.")}\\\`\\)`));
+ });
+ }
+ });
+
+ describe("Multiple domains scenario", () => {
+ it("should generate correct format for both web and websecure entrypoints", async () => {
+ const webLabels = await createDomainLabels("test-app", baseDomain, "web");
+ const websecureLabels = await createDomainLabels(
+ "test-app",
+ baseDomain,
+ "websecure",
+ );
+
+ const webRule = webLabels.find((l) => l.includes(".rule="));
+ const websecureRule = websecureLabels.find((l) => l.includes(".rule="));
+
+ // Both should have correct format
+ expect(webRule).toContain("Host(`example.com`)");
+ expect(websecureRule).toContain("Host(`example.com`)");
+
+ // Neither should have malformed format
+ expect(webRule).not.toMatch(/Host`[^`]+`\)/);
+ expect(websecureRule).not.toMatch(/Host`[^`]+`\)/);
+ });
+ });
+
+ describe("Special characters in paths", () => {
+ const pathCases = [
+ { name: "simple path", path: "/api" },
+ { name: "nested path", path: "/api/v1/users" },
+ { name: "path with hyphen", path: "/api-v1" },
+ { name: "path with underscore", path: "/api_v1" },
+ ];
+
+ for (const { name, path } of pathCases) {
+ it(`should generate correct PathPrefix for ${name}: ${path}`, async () => {
+ const labels = await createDomainLabels(
+ "test-app",
+ { ...baseDomain, path },
+ "web",
+ );
+ const ruleLabel = labels.find((l) => l.includes(".rule="));
+
+ expect(ruleLabel).toBeDefined();
+ expect(ruleLabel).toContain(`PathPrefix(\`${path}\`)`);
+ // Verify parenthesis is present
+ expect(ruleLabel).not.toMatch(/PathPrefix`[^`]+`\)/);
+ });
+ }
+ });
+});
From bccef0da4c3a5b153b4410352039c6ba31562d1c Mon Sep 17 00:00:00 2001
From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com>
Date: Fri, 5 Dec 2025 18:23:16 +0000
Subject: [PATCH 63/74] [autofix.ci] apply automated fixes
---
.../__test__/compose/domain/host-rule-format.test.ts | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/apps/dokploy/__test__/compose/domain/host-rule-format.test.ts b/apps/dokploy/__test__/compose/domain/host-rule-format.test.ts
index 6a4aee50e..27e696b20 100644
--- a/apps/dokploy/__test__/compose/domain/host-rule-format.test.ts
+++ b/apps/dokploy/__test__/compose/domain/host-rule-format.test.ts
@@ -130,7 +130,9 @@ describe("Host rule format regression tests", () => {
l.includes(".rule="),
);
- expect(parsedRuleLabel).toContain("Host(`example.com`) && PathPrefix(`/api`)");
+ expect(parsedRuleLabel).toContain(
+ "Host(`example.com`) && PathPrefix(`/api`)",
+ );
});
});
@@ -157,7 +159,9 @@ describe("Host rule format regression tests", () => {
expect(ruleLabel).toBeDefined();
expect(ruleLabel).toContain(`Host(\`${host}\`)`);
// Verify parenthesis is present
- expect(ruleLabel).toMatch(new RegExp(`Host\\(\\\`${host.replace(/\./g, "\\.")}\\\`\\)`));
+ expect(ruleLabel).toMatch(
+ new RegExp(`Host\\(\\\`${host.replace(/\./g, "\\.")}\\\`\\)`),
+ );
});
}
});
From 3e1030eddad59ef949e1ee5060c1fe6f267adebe Mon Sep 17 00:00:00 2001
From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Date: Fri, 5 Dec 2025 14:49:09 -0600
Subject: [PATCH 64/74] Bump version from v0.25.11 to v0.26.0
---
apps/dokploy/package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/apps/dokploy/package.json b/apps/dokploy/package.json
index 6cb034c0a..1e248e660 100644
--- a/apps/dokploy/package.json
+++ b/apps/dokploy/package.json
@@ -1,6 +1,6 @@
{
"name": "dokploy",
- "version": "v0.25.11",
+ "version": "v0.26.0",
"private": true,
"license": "Apache-2.0",
"type": "module",
From 0e7b550642f1b04eb23e05e30641a7dfca6c5e24 Mon Sep 17 00:00:00 2001
From: Paul Sommer
Date: Sat, 6 Dec 2025 13:20:42 +0100
Subject: [PATCH 65/74] fix: React2Shell vulnerability in NextJS
---
apps/dokploy/package.json | 2 +-
pnpm-lock.yaml | 429 +++++++++++++++++++-------------------
2 files changed, 216 insertions(+), 215 deletions(-)
diff --git a/apps/dokploy/package.json b/apps/dokploy/package.json
index 1e248e660..44eb29213 100644
--- a/apps/dokploy/package.json
+++ b/apps/dokploy/package.json
@@ -118,7 +118,7 @@
"lucide-react": "^0.469.0",
"micromatch": "4.0.8",
"nanoid": "3.3.11",
- "next": "^15.3.2",
+ "next": "^15.3.6",
"next-i18next": "^15.4.2",
"next-themes": "^0.2.1",
"nextjs-toploader": "^3.9.17",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 3a15db2d1..944b513b1 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -62,7 +62,7 @@ importers:
version: 4.7.10
inngest:
specifier: 3.40.1
- version: 3.40.1(h3@1.15.3)(hono@4.7.10)(next@15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.8.3)
+ version: 3.40.1(h3@1.15.3)(hono@4.7.10)(next@15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.8.3)
pino:
specifier: 9.4.0
version: 9.4.0
@@ -237,7 +237,7 @@ importers:
version: 10.45.2(@trpc/server@10.45.2)
'@trpc/next':
specifier: ^10.45.2
- version: 10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/react-query@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/server@10.45.2)(next@15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/react-query@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/server@10.45.2)(next@15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@trpc/react-query':
specifier: ^10.45.2
version: 10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
@@ -338,17 +338,17 @@ importers:
specifier: 3.3.11
version: 3.3.11
next:
- specifier: ^15.3.2
- version: 15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ specifier: ^15.3.6
+ version: 15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
next-i18next:
specifier: ^15.4.2
- version: 15.4.2(i18next@23.16.8)(next@15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-i18next@15.5.2(i18next@23.16.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3))(react@18.2.0)
+ version: 15.4.2(i18next@23.16.8)(next@15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-i18next@15.5.2(i18next@23.16.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3))(react@18.2.0)
next-themes:
specifier: ^0.2.1
- version: 0.2.1(next@15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 0.2.1(next@15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
nextjs-toploader:
specifier: ^3.9.17
- version: 3.9.17(next@15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 3.9.17(next@15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
node-os-utils:
specifier: 2.0.1
version: 2.0.1
@@ -1089,8 +1089,8 @@ packages:
'@drizzle-team/brocli@0.10.2':
resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==}
- '@emnapi/runtime@1.4.3':
- resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==}
+ '@emnapi/runtime@1.7.1':
+ resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==}
'@emotion/is-prop-valid@0.7.3':
resolution: {integrity: sha512-uxJqm/sqwXw3YPA5GXX365OBcJGFtxUVkB6WyezqFHlNe9jqUWH5ur2O2M8dGBz61kn1g3ZBlzUunFQXQIClhA==}
@@ -1703,118 +1703,139 @@ packages:
peerDependencies:
react-hook-form: ^7.0.0
- '@img/sharp-darwin-arm64@0.34.2':
- resolution: {integrity: sha512-OfXHZPppddivUJnqyKoi5YVeHRkkNE2zUFT2gbpKxp/JZCFYEYubnMg+gOp6lWfasPrTS+KPosKqdI+ELYVDtg==}
+ '@img/colour@1.0.0':
+ resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==}
+ engines: {node: '>=18'}
+
+ '@img/sharp-darwin-arm64@0.34.5':
+ resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [darwin]
- '@img/sharp-darwin-x64@0.34.2':
- resolution: {integrity: sha512-dYvWqmjU9VxqXmjEtjmvHnGqF8GrVjM2Epj9rJ6BUIXvk8slvNDJbhGFvIoXzkDhrJC2jUxNLz/GUjjvSzfw+g==}
+ '@img/sharp-darwin-x64@0.34.5':
+ resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [darwin]
- '@img/sharp-libvips-darwin-arm64@1.1.0':
- resolution: {integrity: sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==}
+ '@img/sharp-libvips-darwin-arm64@1.2.4':
+ resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==}
cpu: [arm64]
os: [darwin]
- '@img/sharp-libvips-darwin-x64@1.1.0':
- resolution: {integrity: sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==}
+ '@img/sharp-libvips-darwin-x64@1.2.4':
+ resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==}
cpu: [x64]
os: [darwin]
- '@img/sharp-libvips-linux-arm64@1.1.0':
- resolution: {integrity: sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==}
+ '@img/sharp-libvips-linux-arm64@1.2.4':
+ resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==}
cpu: [arm64]
os: [linux]
- '@img/sharp-libvips-linux-arm@1.1.0':
- resolution: {integrity: sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==}
+ '@img/sharp-libvips-linux-arm@1.2.4':
+ resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==}
cpu: [arm]
os: [linux]
- '@img/sharp-libvips-linux-ppc64@1.1.0':
- resolution: {integrity: sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==}
+ '@img/sharp-libvips-linux-ppc64@1.2.4':
+ resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==}
cpu: [ppc64]
os: [linux]
- '@img/sharp-libvips-linux-s390x@1.1.0':
- resolution: {integrity: sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==}
+ '@img/sharp-libvips-linux-riscv64@1.2.4':
+ resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@img/sharp-libvips-linux-s390x@1.2.4':
+ resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==}
cpu: [s390x]
os: [linux]
- '@img/sharp-libvips-linux-x64@1.1.0':
- resolution: {integrity: sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==}
+ '@img/sharp-libvips-linux-x64@1.2.4':
+ resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==}
cpu: [x64]
os: [linux]
- '@img/sharp-libvips-linuxmusl-arm64@1.1.0':
- resolution: {integrity: sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==}
+ '@img/sharp-libvips-linuxmusl-arm64@1.2.4':
+ resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==}
cpu: [arm64]
os: [linux]
- '@img/sharp-libvips-linuxmusl-x64@1.1.0':
- resolution: {integrity: sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==}
+ '@img/sharp-libvips-linuxmusl-x64@1.2.4':
+ resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==}
cpu: [x64]
os: [linux]
- '@img/sharp-linux-arm64@0.34.2':
- resolution: {integrity: sha512-D8n8wgWmPDakc83LORcfJepdOSN6MvWNzzz2ux0MnIbOqdieRZwVYY32zxVx+IFUT8er5KPcyU3XXsn+GzG/0Q==}
+ '@img/sharp-linux-arm64@0.34.5':
+ resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [linux]
- '@img/sharp-linux-arm@0.34.2':
- resolution: {integrity: sha512-0DZzkvuEOqQUP9mo2kjjKNok5AmnOr1jB2XYjkaoNRwpAYMDzRmAqUIa1nRi58S2WswqSfPOWLNOr0FDT3H5RQ==}
+ '@img/sharp-linux-arm@0.34.5':
+ resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm]
os: [linux]
- '@img/sharp-linux-s390x@0.34.2':
- resolution: {integrity: sha512-EGZ1xwhBI7dNISwxjChqBGELCWMGDvmxZXKjQRuqMrakhO8QoMgqCrdjnAqJq/CScxfRn+Bb7suXBElKQpPDiw==}
+ '@img/sharp-linux-ppc64@0.34.5':
+ resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@img/sharp-linux-riscv64@0.34.5':
+ resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@img/sharp-linux-s390x@0.34.5':
+ resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [s390x]
os: [linux]
- '@img/sharp-linux-x64@0.34.2':
- resolution: {integrity: sha512-sD7J+h5nFLMMmOXYH4DD9UtSNBD05tWSSdWAcEyzqW8Cn5UxXvsHAxmxSesYUsTOBmUnjtxghKDl15EvfqLFbQ==}
+ '@img/sharp-linux-x64@0.34.5':
+ resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [linux]
- '@img/sharp-linuxmusl-arm64@0.34.2':
- resolution: {integrity: sha512-NEE2vQ6wcxYav1/A22OOxoSOGiKnNmDzCYFOZ949xFmrWZOVII1Bp3NqVVpvj+3UeHMFyN5eP/V5hzViQ5CZNA==}
+ '@img/sharp-linuxmusl-arm64@0.34.5':
+ resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [linux]
- '@img/sharp-linuxmusl-x64@0.34.2':
- resolution: {integrity: sha512-DOYMrDm5E6/8bm/yQLCWyuDJwUnlevR8xtF8bs+gjZ7cyUNYXiSf/E8Kp0Ss5xasIaXSHzb888V1BE4i1hFhAA==}
+ '@img/sharp-linuxmusl-x64@0.34.5':
+ resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [linux]
- '@img/sharp-wasm32@0.34.2':
- resolution: {integrity: sha512-/VI4mdlJ9zkaq53MbIG6rZY+QRN3MLbR6usYlgITEzi4Rpx5S6LFKsycOQjkOGmqTNmkIdLjEvooFKwww6OpdQ==}
+ '@img/sharp-wasm32@0.34.5':
+ resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [wasm32]
- '@img/sharp-win32-arm64@0.34.2':
- resolution: {integrity: sha512-cfP/r9FdS63VA5k0xiqaNaEoGxBg9k7uE+RQGzuK9fHt7jib4zAVVseR9LsE4gJcNWgT6APKMNnCcnyOtmSEUQ==}
+ '@img/sharp-win32-arm64@0.34.5':
+ resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [win32]
- '@img/sharp-win32-ia32@0.34.2':
- resolution: {integrity: sha512-QLjGGvAbj0X/FXl8n1WbtQ6iVBpWU7JO94u/P2M4a8CFYsvQi4GW2mRy/JqkRx0qpBzaOdKJKw8uc930EX2AHw==}
+ '@img/sharp-win32-ia32@0.34.5':
+ resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [ia32]
os: [win32]
- '@img/sharp-win32-x64@0.34.2':
- resolution: {integrity: sha512-aUdT6zEYtDKCaxkofmmJDJYGCf0+pJg3eU9/oBuqvEeoB9dKI6ZLc/1iLJCTuJQDO4ptntAlkUmHgGjyuobZbw==}
+ '@img/sharp-win32-x64@0.34.5':
+ resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [win32]
@@ -1941,53 +1962,53 @@ packages:
peerDependencies:
redis: ^4.7.0
- '@next/env@15.3.2':
- resolution: {integrity: sha512-xURk++7P7qR9JG1jJtLzPzf0qEvqCN0A/T3DXf8IPMKo9/6FfjxtEffRJIIew/bIL4T3C2jLLqBor8B/zVlx6g==}
+ '@next/env@15.5.7':
+ resolution: {integrity: sha512-4h6Y2NyEkIEN7Z8YxkA27pq6zTkS09bUSYC0xjd0NpwFxjnIKeZEeH591o5WECSmjpUhLn3H2QLJcDye3Uzcvg==}
- '@next/swc-darwin-arm64@15.3.2':
- resolution: {integrity: sha512-2DR6kY/OGcokbnCsjHpNeQblqCZ85/1j6njYSkzRdpLn5At7OkSdmk7WyAmB9G0k25+VgqVZ/u356OSoQZ3z0g==}
+ '@next/swc-darwin-arm64@15.5.7':
+ resolution: {integrity: sha512-IZwtxCEpI91HVU/rAUOOobWSZv4P2DeTtNaCdHqLcTJU4wdNXgAySvKa/qJCgR5m6KI8UsKDXtO2B31jcaw1Yw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
- '@next/swc-darwin-x64@15.3.2':
- resolution: {integrity: sha512-ro/fdqaZWL6k1S/5CLv1I0DaZfDVJkWNaUU3un8Lg6m0YENWlDulmIWzV96Iou2wEYyEsZq51mwV8+XQXqMp3w==}
+ '@next/swc-darwin-x64@15.5.7':
+ resolution: {integrity: sha512-UP6CaDBcqaCBuiq/gfCEJw7sPEoX1aIjZHnBWN9v9qYHQdMKvCKcAVs4OX1vIjeE+tC5EIuwDTVIoXpUes29lg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
- '@next/swc-linux-arm64-gnu@15.3.2':
- resolution: {integrity: sha512-covwwtZYhlbRWK2HlYX9835qXum4xYZ3E2Mra1mdQ+0ICGoMiw1+nVAn4d9Bo7R3JqSmK1grMq/va+0cdh7bJA==}
+ '@next/swc-linux-arm64-gnu@15.5.7':
+ resolution: {integrity: sha512-NCslw3GrNIw7OgmRBxHtdWFQYhexoUCq+0oS2ccjyYLtcn1SzGzeM54jpTFonIMUjNbHmpKpziXnpxhSWLcmBA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@next/swc-linux-arm64-musl@15.3.2':
- resolution: {integrity: sha512-KQkMEillvlW5Qk5mtGA/3Yz0/tzpNlSw6/3/ttsV1lNtMuOHcGii3zVeXZyi4EJmmLDKYcTcByV2wVsOhDt/zg==}
+ '@next/swc-linux-arm64-musl@15.5.7':
+ resolution: {integrity: sha512-nfymt+SE5cvtTrG9u1wdoxBr9bVB7mtKTcj0ltRn6gkP/2Nu1zM5ei8rwP9qKQP0Y//umK+TtkKgNtfboBxRrw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@next/swc-linux-x64-gnu@15.3.2':
- resolution: {integrity: sha512-uRBo6THWei0chz+Y5j37qzx+BtoDRFIkDzZjlpCItBRXyMPIg079eIkOCl3aqr2tkxL4HFyJ4GHDes7W8HuAUg==}
+ '@next/swc-linux-x64-gnu@15.5.7':
+ resolution: {integrity: sha512-hvXcZvCaaEbCZcVzcY7E1uXN9xWZfFvkNHwbe/n4OkRhFWrs1J1QV+4U1BN06tXLdaS4DazEGXwgqnu/VMcmqw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@next/swc-linux-x64-musl@15.3.2':
- resolution: {integrity: sha512-+uxFlPuCNx/T9PdMClOqeE8USKzj8tVz37KflT3Kdbx/LOlZBRI2yxuIcmx1mPNK8DwSOMNCr4ureSet7eyC0w==}
+ '@next/swc-linux-x64-musl@15.5.7':
+ resolution: {integrity: sha512-4IUO539b8FmF0odY6/SqANJdgwn1xs1GkPO5doZugwZ3ETF6JUdckk7RGmsfSf7ws8Qb2YB5It33mvNL/0acqA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@next/swc-win32-arm64-msvc@15.3.2':
- resolution: {integrity: sha512-LLTKmaI5cfD8dVzh5Vt7+OMo+AIOClEdIU/TSKbXXT2iScUTSxOGoBhfuv+FU8R9MLmrkIL1e2fBMkEEjYAtPQ==}
+ '@next/swc-win32-arm64-msvc@15.5.7':
+ resolution: {integrity: sha512-CpJVTkYI3ZajQkC5vajM7/ApKJUOlm6uP4BknM3XKvJ7VXAvCqSjSLmM0LKdYzn6nBJVSjdclx8nYJSa3xlTgQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
- '@next/swc-win32-x64-msvc@15.3.2':
- resolution: {integrity: sha512-aW5B8wOPioJ4mBdMDXkt5f3j8pUr9W8AnlX0Df35uRWNT1Y6RIybxjnSUe+PhM+M1bwgyY8PHLmXZC6zT1o5tA==}
+ '@next/swc-win32-x64-msvc@15.5.7':
+ resolution: {integrity: sha512-gMzgBX164I6DN+9/PGA+9dQiwmTkE4TloBNx8Kv9UiGARsr9Nba7IpcBRA1iTV9vwlYnrE3Uy6I7Aj6qLjQuqw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
@@ -3827,9 +3848,6 @@ packages:
resolution: {integrity: sha512-qMx1nOrzoB+PF+pzb26Q4Tc2sOlrx9Ba2UBNX9hB31Omrq+QoZ2Gly0KLrQWw4Of1AQ4J9lnD+XOdwOdcdXqqw==}
engines: {node: '>=12.20.0'}
- '@swc/counter@0.1.3':
- resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
-
'@swc/helpers@0.5.15':
resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==}
@@ -4395,10 +4413,6 @@ packages:
bullmq@5.4.2:
resolution: {integrity: sha512-dkR/KGUw18miLe3QWtvSlmGvEe08aZF+w1jZyqEHMWFW3RP4162qp6OGud0/QCAOjusiRI8UOxUhbnortPY+rA==}
- busboy@1.6.0:
- resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
- engines: {node: '>=10.16.0'}
-
bytes@3.1.2:
resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
engines: {node: '>= 0.8'}
@@ -4562,17 +4576,10 @@ packages:
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
- color-string@1.9.1:
- resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
-
color-support@1.1.3:
resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
hasBin: true
- color@4.2.3:
- resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
- engines: {node: '>=12.5.0'}
-
colorette@2.0.20:
resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
@@ -4834,6 +4841,10 @@ packages:
resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==}
engines: {node: '>=8'}
+ detect-libc@2.1.2:
+ resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
+ engines: {node: '>=8'}
+
detect-node-es@1.1.0:
resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
@@ -5578,9 +5589,6 @@ packages:
is-arrayish@0.2.1:
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
- is-arrayish@0.3.2:
- resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
-
is-binary-path@2.1.0:
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
engines: {node: '>=8'}
@@ -6249,13 +6257,13 @@ packages:
react: '*'
react-dom: '*'
- next@15.3.2:
- resolution: {integrity: sha512-CA3BatMyHkxZ48sgOCLdVHjFU36N7TF1HhqAHLFOkV6buwZnvMI84Cug8xD56B9mCuKrqXnLn94417GrZ/jjCQ==}
+ next@15.5.7:
+ resolution: {integrity: sha512-+t2/0jIJ48kUpGKkdlhgkv+zPTEOoXyr60qXe68eB/pl3CMJaLeIGjzp5D6Oqt25hCBiBTt8wEeeAzfJvUKnPQ==}
engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0}
hasBin: true
peerDependencies:
'@opentelemetry/api': ^1.1.0
- '@playwright/test': ^1.41.2
+ '@playwright/test': ^1.51.1
babel-plugin-react-compiler: '*'
react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0
react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0
@@ -7094,6 +7102,11 @@ packages:
engines: {node: '>=10'}
hasBin: true
+ semver@7.7.3:
+ resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==}
+ engines: {node: '>=10'}
+ hasBin: true
+
serialize-error-cjs@0.1.4:
resolution: {integrity: sha512-6a6dNqipzbCPlTFgztfNP2oG+IGcflMe/01zSzGrQcxGMKbIjOemBBD85pH92klWaJavAUWxAh9Z0aU28zxW6A==}
deprecated: Rolling release, please update to 0.2.0
@@ -7118,8 +7131,8 @@ packages:
shallow-equal@1.2.1:
resolution: {integrity: sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==}
- sharp@0.34.2:
- resolution: {integrity: sha512-lszvBmB9QURERtyKT2bNmsgxXK0ShJrL/fvqlonCo7e6xBF8nT8xU6pW+PMIbLsz0RxQk3rgH9kd8UmvOzlMJg==}
+ sharp@0.34.5:
+ resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
shebang-command@2.0.0:
@@ -7167,9 +7180,6 @@ packages:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
- simple-swizzle@0.2.2:
- resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
-
slash@3.0.0:
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
engines: {node: '>=8'}
@@ -7242,10 +7252,6 @@ packages:
std-env@3.9.0:
resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==}
- streamsearch@1.1.0:
- resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
- engines: {node: '>=10.0.0'}
-
string-argv@0.3.2:
resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
engines: {node: '>=0.6.19'}
@@ -8207,7 +8213,7 @@ snapshots:
'@drizzle-team/brocli@0.10.2': {}
- '@emnapi/runtime@1.4.3':
+ '@emnapi/runtime@1.7.1':
dependencies:
tslib: 2.8.1
optional: true
@@ -8549,85 +8555,101 @@ snapshots:
dependencies:
react-hook-form: 7.56.4(react@18.2.0)
- '@img/sharp-darwin-arm64@0.34.2':
+ '@img/colour@1.0.0':
+ optional: true
+
+ '@img/sharp-darwin-arm64@0.34.5':
optionalDependencies:
- '@img/sharp-libvips-darwin-arm64': 1.1.0
+ '@img/sharp-libvips-darwin-arm64': 1.2.4
optional: true
- '@img/sharp-darwin-x64@0.34.2':
+ '@img/sharp-darwin-x64@0.34.5':
optionalDependencies:
- '@img/sharp-libvips-darwin-x64': 1.1.0
+ '@img/sharp-libvips-darwin-x64': 1.2.4
optional: true
- '@img/sharp-libvips-darwin-arm64@1.1.0':
+ '@img/sharp-libvips-darwin-arm64@1.2.4':
optional: true
- '@img/sharp-libvips-darwin-x64@1.1.0':
+ '@img/sharp-libvips-darwin-x64@1.2.4':
optional: true
- '@img/sharp-libvips-linux-arm64@1.1.0':
+ '@img/sharp-libvips-linux-arm64@1.2.4':
optional: true
- '@img/sharp-libvips-linux-arm@1.1.0':
+ '@img/sharp-libvips-linux-arm@1.2.4':
optional: true
- '@img/sharp-libvips-linux-ppc64@1.1.0':
+ '@img/sharp-libvips-linux-ppc64@1.2.4':
optional: true
- '@img/sharp-libvips-linux-s390x@1.1.0':
+ '@img/sharp-libvips-linux-riscv64@1.2.4':
optional: true
- '@img/sharp-libvips-linux-x64@1.1.0':
+ '@img/sharp-libvips-linux-s390x@1.2.4':
optional: true
- '@img/sharp-libvips-linuxmusl-arm64@1.1.0':
+ '@img/sharp-libvips-linux-x64@1.2.4':
optional: true
- '@img/sharp-libvips-linuxmusl-x64@1.1.0':
+ '@img/sharp-libvips-linuxmusl-arm64@1.2.4':
optional: true
- '@img/sharp-linux-arm64@0.34.2':
+ '@img/sharp-libvips-linuxmusl-x64@1.2.4':
+ optional: true
+
+ '@img/sharp-linux-arm64@0.34.5':
optionalDependencies:
- '@img/sharp-libvips-linux-arm64': 1.1.0
+ '@img/sharp-libvips-linux-arm64': 1.2.4
optional: true
- '@img/sharp-linux-arm@0.34.2':
+ '@img/sharp-linux-arm@0.34.5':
optionalDependencies:
- '@img/sharp-libvips-linux-arm': 1.1.0
+ '@img/sharp-libvips-linux-arm': 1.2.4
optional: true
- '@img/sharp-linux-s390x@0.34.2':
+ '@img/sharp-linux-ppc64@0.34.5':
optionalDependencies:
- '@img/sharp-libvips-linux-s390x': 1.1.0
+ '@img/sharp-libvips-linux-ppc64': 1.2.4
optional: true
- '@img/sharp-linux-x64@0.34.2':
+ '@img/sharp-linux-riscv64@0.34.5':
optionalDependencies:
- '@img/sharp-libvips-linux-x64': 1.1.0
+ '@img/sharp-libvips-linux-riscv64': 1.2.4
optional: true
- '@img/sharp-linuxmusl-arm64@0.34.2':
+ '@img/sharp-linux-s390x@0.34.5':
optionalDependencies:
- '@img/sharp-libvips-linuxmusl-arm64': 1.1.0
+ '@img/sharp-libvips-linux-s390x': 1.2.4
optional: true
- '@img/sharp-linuxmusl-x64@0.34.2':
+ '@img/sharp-linux-x64@0.34.5':
optionalDependencies:
- '@img/sharp-libvips-linuxmusl-x64': 1.1.0
+ '@img/sharp-libvips-linux-x64': 1.2.4
optional: true
- '@img/sharp-wasm32@0.34.2':
+ '@img/sharp-linuxmusl-arm64@0.34.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linuxmusl-arm64': 1.2.4
+ optional: true
+
+ '@img/sharp-linuxmusl-x64@0.34.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linuxmusl-x64': 1.2.4
+ optional: true
+
+ '@img/sharp-wasm32@0.34.5':
dependencies:
- '@emnapi/runtime': 1.4.3
+ '@emnapi/runtime': 1.7.1
optional: true
- '@img/sharp-win32-arm64@0.34.2':
+ '@img/sharp-win32-arm64@0.34.5':
optional: true
- '@img/sharp-win32-ia32@0.34.2':
+ '@img/sharp-win32-ia32@0.34.5':
optional: true
- '@img/sharp-win32-x64@0.34.2':
+ '@img/sharp-win32-x64@0.34.5':
optional: true
'@inngest/ai@0.1.5':
@@ -8755,30 +8777,30 @@ snapshots:
async-await-queue: 2.1.4
redis: 4.7.0
- '@next/env@15.3.2': {}
+ '@next/env@15.5.7': {}
- '@next/swc-darwin-arm64@15.3.2':
+ '@next/swc-darwin-arm64@15.5.7':
optional: true
- '@next/swc-darwin-x64@15.3.2':
+ '@next/swc-darwin-x64@15.5.7':
optional: true
- '@next/swc-linux-arm64-gnu@15.3.2':
+ '@next/swc-linux-arm64-gnu@15.5.7':
optional: true
- '@next/swc-linux-arm64-musl@15.3.2':
+ '@next/swc-linux-arm64-musl@15.5.7':
optional: true
- '@next/swc-linux-x64-gnu@15.3.2':
+ '@next/swc-linux-x64-gnu@15.5.7':
optional: true
- '@next/swc-linux-x64-musl@15.3.2':
+ '@next/swc-linux-x64-musl@15.5.7':
optional: true
- '@next/swc-win32-arm64-msvc@15.3.2':
+ '@next/swc-win32-arm64-msvc@15.5.7':
optional: true
- '@next/swc-win32-x64-msvc@15.3.2':
+ '@next/swc-win32-x64-msvc@15.5.7':
optional: true
'@noble/ciphers@0.6.0': {}
@@ -11176,8 +11198,6 @@ snapshots:
dependencies:
apg-lite: 1.0.4
- '@swc/counter@0.1.3': {}
-
'@swc/helpers@0.5.15':
dependencies:
tslib: 2.8.1
@@ -11224,13 +11244,13 @@ snapshots:
dependencies:
'@trpc/server': 10.45.2
- '@trpc/next@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/react-query@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/server@10.45.2)(next@15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
+ '@trpc/next@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/react-query@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/server@10.45.2)(next@15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
dependencies:
'@tanstack/react-query': 4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@trpc/client': 10.45.2(@trpc/server@10.45.2)
'@trpc/react-query': 10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@trpc/server': 10.45.2
- next: 15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ next: 15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@@ -11816,10 +11836,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- busboy@1.6.0:
- dependencies:
- streamsearch: 1.1.0
-
bytes@3.1.2: {}
cac@6.7.14: {}
@@ -11986,20 +12002,8 @@ snapshots:
color-name@1.1.4: {}
- color-string@1.9.1:
- dependencies:
- color-name: 1.1.4
- simple-swizzle: 0.2.2
- optional: true
-
color-support@1.1.3: {}
- color@4.2.3:
- dependencies:
- color-convert: 2.0.1
- color-string: 1.9.1
- optional: true
-
colorette@2.0.20: {}
combined-stream@1.0.8:
@@ -12218,6 +12222,9 @@ snapshots:
detect-libc@2.0.4: {}
+ detect-libc@2.1.2:
+ optional: true
+
detect-node-es@1.1.0: {}
devlop@1.1.0:
@@ -12944,7 +12951,7 @@ snapshots:
inline-style-parser@0.2.4: {}
- inngest@3.40.1(h3@1.15.3)(hono@4.7.10)(next@15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.8.3):
+ inngest@3.40.1(h3@1.15.3)(hono@4.7.10)(next@15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.8.3):
dependencies:
'@bufbuild/protobuf': 2.6.3
'@inngest/ai': 0.1.5
@@ -12971,7 +12978,7 @@ snapshots:
optionalDependencies:
h3: 1.15.3
hono: 4.7.10
- next: 15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ next: 15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
typescript: 5.8.3
transitivePeerDependencies:
- encoding
@@ -13022,9 +13029,6 @@ snapshots:
is-arrayish@0.2.1: {}
- is-arrayish@0.3.2:
- optional: true
-
is-binary-path@2.1.0:
dependencies:
binary-extensions: 2.3.0
@@ -13785,7 +13789,7 @@ snapshots:
neotraverse@0.6.18: {}
- next-i18next@15.4.2(i18next@23.16.8)(next@15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-i18next@15.5.2(i18next@23.16.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3))(react@18.2.0):
+ next-i18next@15.4.2(i18next@23.16.8)(next@15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-i18next@15.5.2(i18next@23.16.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3))(react@18.2.0):
dependencies:
'@babel/runtime': 7.27.3
'@types/hoist-non-react-statics': 3.3.6
@@ -13793,45 +13797,43 @@ snapshots:
hoist-non-react-statics: 3.3.2
i18next: 23.16.8
i18next-fs-backend: 2.6.0
- next: 15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ next: 15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
react: 18.2.0
react-i18next: 15.5.2(i18next@23.16.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)
- next-themes@0.2.1(next@15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
+ next-themes@0.2.1(next@15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
dependencies:
- next: 15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ next: 15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
- next@15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
+ next@15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
dependencies:
- '@next/env': 15.3.2
- '@swc/counter': 0.1.3
+ '@next/env': 15.5.7
'@swc/helpers': 0.5.15
- busboy: 1.6.0
caniuse-lite: 1.0.30001718
postcss: 8.4.31
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
styled-jsx: 5.1.6(react@18.2.0)
optionalDependencies:
- '@next/swc-darwin-arm64': 15.3.2
- '@next/swc-darwin-x64': 15.3.2
- '@next/swc-linux-arm64-gnu': 15.3.2
- '@next/swc-linux-arm64-musl': 15.3.2
- '@next/swc-linux-x64-gnu': 15.3.2
- '@next/swc-linux-x64-musl': 15.3.2
- '@next/swc-win32-arm64-msvc': 15.3.2
- '@next/swc-win32-x64-msvc': 15.3.2
+ '@next/swc-darwin-arm64': 15.5.7
+ '@next/swc-darwin-x64': 15.5.7
+ '@next/swc-linux-arm64-gnu': 15.5.7
+ '@next/swc-linux-arm64-musl': 15.5.7
+ '@next/swc-linux-x64-gnu': 15.5.7
+ '@next/swc-linux-x64-musl': 15.5.7
+ '@next/swc-win32-arm64-msvc': 15.5.7
+ '@next/swc-win32-x64-msvc': 15.5.7
'@opentelemetry/api': 1.9.0
- sharp: 0.34.2
+ sharp: 0.34.5
transitivePeerDependencies:
- '@babel/core'
- babel-plugin-macros
- nextjs-toploader@3.9.17(next@15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
+ nextjs-toploader@3.9.17(next@15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
dependencies:
- next: 15.3.2(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ next: 15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
nprogress: 0.2.0
prop-types: 15.8.1
react: 18.2.0
@@ -14686,6 +14688,9 @@ snapshots:
semver@7.7.2: {}
+ semver@7.7.3:
+ optional: true
+
serialize-error-cjs@0.1.4: {}
serialize-error@8.1.0:
@@ -14705,33 +14710,36 @@ snapshots:
shallow-equal@1.2.1: {}
- sharp@0.34.2:
+ sharp@0.34.5:
dependencies:
- color: 4.2.3
- detect-libc: 2.0.4
- semver: 7.7.2
+ '@img/colour': 1.0.0
+ detect-libc: 2.1.2
+ semver: 7.7.3
optionalDependencies:
- '@img/sharp-darwin-arm64': 0.34.2
- '@img/sharp-darwin-x64': 0.34.2
- '@img/sharp-libvips-darwin-arm64': 1.1.0
- '@img/sharp-libvips-darwin-x64': 1.1.0
- '@img/sharp-libvips-linux-arm': 1.1.0
- '@img/sharp-libvips-linux-arm64': 1.1.0
- '@img/sharp-libvips-linux-ppc64': 1.1.0
- '@img/sharp-libvips-linux-s390x': 1.1.0
- '@img/sharp-libvips-linux-x64': 1.1.0
- '@img/sharp-libvips-linuxmusl-arm64': 1.1.0
- '@img/sharp-libvips-linuxmusl-x64': 1.1.0
- '@img/sharp-linux-arm': 0.34.2
- '@img/sharp-linux-arm64': 0.34.2
- '@img/sharp-linux-s390x': 0.34.2
- '@img/sharp-linux-x64': 0.34.2
- '@img/sharp-linuxmusl-arm64': 0.34.2
- '@img/sharp-linuxmusl-x64': 0.34.2
- '@img/sharp-wasm32': 0.34.2
- '@img/sharp-win32-arm64': 0.34.2
- '@img/sharp-win32-ia32': 0.34.2
- '@img/sharp-win32-x64': 0.34.2
+ '@img/sharp-darwin-arm64': 0.34.5
+ '@img/sharp-darwin-x64': 0.34.5
+ '@img/sharp-libvips-darwin-arm64': 1.2.4
+ '@img/sharp-libvips-darwin-x64': 1.2.4
+ '@img/sharp-libvips-linux-arm': 1.2.4
+ '@img/sharp-libvips-linux-arm64': 1.2.4
+ '@img/sharp-libvips-linux-ppc64': 1.2.4
+ '@img/sharp-libvips-linux-riscv64': 1.2.4
+ '@img/sharp-libvips-linux-s390x': 1.2.4
+ '@img/sharp-libvips-linux-x64': 1.2.4
+ '@img/sharp-libvips-linuxmusl-arm64': 1.2.4
+ '@img/sharp-libvips-linuxmusl-x64': 1.2.4
+ '@img/sharp-linux-arm': 0.34.5
+ '@img/sharp-linux-arm64': 0.34.5
+ '@img/sharp-linux-ppc64': 0.34.5
+ '@img/sharp-linux-riscv64': 0.34.5
+ '@img/sharp-linux-s390x': 0.34.5
+ '@img/sharp-linux-x64': 0.34.5
+ '@img/sharp-linuxmusl-arm64': 0.34.5
+ '@img/sharp-linuxmusl-x64': 0.34.5
+ '@img/sharp-wasm32': 0.34.5
+ '@img/sharp-win32-arm64': 0.34.5
+ '@img/sharp-win32-ia32': 0.34.5
+ '@img/sharp-win32-x64': 0.34.5
optional: true
shebang-command@2.0.0:
@@ -14780,11 +14788,6 @@ snapshots:
signal-exit@4.1.0: {}
- simple-swizzle@0.2.2:
- dependencies:
- is-arrayish: 0.3.2
- optional: true
-
slash@3.0.0: {}
slice-ansi@5.0.0:
@@ -14845,8 +14848,6 @@ snapshots:
std-env@3.9.0: {}
- streamsearch@1.1.0: {}
-
string-argv@0.3.2: {}
string-width@4.2.3:
From b3168f75d0a6b8c9a045cdb336a7f0f430d76fe9 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sat, 6 Dec 2025 12:01:09 -0600
Subject: [PATCH 66/74] chore: update Next.js version to 16.0.7 in
pnpm-lock.yaml and package.json
---
apps/dokploy/package.json | 2 +-
pnpm-lock.yaml | 116 +++++++++++++++++++-------------------
2 files changed, 59 insertions(+), 59 deletions(-)
diff --git a/apps/dokploy/package.json b/apps/dokploy/package.json
index 44eb29213..d30775fa8 100644
--- a/apps/dokploy/package.json
+++ b/apps/dokploy/package.json
@@ -118,7 +118,7 @@
"lucide-react": "^0.469.0",
"micromatch": "4.0.8",
"nanoid": "3.3.11",
- "next": "^15.3.6",
+ "next": "^16.0.7",
"next-i18next": "^15.4.2",
"next-themes": "^0.2.1",
"nextjs-toploader": "^3.9.17",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 944b513b1..b96174ee3 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -62,7 +62,7 @@ importers:
version: 4.7.10
inngest:
specifier: 3.40.1
- version: 3.40.1(h3@1.15.3)(hono@4.7.10)(next@15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.8.3)
+ version: 3.40.1(h3@1.15.3)(hono@4.7.10)(next@16.0.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.8.3)
pino:
specifier: 9.4.0
version: 9.4.0
@@ -237,7 +237,7 @@ importers:
version: 10.45.2(@trpc/server@10.45.2)
'@trpc/next':
specifier: ^10.45.2
- version: 10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/react-query@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/server@10.45.2)(next@15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/react-query@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/server@10.45.2)(next@16.0.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@trpc/react-query':
specifier: ^10.45.2
version: 10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
@@ -338,17 +338,17 @@ importers:
specifier: 3.3.11
version: 3.3.11
next:
- specifier: ^15.3.6
- version: 15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ specifier: ^16.0.7
+ version: 16.0.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
next-i18next:
specifier: ^15.4.2
- version: 15.4.2(i18next@23.16.8)(next@15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-i18next@15.5.2(i18next@23.16.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3))(react@18.2.0)
+ version: 15.4.2(i18next@23.16.8)(next@16.0.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-i18next@15.5.2(i18next@23.16.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3))(react@18.2.0)
next-themes:
specifier: ^0.2.1
- version: 0.2.1(next@15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 0.2.1(next@16.0.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
nextjs-toploader:
specifier: ^3.9.17
- version: 3.9.17(next@15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ version: 3.9.17(next@16.0.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
node-os-utils:
specifier: 2.0.1
version: 2.0.1
@@ -1962,53 +1962,53 @@ packages:
peerDependencies:
redis: ^4.7.0
- '@next/env@15.5.7':
- resolution: {integrity: sha512-4h6Y2NyEkIEN7Z8YxkA27pq6zTkS09bUSYC0xjd0NpwFxjnIKeZEeH591o5WECSmjpUhLn3H2QLJcDye3Uzcvg==}
+ '@next/env@16.0.7':
+ resolution: {integrity: sha512-gpaNgUh5nftFKRkRQGnVi5dpcYSKGcZZkQffZ172OrG/XkrnS7UBTQ648YY+8ME92cC4IojpI2LqTC8sTDhAaw==}
- '@next/swc-darwin-arm64@15.5.7':
- resolution: {integrity: sha512-IZwtxCEpI91HVU/rAUOOobWSZv4P2DeTtNaCdHqLcTJU4wdNXgAySvKa/qJCgR5m6KI8UsKDXtO2B31jcaw1Yw==}
+ '@next/swc-darwin-arm64@16.0.7':
+ resolution: {integrity: sha512-LlDtCYOEj/rfSnEn/Idi+j1QKHxY9BJFmxx7108A6D8K0SB+bNgfYQATPk/4LqOl4C0Wo3LACg2ie6s7xqMpJg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
- '@next/swc-darwin-x64@15.5.7':
- resolution: {integrity: sha512-UP6CaDBcqaCBuiq/gfCEJw7sPEoX1aIjZHnBWN9v9qYHQdMKvCKcAVs4OX1vIjeE+tC5EIuwDTVIoXpUes29lg==}
+ '@next/swc-darwin-x64@16.0.7':
+ resolution: {integrity: sha512-rtZ7BhnVvO1ICf3QzfW9H3aPz7GhBrnSIMZyr4Qy6boXF0b5E3QLs+cvJmg3PsTCG2M1PBoC+DANUi4wCOKXpA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
- '@next/swc-linux-arm64-gnu@15.5.7':
- resolution: {integrity: sha512-NCslw3GrNIw7OgmRBxHtdWFQYhexoUCq+0oS2ccjyYLtcn1SzGzeM54jpTFonIMUjNbHmpKpziXnpxhSWLcmBA==}
+ '@next/swc-linux-arm64-gnu@16.0.7':
+ resolution: {integrity: sha512-mloD5WcPIeIeeZqAIP5c2kdaTa6StwP4/2EGy1mUw8HiexSHGK/jcM7lFuS3u3i2zn+xH9+wXJs6njO7VrAqww==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@next/swc-linux-arm64-musl@15.5.7':
- resolution: {integrity: sha512-nfymt+SE5cvtTrG9u1wdoxBr9bVB7mtKTcj0ltRn6gkP/2Nu1zM5ei8rwP9qKQP0Y//umK+TtkKgNtfboBxRrw==}
+ '@next/swc-linux-arm64-musl@16.0.7':
+ resolution: {integrity: sha512-+ksWNrZrthisXuo9gd1XnjHRowCbMtl/YgMpbRvFeDEqEBd523YHPWpBuDjomod88U8Xliw5DHhekBC3EOOd9g==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@next/swc-linux-x64-gnu@15.5.7':
- resolution: {integrity: sha512-hvXcZvCaaEbCZcVzcY7E1uXN9xWZfFvkNHwbe/n4OkRhFWrs1J1QV+4U1BN06tXLdaS4DazEGXwgqnu/VMcmqw==}
+ '@next/swc-linux-x64-gnu@16.0.7':
+ resolution: {integrity: sha512-4WtJU5cRDxpEE44Ana2Xro1284hnyVpBb62lIpU5k85D8xXxatT+rXxBgPkc7C1XwkZMWpK5rXLXTh9PFipWsA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@next/swc-linux-x64-musl@15.5.7':
- resolution: {integrity: sha512-4IUO539b8FmF0odY6/SqANJdgwn1xs1GkPO5doZugwZ3ETF6JUdckk7RGmsfSf7ws8Qb2YB5It33mvNL/0acqA==}
+ '@next/swc-linux-x64-musl@16.0.7':
+ resolution: {integrity: sha512-HYlhqIP6kBPXalW2dbMTSuB4+8fe+j9juyxwfMwCe9kQPPeiyFn7NMjNfoFOfJ2eXkeQsoUGXg+O2SE3m4Qg2w==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@next/swc-win32-arm64-msvc@15.5.7':
- resolution: {integrity: sha512-CpJVTkYI3ZajQkC5vajM7/ApKJUOlm6uP4BknM3XKvJ7VXAvCqSjSLmM0LKdYzn6nBJVSjdclx8nYJSa3xlTgQ==}
+ '@next/swc-win32-arm64-msvc@16.0.7':
+ resolution: {integrity: sha512-EviG+43iOoBRZg9deGauXExjRphhuYmIOJ12b9sAPy0eQ6iwcPxfED2asb/s2/yiLYOdm37kPaiZu8uXSYPs0Q==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
- '@next/swc-win32-x64-msvc@15.5.7':
- resolution: {integrity: sha512-gMzgBX164I6DN+9/PGA+9dQiwmTkE4TloBNx8Kv9UiGARsr9Nba7IpcBRA1iTV9vwlYnrE3Uy6I7Aj6qLjQuqw==}
+ '@next/swc-win32-x64-msvc@16.0.7':
+ resolution: {integrity: sha512-gniPjy55zp5Eg0896qSrf3yB1dw4F/3s8VK1ephdsZZ129j2n6e1WqCbE2YgcKhW9hPB9TVZENugquWJD5x0ug==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
@@ -6257,9 +6257,9 @@ packages:
react: '*'
react-dom: '*'
- next@15.5.7:
- resolution: {integrity: sha512-+t2/0jIJ48kUpGKkdlhgkv+zPTEOoXyr60qXe68eB/pl3CMJaLeIGjzp5D6Oqt25hCBiBTt8wEeeAzfJvUKnPQ==}
- engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0}
+ next@16.0.7:
+ resolution: {integrity: sha512-3mBRJyPxT4LOxAJI6IsXeFtKfiJUbjCLgvXO02fV8Wy/lIhPvP94Fe7dGhUgHXcQy4sSuYwQNcOLhIfOm0rL0A==}
+ engines: {node: '>=20.9.0'}
hasBin: true
peerDependencies:
'@opentelemetry/api': ^1.1.0
@@ -8777,30 +8777,30 @@ snapshots:
async-await-queue: 2.1.4
redis: 4.7.0
- '@next/env@15.5.7': {}
+ '@next/env@16.0.7': {}
- '@next/swc-darwin-arm64@15.5.7':
+ '@next/swc-darwin-arm64@16.0.7':
optional: true
- '@next/swc-darwin-x64@15.5.7':
+ '@next/swc-darwin-x64@16.0.7':
optional: true
- '@next/swc-linux-arm64-gnu@15.5.7':
+ '@next/swc-linux-arm64-gnu@16.0.7':
optional: true
- '@next/swc-linux-arm64-musl@15.5.7':
+ '@next/swc-linux-arm64-musl@16.0.7':
optional: true
- '@next/swc-linux-x64-gnu@15.5.7':
+ '@next/swc-linux-x64-gnu@16.0.7':
optional: true
- '@next/swc-linux-x64-musl@15.5.7':
+ '@next/swc-linux-x64-musl@16.0.7':
optional: true
- '@next/swc-win32-arm64-msvc@15.5.7':
+ '@next/swc-win32-arm64-msvc@16.0.7':
optional: true
- '@next/swc-win32-x64-msvc@15.5.7':
+ '@next/swc-win32-x64-msvc@16.0.7':
optional: true
'@noble/ciphers@0.6.0': {}
@@ -11244,13 +11244,13 @@ snapshots:
dependencies:
'@trpc/server': 10.45.2
- '@trpc/next@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/react-query@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/server@10.45.2)(next@15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
+ '@trpc/next@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/react-query@10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/server@10.45.2)(next@16.0.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)':
dependencies:
'@tanstack/react-query': 4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@trpc/client': 10.45.2(@trpc/server@10.45.2)
'@trpc/react-query': 10.45.2(@tanstack/react-query@4.36.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@trpc/server': 10.45.2
- next: 15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ next: 16.0.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@@ -12951,7 +12951,7 @@ snapshots:
inline-style-parser@0.2.4: {}
- inngest@3.40.1(h3@1.15.3)(hono@4.7.10)(next@15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.8.3):
+ inngest@3.40.1(h3@1.15.3)(hono@4.7.10)(next@16.0.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(typescript@5.8.3):
dependencies:
'@bufbuild/protobuf': 2.6.3
'@inngest/ai': 0.1.5
@@ -12978,7 +12978,7 @@ snapshots:
optionalDependencies:
h3: 1.15.3
hono: 4.7.10
- next: 15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ next: 16.0.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
typescript: 5.8.3
transitivePeerDependencies:
- encoding
@@ -13789,7 +13789,7 @@ snapshots:
neotraverse@0.6.18: {}
- next-i18next@15.4.2(i18next@23.16.8)(next@15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-i18next@15.5.2(i18next@23.16.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3))(react@18.2.0):
+ next-i18next@15.4.2(i18next@23.16.8)(next@16.0.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-i18next@15.5.2(i18next@23.16.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3))(react@18.2.0):
dependencies:
'@babel/runtime': 7.27.3
'@types/hoist-non-react-statics': 3.3.6
@@ -13797,19 +13797,19 @@ snapshots:
hoist-non-react-statics: 3.3.2
i18next: 23.16.8
i18next-fs-backend: 2.6.0
- next: 15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ next: 16.0.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
react: 18.2.0
react-i18next: 15.5.2(i18next@23.16.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)
- next-themes@0.2.1(next@15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
+ next-themes@0.2.1(next@16.0.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
dependencies:
- next: 15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ next: 16.0.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
- next@15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
+ next@16.0.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
dependencies:
- '@next/env': 15.5.7
+ '@next/env': 16.0.7
'@swc/helpers': 0.5.15
caniuse-lite: 1.0.30001718
postcss: 8.4.31
@@ -13817,23 +13817,23 @@ snapshots:
react-dom: 18.2.0(react@18.2.0)
styled-jsx: 5.1.6(react@18.2.0)
optionalDependencies:
- '@next/swc-darwin-arm64': 15.5.7
- '@next/swc-darwin-x64': 15.5.7
- '@next/swc-linux-arm64-gnu': 15.5.7
- '@next/swc-linux-arm64-musl': 15.5.7
- '@next/swc-linux-x64-gnu': 15.5.7
- '@next/swc-linux-x64-musl': 15.5.7
- '@next/swc-win32-arm64-msvc': 15.5.7
- '@next/swc-win32-x64-msvc': 15.5.7
+ '@next/swc-darwin-arm64': 16.0.7
+ '@next/swc-darwin-x64': 16.0.7
+ '@next/swc-linux-arm64-gnu': 16.0.7
+ '@next/swc-linux-arm64-musl': 16.0.7
+ '@next/swc-linux-x64-gnu': 16.0.7
+ '@next/swc-linux-x64-musl': 16.0.7
+ '@next/swc-win32-arm64-msvc': 16.0.7
+ '@next/swc-win32-x64-msvc': 16.0.7
'@opentelemetry/api': 1.9.0
sharp: 0.34.5
transitivePeerDependencies:
- '@babel/core'
- babel-plugin-macros
- nextjs-toploader@3.9.17(next@15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
+ nextjs-toploader@3.9.17(next@16.0.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
dependencies:
- next: 15.5.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ next: 16.0.7(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
nprogress: 0.2.0
prop-types: 15.8.1
react: 18.2.0
@@ -13859,7 +13859,7 @@ snapshots:
node-gyp-build-optional-packages@5.2.2:
dependencies:
- detect-libc: 2.0.4
+ detect-libc: 2.1.2
optional: true
node-gyp-build@4.8.4:
From ac1fb6fb865e6df179d22c1d6b0db251aa5748e2 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sat, 6 Dec 2025 12:05:26 -0600
Subject: [PATCH 67/74] chore: remove eslint configuration from Next.js config
---
apps/dokploy/next.config.mjs | 3 ---
1 file changed, 3 deletions(-)
diff --git a/apps/dokploy/next.config.mjs b/apps/dokploy/next.config.mjs
index 1ebd4f22a..a1b19d722 100644
--- a/apps/dokploy/next.config.mjs
+++ b/apps/dokploy/next.config.mjs
@@ -6,9 +6,6 @@
/** @type {import("next").NextConfig} */
const nextConfig = {
reactStrictMode: true,
- eslint: {
- ignoreDuringBuilds: true,
- },
typescript: {
ignoreBuildErrors: true,
},
From 7873af1c3915e907f3e4022ede53da1c98ae70b7 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sat, 6 Dec 2025 12:24:47 -0600
Subject: [PATCH 68/74] fix: update S3 credentials formatting in backup utility
---
packages/server/src/utils/backups/utils.ts | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/packages/server/src/utils/backups/utils.ts b/packages/server/src/utils/backups/utils.ts
index d9d5150b9..f30577a53 100644
--- a/packages/server/src/utils/backups/utils.ts
+++ b/packages/server/src/utils/backups/utils.ts
@@ -62,16 +62,16 @@ export const getS3Credentials = (destination: Destination) => {
const { accessKey, secretAccessKey, region, endpoint, provider } =
destination;
const rcloneFlags = [
- `--s3-access-key-id=${accessKey}`,
- `--s3-secret-access-key=${secretAccessKey}`,
- `--s3-region=${region}`,
- `--s3-endpoint=${endpoint}`,
+ `--s3-access-key-id="${accessKey}"`,
+ `--s3-secret-access-key="${secretAccessKey}"`,
+ `--s3-region="${region}"`,
+ `--s3-endpoint="${endpoint}"`,
"--s3-no-check-bucket",
"--s3-force-path-style",
];
if (provider) {
- rcloneFlags.unshift(`--s3-provider=${provider}`);
+ rcloneFlags.unshift(`--s3-provider="${provider}"`);
}
return rcloneFlags;
From 2c1dfe937733de1c7b4ec64ca907805a12d70802 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sat, 6 Dec 2025 12:38:51 -0600
Subject: [PATCH 69/74] refactor: update tsconfig.json formatting and enhance
rollback settings component with registry link
---
.../rollbacks/show-rollback-settings.tsx | 22 +++-
apps/dokploy/tsconfig.json | 112 ++++++++++--------
2 files changed, 78 insertions(+), 56 deletions(-)
diff --git a/apps/dokploy/components/dashboard/application/rollbacks/show-rollback-settings.tsx b/apps/dokploy/components/dashboard/application/rollbacks/show-rollback-settings.tsx
index 8b6c6dd13..a06cf5697 100644
--- a/apps/dokploy/components/dashboard/application/rollbacks/show-rollback-settings.tsx
+++ b/apps/dokploy/components/dashboard/application/rollbacks/show-rollback-settings.tsx
@@ -1,4 +1,5 @@
import { zodResolver } from "@hookform/resolvers/zod";
+import Link from "next/link";
import { useEffect, useState } from "react";
import { useForm } from "react-hook-form";
import { toast } from "sonner";
@@ -22,7 +23,6 @@ import {
FormLabel,
FormMessage,
} from "@/components/ui/form";
-import { Switch } from "@/components/ui/switch";
import {
Select,
SelectContent,
@@ -32,6 +32,7 @@ import {
SelectTrigger,
SelectValue,
} from "@/components/ui/select";
+import { Switch } from "@/components/ui/switch";
import { api } from "@/utils/api";
const formSchema = z
@@ -189,9 +190,22 @@ export const ShowRollbackSettings = ({ applicationId, children }: Props) => {
-
- Select a registry where rollback images will be stored.
-
+ {!registries || registries.length === 0 ? (
+
+ No registries available. Please{" "}
+
+ configure a registry
+ {" "}
+ first to enable rollbacks.
+
+ ) : (
+
+ Select a registry where rollback images will be stored.
+
+ )}
)}
diff --git a/apps/dokploy/tsconfig.json b/apps/dokploy/tsconfig.json
index d2e6532c6..68cbab53c 100644
--- a/apps/dokploy/tsconfig.json
+++ b/apps/dokploy/tsconfig.json
@@ -1,54 +1,62 @@
{
- "compilerOptions": {
- /* Base Options: */
- "esModuleInterop": true,
- "skipLibCheck": true,
- "target": "es2022",
- "allowJs": true,
- "resolveJsonModule": true,
- "moduleDetection": "force",
- "isolatedModules": true,
-
- /* Strictness */
- "strict": true,
- "noUncheckedIndexedAccess": true,
- "checkJs": true,
-
- /* Bundled projects */
- "lib": ["dom", "dom.iterable", "ES2022"],
- "noEmit": true,
- "module": "ESNext",
- "moduleResolution": "Bundler",
- "jsx": "preserve",
- "plugins": [{ "name": "next" }],
- "incremental": true,
-
- /* Path Aliases */
- "baseUrl": ".",
- "paths": {
- "@/*": ["./*"],
- "@dokploy/server/*": ["../../packages/server/src/*"]
- }
- },
-
- "include": [
- "next-env.d.ts",
- "**/*.ts",
- "**/*.tsx",
- "**/*.cjs",
- "**/*.js",
- ".next/types/**/*.ts",
- "env.js",
- "next.config.mjs",
- "next-i18next.config.mjs"
- ],
- "exclude": [
- "node_modules",
- "dokploy",
- "config",
- "dist",
- "webpack.config.server.js",
- "migration.ts",
- "setup.ts"
- ]
+ "compilerOptions": {
+ /* Base Options: */
+ "esModuleInterop": true,
+ "skipLibCheck": true,
+ "target": "es2022",
+ "allowJs": true,
+ "resolveJsonModule": true,
+ "moduleDetection": "force",
+ "isolatedModules": true,
+ /* Strictness */
+ "strict": true,
+ "noUncheckedIndexedAccess": true,
+ "checkJs": true,
+ /* Bundled projects */
+ "lib": [
+ "dom",
+ "dom.iterable",
+ "ES2022"
+ ],
+ "noEmit": true,
+ "module": "ESNext",
+ "moduleResolution": "Bundler",
+ "jsx": "react-jsx",
+ "plugins": [
+ {
+ "name": "next"
+ }
+ ],
+ "incremental": true,
+ /* Path Aliases */
+ "baseUrl": ".",
+ "paths": {
+ "@/*": [
+ "./*"
+ ],
+ "@dokploy/server/*": [
+ "../../packages/server/src/*"
+ ]
+ }
+ },
+ "include": [
+ "next-env.d.ts",
+ "**/*.ts",
+ "**/*.tsx",
+ "**/*.cjs",
+ "**/*.js",
+ ".next/types/**/*.ts",
+ "env.js",
+ "next.config.mjs",
+ "next-i18next.config.mjs"
+ ],
+ "exclude": [
+ "node_modules",
+ "dokploy",
+ "config",
+ "dist",
+ "webpack.config.server.js",
+ "migration.ts",
+ "setup.ts"
+ ]
}
From f0f21886528fe936f8eed2c84cebd798e3f0338a Mon Sep 17 00:00:00 2001
From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com>
Date: Sat, 6 Dec 2025 18:39:15 +0000
Subject: [PATCH 70/74] [autofix.ci] apply automated fixes
---
apps/dokploy/tsconfig.json | 112 +++++++++++++++++--------------------
1 file changed, 52 insertions(+), 60 deletions(-)
diff --git a/apps/dokploy/tsconfig.json b/apps/dokploy/tsconfig.json
index 68cbab53c..9f664e78a 100644
--- a/apps/dokploy/tsconfig.json
+++ b/apps/dokploy/tsconfig.json
@@ -1,62 +1,54 @@
{
- "compilerOptions": {
- /* Base Options: */
- "esModuleInterop": true,
- "skipLibCheck": true,
- "target": "es2022",
- "allowJs": true,
- "resolveJsonModule": true,
- "moduleDetection": "force",
- "isolatedModules": true,
- /* Strictness */
- "strict": true,
- "noUncheckedIndexedAccess": true,
- "checkJs": true,
- /* Bundled projects */
- "lib": [
- "dom",
- "dom.iterable",
- "ES2022"
- ],
- "noEmit": true,
- "module": "ESNext",
- "moduleResolution": "Bundler",
- "jsx": "react-jsx",
- "plugins": [
- {
- "name": "next"
- }
- ],
- "incremental": true,
- /* Path Aliases */
- "baseUrl": ".",
- "paths": {
- "@/*": [
- "./*"
- ],
- "@dokploy/server/*": [
- "../../packages/server/src/*"
- ]
- }
- },
- "include": [
- "next-env.d.ts",
- "**/*.ts",
- "**/*.tsx",
- "**/*.cjs",
- "**/*.js",
- ".next/types/**/*.ts",
- "env.js",
- "next.config.mjs",
- "next-i18next.config.mjs"
- ],
- "exclude": [
- "node_modules",
- "dokploy",
- "config",
- "dist",
- "webpack.config.server.js",
- "migration.ts",
- "setup.ts"
- ]
+ "compilerOptions": {
+ /* Base Options: */
+ "esModuleInterop": true,
+ "skipLibCheck": true,
+ "target": "es2022",
+ "allowJs": true,
+ "resolveJsonModule": true,
+ "moduleDetection": "force",
+ "isolatedModules": true,
+ /* Strictness */
+ "strict": true,
+ "noUncheckedIndexedAccess": true,
+ "checkJs": true,
+ /* Bundled projects */
+ "lib": ["dom", "dom.iterable", "ES2022"],
+ "noEmit": true,
+ "module": "ESNext",
+ "moduleResolution": "Bundler",
+ "jsx": "react-jsx",
+ "plugins": [
+ {
+ "name": "next"
+ }
+ ],
+ "incremental": true,
+ /* Path Aliases */
+ "baseUrl": ".",
+ "paths": {
+ "@/*": ["./*"],
+ "@dokploy/server/*": ["../../packages/server/src/*"]
+ }
+ },
+ "include": [
+ "next-env.d.ts",
+ "**/*.ts",
+ "**/*.tsx",
+ "**/*.cjs",
+ "**/*.js",
+ ".next/types/**/*.ts",
+ "env.js",
+ "next.config.mjs",
+ "next-i18next.config.mjs"
+ ],
+ "exclude": [
+ "node_modules",
+ "dokploy",
+ "config",
+ "dist",
+ "webpack.config.server.js",
+ "migration.ts",
+ "setup.ts"
+ ]
}
From 7467ada3a9645a8b69a81ada43e62ac5c91ed821 Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sat, 6 Dec 2025 12:45:28 -0600
Subject: [PATCH 71/74] feat: enhance rollback confirmation dialog with
additional information about deployment process
---
.../application/deployments/show-deployments.tsx | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/apps/dokploy/components/dashboard/application/deployments/show-deployments.tsx b/apps/dokploy/components/dashboard/application/deployments/show-deployments.tsx
index 8abf8cbf1..796a002da 100644
--- a/apps/dokploy/components/dashboard/application/deployments/show-deployments.tsx
+++ b/apps/dokploy/components/dashboard/application/deployments/show-deployments.tsx
@@ -373,7 +373,19 @@ export const ShowDeployments = ({
type === "application" && (
+
+ Are you sure you want to rollback to this
+ deployment?
+
+
+ Please wait a few seconds while the image is
+ pulled from the registry. Your application
+ should be running shortly.
+
+
+ }
type="default"
onClick={async () => {
await rollback({
From 439fba1f4bcba4b696a1ee67e1d488aa3dcab8aa Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sat, 6 Dec 2025 13:58:03 -0600
Subject: [PATCH 72/74] fix: improve error handling for Traefik port updates
and enhance port availability checks
---
.../web-server/manage-traefik-ports.tsx | 4 +-
apps/dokploy/server/api/routers/settings.ts | 13 ++++
packages/server/src/services/docker.ts | 6 +-
packages/server/src/services/settings.ts | 68 +++----------------
4 files changed, 28 insertions(+), 63 deletions(-)
diff --git a/apps/dokploy/components/dashboard/settings/web-server/manage-traefik-ports.tsx b/apps/dokploy/components/dashboard/settings/web-server/manage-traefik-ports.tsx
index 282f1fddd..c67422220 100644
--- a/apps/dokploy/components/dashboard/settings/web-server/manage-traefik-ports.tsx
+++ b/apps/dokploy/components/dashboard/settings/web-server/manage-traefik-ports.tsx
@@ -105,7 +105,9 @@ export const ManageTraefikPorts = ({ children, serverId }: Props) => {
});
toast.success(t("settings.server.webServer.traefik.portsUpdated"));
setOpen(false);
- } catch {}
+ } catch (error) {
+ toast.error((error as Error).message || "Error updating Traefik ports");
+ }
};
return (
diff --git a/apps/dokploy/server/api/routers/settings.ts b/apps/dokploy/server/api/routers/settings.ts
index 90f895d0d..4894859df 100644
--- a/apps/dokploy/server/api/routers/settings.ts
+++ b/apps/dokploy/server/api/routers/settings.ts
@@ -822,6 +822,19 @@ export const settingsRouter = createTRPCRouter({
"dokploy-traefik",
input?.serverId,
);
+
+ for (const port of input.additionalPorts) {
+ const portCheck = await checkPortInUse(
+ port.publishedPort,
+ input.serverId,
+ );
+ if (portCheck.isInUse) {
+ throw new TRPCError({
+ code: "CONFLICT",
+ message: `Port ${port.targetPort} is already in use by ${portCheck.conflictingContainer}`,
+ });
+ }
+ }
const preparedEnv = prepareEnvironmentVariables(env);
await writeTraefikSetup({
diff --git a/packages/server/src/services/docker.ts b/packages/server/src/services/docker.ts
index ab454b7ea..2194c89c6 100644
--- a/packages/server/src/services/docker.ts
+++ b/packages/server/src/services/docker.ts
@@ -290,10 +290,10 @@ export const getContainersByAppLabel = async (
const command =
type === "swarm"
- ? `docker ps -a --filter "label=com.docker.swarm.service.name=${appName}" --format 'CONTAINER ID : {{.ID}} | Name: {{.Names}} | State: {{.State}}'`
+ ? `docker ps --filter "label=com.docker.swarm.service.name=${appName}" --format 'CONTAINER ID : {{.ID}} | Name: {{.Names}} | State: {{.State}}'`
: type === "standalone"
- ? `docker ps -a --filter "name=${appName}" --format 'CONTAINER ID : {{.ID}} | Name: {{.Names}} | State: {{.State}}'`
- : `docker ps -a --filter "label=com.docker.compose.project=${appName}" --format 'CONTAINER ID : {{.ID}} | Name: {{.Names}} | State: {{.State}}'`;
+ ? `docker ps --filter "name=${appName}" --format 'CONTAINER ID : {{.ID}} | Name: {{.Names}} | State: {{.State}}'`
+ : `docker ps --filter "label=com.docker.compose.project=${appName}" --format 'CONTAINER ID : {{.ID}} | Name: {{.Names}} | State: {{.State}}'`;
if (serverId) {
const result = await execAsyncRemote(serverId, command);
stdout = result.stdout;
diff --git a/packages/server/src/services/settings.ts b/packages/server/src/services/settings.ts
index a33ea9988..3a7222dab 100644
--- a/packages/server/src/services/settings.ts
+++ b/packages/server/src/services/settings.ts
@@ -392,73 +392,23 @@ export const readPorts = async (
);
};
-/**
- * Check if a port is already in use by another container
- * @param port - The port number to check
- * @param serverId - Optional server ID for remote Docker
- * @returns Object with isInUse boolean and conflictingContainer name if found
- */
export const checkPortInUse = async (
port: number,
serverId?: string,
): Promise<{ isInUse: boolean; conflictingContainer?: string }> => {
try {
- // Method 1: Check all containers and inspect their port bindings
- const listContainersCommand = `docker ps -a --format '{{.Names}}'`;
- let containersList = "";
- if (serverId) {
- const result = await execAsyncRemote(serverId, listContainersCommand);
- containersList = result.stdout.trim();
- } else {
- const result = await execAsync(listContainersCommand);
- containersList = result.stdout.trim();
- }
+ const command = `docker ps -a --format '{{.Names}}' | grep -v '^dokploy-traefik$' | while read name; do docker port "$name" 2>/dev/null | grep -q ':${port}' && echo "$name" && break; done || true`;
+ const { stdout } = serverId
+ ? await execAsyncRemote(serverId, command)
+ : await execAsync(command);
- const containerNames = containersList
- .split("\n")
- .filter((name) => name && name !== "dokploy-traefik");
+ const container = stdout.trim();
- // Check each container's port bindings
- for (const containerName of containerNames) {
- const portCheckCommand = `docker port ${containerName} 2>/dev/null | grep ':${port}' || true`;
- let portOutput = "";
- if (serverId) {
- const result = await execAsyncRemote(serverId, portCheckCommand);
- portOutput = result.stdout.trim();
- } else {
- const result = await execAsync(portCheckCommand);
- portOutput = result.stdout.trim();
- }
-
- if (portOutput) {
- return {
- isInUse: true,
- conflictingContainer: containerName,
- };
- }
- }
-
- // Method 2: Check using ss/netstat for any process using the port
- const portCheckCommand = `ss -tuln 2>/dev/null | grep ':${port} ' || netstat -tuln 2>/dev/null | grep ':${port} ' || true`;
- let portCheckOutput = "";
- if (serverId) {
- const result = await execAsyncRemote(serverId, portCheckCommand);
- portCheckOutput = result.stdout.trim();
- } else {
- const result = await execAsync(portCheckCommand);
- portCheckOutput = result.stdout.trim();
- }
-
- if (portCheckOutput) {
- // Port is in use but we couldn't identify the container
- // This could be a non-Docker process or a container we couldn't detect
- return { isInUse: true };
- }
-
- return { isInUse: false };
+ return {
+ isInUse: !!container,
+ conflictingContainer: container || undefined,
+ };
} catch (error) {
- // If check fails, log error but don't block the operation
- // The actual Docker bind will fail if port is truly in use
console.error("Error checking port availability:", error);
return { isInUse: false };
}
From 287dfb540201cd3337ba0c1a10ed051c7506eb1c Mon Sep 17 00:00:00 2001
From: Mauricio Siu
Date: Sat, 6 Dec 2025 14:06:43 -0600
Subject: [PATCH 73/74] feat: add dialog action for enabling/disabling Traefik
dashboard and enhance manage ports component with warning alert
---
.../servers/actions/show-traefik-actions.tsx | 40 ++++++++++++++++---
.../web-server/manage-traefik-ports.tsx | 10 ++++-
2 files changed, 42 insertions(+), 8 deletions(-)
diff --git a/apps/dokploy/components/dashboard/settings/servers/actions/show-traefik-actions.tsx b/apps/dokploy/components/dashboard/settings/servers/actions/show-traefik-actions.tsx
index 578c4df8a..aebba8877 100644
--- a/apps/dokploy/components/dashboard/settings/servers/actions/show-traefik-actions.tsx
+++ b/apps/dokploy/components/dashboard/settings/servers/actions/show-traefik-actions.tsx
@@ -1,5 +1,7 @@
import { useTranslation } from "next-i18next";
import { toast } from "sonner";
+import { AlertBlock } from "@/components/shared/alert-block";
+import { DialogAction } from "@/components/shared/dialog-action";
import { Button } from "@/components/ui/button";
import {
DropdownMenu,
@@ -85,7 +87,26 @@ export const ShowTraefikActions = ({ serverId }: Props) => {
-
+
+ The Traefik container will be recreated from scratch. This
+ means the container will be deleted and created again, which
+ may cause downtime in your applications.
+
+
+ Are you sure you want to{" "}
+ {haveTraefikDashboardPortEnabled ? "disable" : "enable"} the
+ Traefik dashboard?
+
+
+ }
onClick={async () => {
await toggleDashboard({
enableDashboard: !haveTraefikDashboardPortEnabled,
@@ -104,12 +125,19 @@ export const ShowTraefikActions = ({ serverId }: Props) => {
toast.error(errorMessage);
});
}}
- className="w-full cursor-pointer space-x-3"
+ disabled={toggleDashboardIsLoading}
+ type="default"
>
-
- {haveTraefikDashboardPortEnabled ? "Disable" : "Enable"} Dashboard
-
-
+ e.preventDefault()}
+ className="w-full cursor-pointer space-x-3"
+ >
+
+ {haveTraefikDashboardPortEnabled ? "Disable" : "Enable"}{" "}
+ Dashboard
+
+
+
e.preventDefault()}
diff --git a/apps/dokploy/components/dashboard/settings/web-server/manage-traefik-ports.tsx b/apps/dokploy/components/dashboard/settings/web-server/manage-traefik-ports.tsx
index c67422220..3ce95aa1f 100644
--- a/apps/dokploy/components/dashboard/settings/web-server/manage-traefik-ports.tsx
+++ b/apps/dokploy/components/dashboard/settings/web-server/manage-traefik-ports.tsx
@@ -158,11 +158,11 @@ export const ManageTraefikPorts = ({ children, serverId }: Props) => {
) : (
-
+
{fields.map((field, index) => (
-
+
{
)}
+
+
+ The Traefik container will be recreated from scratch. This
+ means the container will be deleted and created again, which
+ may cause downtime in your applications.
+
Date: Sat, 6 Dec 2025 14:23:43 -0600
Subject: [PATCH 74/74] fix(settings): prevent duplicate port entries by only
adding the first mapping for each target port
---
packages/server/src/services/settings.ts | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)
diff --git a/packages/server/src/services/settings.ts b/packages/server/src/services/settings.ts
index 3a7222dab..3ac6fbb28 100644
--- a/packages/server/src/services/settings.ts
+++ b/packages/server/src/services/settings.ts
@@ -372,19 +372,27 @@ export const readPorts = async (
publishedPort: number;
protocol?: string;
}[] = [];
+ const seenPorts = new Set();
for (const key in parsedResult) {
if (Object.hasOwn(parsedResult, key)) {
const containerPortMapppings = parsedResult[key];
const protocol = key.split("/")[1];
const targetPort = Number.parseInt(key.split("/")[0] ?? "0", 10);
- containerPortMapppings.forEach((mapping: any) => {
- ports.push({
- targetPort: targetPort,
- publishedPort: Number.parseInt(mapping.HostPort, 10),
- protocol: protocol,
- });
- });
+ // Take only the first mapping to avoid duplicates (IPv4 and IPv6)
+ const firstMapping = containerPortMapppings[0];
+ if (firstMapping) {
+ const publishedPort = Number.parseInt(firstMapping.HostPort, 10);
+ const portKey = `${targetPort}-${publishedPort}-${protocol}`;
+ if (!seenPorts.has(portKey)) {
+ seenPorts.add(portKey);
+ ports.push({
+ targetPort: targetPort,
+ publishedPort: publishedPort,
+ protocol: protocol,
+ });
+ }
+ }
}
}
return ports.filter(