From fd2e52e15562365f10415eaed57a08b22d42ab73 Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Tue, 7 Apr 2026 23:40:39 +0200 Subject: [PATCH] feat: add runtime management domain records - Environment, EnvironmentStatus, App, AppVersion - Deployment, DeploymentStatus, RoutingMode Co-Authored-By: Claude Opus 4.6 (1M context) --- .../java/com/cameleer3/server/core/runtime/App.java | 6 ++++++ .../cameleer3/server/core/runtime/AppVersion.java | 7 +++++++ .../cameleer3/server/core/runtime/Deployment.java | 13 +++++++++++++ .../server/core/runtime/DeploymentStatus.java | 3 +++ .../cameleer3/server/core/runtime/Environment.java | 6 ++++++ .../server/core/runtime/EnvironmentStatus.java | 3 +++ .../cameleer3/server/core/runtime/RoutingMode.java | 3 +++ 7 files changed, 41 insertions(+) create mode 100644 cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/App.java create mode 100644 cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/AppVersion.java create mode 100644 cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/Deployment.java create mode 100644 cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/DeploymentStatus.java create mode 100644 cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/Environment.java create mode 100644 cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/EnvironmentStatus.java create mode 100644 cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/RoutingMode.java diff --git a/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/App.java b/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/App.java new file mode 100644 index 00000000..4e426e0b --- /dev/null +++ b/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/App.java @@ -0,0 +1,6 @@ +package com.cameleer3.server.core.runtime; + +import java.time.Instant; +import java.util.UUID; + +public record App(UUID id, UUID environmentId, String slug, String displayName, Instant createdAt) {} diff --git a/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/AppVersion.java b/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/AppVersion.java new file mode 100644 index 00000000..93c516f2 --- /dev/null +++ b/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/AppVersion.java @@ -0,0 +1,7 @@ +package com.cameleer3.server.core.runtime; + +import java.time.Instant; +import java.util.UUID; + +public record AppVersion(UUID id, UUID appId, int version, String jarPath, String jarChecksum, + String jarFilename, Long jarSizeBytes, Instant uploadedAt) {} diff --git a/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/Deployment.java b/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/Deployment.java new file mode 100644 index 00000000..90b47f6e --- /dev/null +++ b/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/Deployment.java @@ -0,0 +1,13 @@ +package com.cameleer3.server.core.runtime; + +import java.time.Instant; +import java.util.UUID; + +public record Deployment(UUID id, UUID appId, UUID appVersionId, UUID environmentId, + DeploymentStatus status, String containerId, String containerName, + String errorMessage, Instant deployedAt, Instant stoppedAt, Instant createdAt) { + public Deployment withStatus(DeploymentStatus newStatus) { + return new Deployment(id, appId, appVersionId, environmentId, newStatus, + containerId, containerName, errorMessage, deployedAt, stoppedAt, createdAt); + } +} diff --git a/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/DeploymentStatus.java b/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/DeploymentStatus.java new file mode 100644 index 00000000..10e434b9 --- /dev/null +++ b/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/DeploymentStatus.java @@ -0,0 +1,3 @@ +package com.cameleer3.server.core.runtime; + +public enum DeploymentStatus { STARTING, RUNNING, FAILED, STOPPED } diff --git a/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/Environment.java b/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/Environment.java new file mode 100644 index 00000000..d3e8d77c --- /dev/null +++ b/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/Environment.java @@ -0,0 +1,6 @@ +package com.cameleer3.server.core.runtime; + +import java.time.Instant; +import java.util.UUID; + +public record Environment(UUID id, String slug, String displayName, EnvironmentStatus status, Instant createdAt) {} diff --git a/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/EnvironmentStatus.java b/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/EnvironmentStatus.java new file mode 100644 index 00000000..ce55da99 --- /dev/null +++ b/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/EnvironmentStatus.java @@ -0,0 +1,3 @@ +package com.cameleer3.server.core.runtime; + +public enum EnvironmentStatus { ACTIVE, SUSPENDED } diff --git a/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/RoutingMode.java b/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/RoutingMode.java new file mode 100644 index 00000000..11d1efe3 --- /dev/null +++ b/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/RoutingMode.java @@ -0,0 +1,3 @@ +package com.cameleer3.server.core.runtime; + +public enum RoutingMode { path, subdomain }