diff --git a/apps/dashboard/app/(app)/projects/[projectId]/deployments/components/table/deployments-list.tsx b/apps/dashboard/app/(app)/projects/[projectId]/deployments/components/table/deployments-list.tsx
index 78daec7272..5bf731fb81 100644
--- a/apps/dashboard/app/(app)/projects/[projectId]/deployments/components/table/deployments-list.tsx
+++ b/apps/dashboard/app/(app)/projects/[projectId]/deployments/components/table/deployments-list.tsx
@@ -58,7 +58,8 @@ export const DeploymentsList = () => {
header: "Deployment ID",
width: "20%",
headerClassName: "pl-[18px]",
- render: ({ deployment, environment }) => {
+ render: ({ deployment }) => {
+ const isProduction = deployment.id === activeDeployment.data.at(0)?.id;
const isSelected = deployment.id === selectedDeployment?.deployment.id;
const iconContainer = (
{
>
{shortenId(deployment.id)}
- {deployment.id === activeDeployment.data.at(0)?.id ? (
-
- ) : null}
+ {isProduction ? : null}
- {environment?.slug}
+ {isProduction ? "Production" : "Preview"}
diff --git a/go/apps/ctrl/services/deployment/create_deployment.go b/go/apps/ctrl/services/deployment/create_deployment.go
index 2396dfdb0f..83902e344e 100644
--- a/go/apps/ctrl/services/deployment/create_deployment.go
+++ b/go/apps/ctrl/services/deployment/create_deployment.go
@@ -53,8 +53,9 @@ func (s *Service) CreateDeployment(
req.Msg.GetProjectId(), req.Msg.GetWorkspaceId()))
}
- env, err := db.Query.FindEnvironmentByWorkspaceAndSlug(ctx, s.db.RO(), db.FindEnvironmentByWorkspaceAndSlugParams{
+ env, err := db.Query.FindEnvironmentByProjectIdAndSlug(ctx, s.db.RO(), db.FindEnvironmentByProjectIdAndSlugParams{
WorkspaceID: req.Msg.GetWorkspaceId(),
+ ProjectID: project.ID,
Slug: req.Msg.GetEnvironmentSlug(),
})
if err != nil {
@@ -146,11 +147,12 @@ func (s *Service) CreateDeployment(
// Start the deployment workflow directly
deployReq := &DeployRequest{
- WorkspaceID: req.Msg.GetWorkspaceId(),
- ProjectID: req.Msg.GetProjectId(),
- DeploymentID: deploymentID,
- DockerImage: req.Msg.GetDockerImage(),
- KeyspaceID: req.Msg.GetKeyspaceId(),
+ WorkspaceID: req.Msg.GetWorkspaceId(),
+ ProjectID: req.Msg.GetProjectId(),
+ EnvironmentID: env.ID,
+ DeploymentID: deploymentID,
+ DockerImage: req.Msg.GetDockerImage(),
+ KeyspaceID: req.Msg.GetKeyspaceId(),
}
executionID, err := s.hydraEngine.StartWorkflow(ctx, "deployment", deployReq,
diff --git a/go/apps/ctrl/services/deployment/deploy_workflow.go b/go/apps/ctrl/services/deployment/deploy_workflow.go
index 5a9a8e721a..f54b056ba4 100644
--- a/go/apps/ctrl/services/deployment/deploy_workflow.go
+++ b/go/apps/ctrl/services/deployment/deploy_workflow.go
@@ -65,11 +65,12 @@ func (w *DeployWorkflow) Name() string {
// DeployRequest defines the input for the deploy workflow
type DeployRequest struct {
- WorkspaceID string `json:"workspace_id"`
- ProjectID string `json:"project_id"`
- KeyspaceID string `json:"keyspace_id"`
- DeploymentID string `json:"deployment_id"`
- DockerImage string `json:"docker_image"`
+ WorkspaceID string `json:"workspace_id"`
+ ProjectID string `json:"project_id"`
+ KeyspaceID string `json:"keyspace_id"`
+ DeploymentID string `json:"deployment_id"`
+ EnvironmentID string `json:"environment_id"`
+ DockerImage string `json:"docker_image"`
}
// DeploymentResult holds the deployment outcome
diff --git a/go/pkg/db/environment_find_by_project_id_and_slug.sql_generated.go b/go/pkg/db/environment_find_by_project_id_and_slug.sql_generated.go
new file mode 100644
index 0000000000..fdd3a719dd
--- /dev/null
+++ b/go/pkg/db/environment_find_by_project_id_and_slug.sql_generated.go
@@ -0,0 +1,53 @@
+// Code generated by sqlc. DO NOT EDIT.
+// versions:
+// sqlc v1.29.0
+// source: environment_find_by_project_id_and_slug.sql
+
+package db
+
+import (
+ "context"
+ "database/sql"
+)
+
+const findEnvironmentByProjectIdAndSlug = `-- name: FindEnvironmentByProjectIdAndSlug :one
+SELECT id, workspace_id, project_id, slug, description
+FROM environments
+WHERE workspace_id = ?
+ AND project_id = ?
+ AND slug = ?
+`
+
+type FindEnvironmentByProjectIdAndSlugParams struct {
+ WorkspaceID string `db:"workspace_id"`
+ ProjectID string `db:"project_id"`
+ Slug string `db:"slug"`
+}
+
+type FindEnvironmentByProjectIdAndSlugRow struct {
+ ID string `db:"id"`
+ WorkspaceID string `db:"workspace_id"`
+ ProjectID string `db:"project_id"`
+ Slug string `db:"slug"`
+ Description sql.NullString `db:"description"`
+}
+
+// FindEnvironmentByProjectIdAndSlug
+//
+// SELECT id, workspace_id, project_id, slug, description
+// FROM environments
+// WHERE workspace_id = ?
+// AND project_id = ?
+// AND slug = ?
+func (q *Queries) FindEnvironmentByProjectIdAndSlug(ctx context.Context, db DBTX, arg FindEnvironmentByProjectIdAndSlugParams) (FindEnvironmentByProjectIdAndSlugRow, error) {
+ row := db.QueryRowContext(ctx, findEnvironmentByProjectIdAndSlug, arg.WorkspaceID, arg.ProjectID, arg.Slug)
+ var i FindEnvironmentByProjectIdAndSlugRow
+ err := row.Scan(
+ &i.ID,
+ &i.WorkspaceID,
+ &i.ProjectID,
+ &i.Slug,
+ &i.Description,
+ )
+ return i, err
+}
diff --git a/go/pkg/db/environment_find_by_workspace_and_slug.sql_generated.go b/go/pkg/db/environment_find_by_workspace_and_slug.sql_generated.go
deleted file mode 100644
index e29a6544d5..0000000000
--- a/go/pkg/db/environment_find_by_workspace_and_slug.sql_generated.go
+++ /dev/null
@@ -1,48 +0,0 @@
-// Code generated by sqlc. DO NOT EDIT.
-// versions:
-// sqlc v1.29.0
-// source: environment_find_by_workspace_and_slug.sql
-
-package db
-
-import (
- "context"
- "database/sql"
-)
-
-const findEnvironmentByWorkspaceAndSlug = `-- name: FindEnvironmentByWorkspaceAndSlug :one
-SELECT id, workspace_id, project_id, slug, description
-FROM environments
-WHERE workspace_id = ? AND slug = ?
-`
-
-type FindEnvironmentByWorkspaceAndSlugParams struct {
- WorkspaceID string `db:"workspace_id"`
- Slug string `db:"slug"`
-}
-
-type FindEnvironmentByWorkspaceAndSlugRow struct {
- ID string `db:"id"`
- WorkspaceID string `db:"workspace_id"`
- ProjectID string `db:"project_id"`
- Slug string `db:"slug"`
- Description sql.NullString `db:"description"`
-}
-
-// FindEnvironmentByWorkspaceAndSlug
-//
-// SELECT id, workspace_id, project_id, slug, description
-// FROM environments
-// WHERE workspace_id = ? AND slug = ?
-func (q *Queries) FindEnvironmentByWorkspaceAndSlug(ctx context.Context, db DBTX, arg FindEnvironmentByWorkspaceAndSlugParams) (FindEnvironmentByWorkspaceAndSlugRow, error) {
- row := db.QueryRowContext(ctx, findEnvironmentByWorkspaceAndSlug, arg.WorkspaceID, arg.Slug)
- var i FindEnvironmentByWorkspaceAndSlugRow
- err := row.Scan(
- &i.ID,
- &i.WorkspaceID,
- &i.ProjectID,
- &i.Slug,
- &i.Description,
- )
- return i, err
-}
diff --git a/go/pkg/db/querier_generated.go b/go/pkg/db/querier_generated.go
index 3ba37dc3e4..a622be962e 100644
--- a/go/pkg/db/querier_generated.go
+++ b/go/pkg/db/querier_generated.go
@@ -189,12 +189,14 @@ type Querier interface {
// WHERE deployment_id = ?
// ORDER BY created_at ASC
FindDomainsByDeploymentId(ctx context.Context, db DBTX, deploymentID sql.NullString) ([]FindDomainsByDeploymentIdRow, error)
- //FindEnvironmentByWorkspaceAndSlug
+ //FindEnvironmentByProjectIdAndSlug
//
// SELECT id, workspace_id, project_id, slug, description
// FROM environments
- // WHERE workspace_id = ? AND slug = ?
- FindEnvironmentByWorkspaceAndSlug(ctx context.Context, db DBTX, arg FindEnvironmentByWorkspaceAndSlugParams) (FindEnvironmentByWorkspaceAndSlugRow, error)
+ // WHERE workspace_id = ?
+ // AND project_id = ?
+ // AND slug = ?
+ FindEnvironmentByProjectIdAndSlug(ctx context.Context, db DBTX, arg FindEnvironmentByProjectIdAndSlugParams) (FindEnvironmentByProjectIdAndSlugRow, error)
//FindIdentity
//
// SELECT id, external_id, workspace_id, environment, meta, deleted, created_at, updated_at
diff --git a/go/pkg/db/queries/environment_find_by_project_id_and_slug.sql b/go/pkg/db/queries/environment_find_by_project_id_and_slug.sql
new file mode 100644
index 0000000000..cf86c7f6db
--- /dev/null
+++ b/go/pkg/db/queries/environment_find_by_project_id_and_slug.sql
@@ -0,0 +1,6 @@
+-- name: FindEnvironmentByProjectIdAndSlug :one
+SELECT id, workspace_id, project_id, slug, description
+FROM environments
+WHERE workspace_id = sqlc.arg(workspace_id)
+ AND project_id = sqlc.arg(project_id)
+ AND slug = sqlc.arg(slug);
diff --git a/go/pkg/db/queries/environment_find_by_workspace_and_slug.sql b/go/pkg/db/queries/environment_find_by_workspace_and_slug.sql
deleted file mode 100644
index 0458ba32db..0000000000
--- a/go/pkg/db/queries/environment_find_by_workspace_and_slug.sql
+++ /dev/null
@@ -1,4 +0,0 @@
--- name: FindEnvironmentByWorkspaceAndSlug :one
-SELECT id, workspace_id, project_id, slug, description
-FROM environments
-WHERE workspace_id = sqlc.arg(workspace_id) AND slug = sqlc.arg(slug);