feat: secret variables in environments (#3779)

Co-authored-by: jamesgeorge007 <jamesgeorge998001@gmail.com>
This commit is contained in:
Nivedin
2024-02-08 21:58:42 +05:30
committed by GitHub
parent 16803acb26
commit 00862eb192
55 changed files with 2141 additions and 439 deletions

View File

@@ -160,7 +160,6 @@ export const SELECTED_ENV_INDEX_SCHEMA = z.nullable(
type: z.literal("TEAM_ENV"),
teamID: z.string(),
teamEnvID: z.string(),
// ! Versioned entity
environment: entityReference(Environment),
}),
])
@@ -212,13 +211,19 @@ export const MQTT_REQUEST_SCHEMA = z.nullable(
export const GLOBAL_ENV_SCHEMA = z.union([
z.array(z.never()),
z.array(
z
.object({
z.union([
z.object({
key: z.string(),
secret: z.literal(true),
}),
z.object({
key: z.string(),
value: z.string(),
})
.strict()
secret: z.literal(false),
}),
])
),
])
@@ -339,12 +344,34 @@ const HoppTestDataSchema = z.lazy(() =>
.strict()
)
const EnvironmentVariablesSchema = z
.object({
const EnvironmentVariablesSchema = z.union([
z.object({
key: z.string(),
value: z.string(),
})
.strict()
secret: z.literal(false),
}),
z.object({
key: z.string(),
secret: z.literal(true),
}),
])
export const SECRET_ENVIRONMENT_VARIABLE_SCHEMA = z.union([
z.object({}).strict(),
z.record(
z.string(),
z.array(
z
.object({
key: z.string(),
value: z.string(),
varIndex: z.number(),
})
.strict()
)
),
])
const HoppTestResultSchema = z
.object({
@@ -358,7 +385,11 @@ const HoppTestResultSchema = z
.object({
additions: z.array(EnvironmentVariablesSchema),
updations: z.array(
EnvironmentVariablesSchema.extend({ previousValue: z.string() })
EnvironmentVariablesSchema.refine((x) => !x.secret).and(
z.object({
previousValue: z.string(),
})
)
),
deletions: z.array(EnvironmentVariablesSchema),
})
@@ -367,7 +398,11 @@ const HoppTestResultSchema = z
.object({
additions: z.array(EnvironmentVariablesSchema),
updations: z.array(
EnvironmentVariablesSchema.extend({ previousValue: z.string() })
EnvironmentVariablesSchema.refine((x) => !x.secret).and(
z.object({
previousValue: z.string(),
})
)
),
deletions: z.array(EnvironmentVariablesSchema),
})