chore: import upstream snapshot with attribution

This commit is contained in:
wehub-resource-sync
2026-07-13 13:32:57 +08:00
commit cd420f9332
4811 changed files with 884702 additions and 0 deletions
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,134 @@
import type { RuntimeEnvironmentType } from "@trigger.dev/database";
import { z } from "zod";
export const EnvironmentVariableKey = z
.string()
.nonempty("Key is required")
.regex(/^\w+$/, "Keys can only use alphanumeric characters and underscores");
export const EnvironmentVariableUpdaterSchema = z.discriminatedUnion("type", [
z.object({
type: z.literal("user"),
userId: z.string(),
}),
z.object({
type: z.literal("integration"),
integration: z.string(),
}),
]);
export type EnvironmentVariableUpdater = z.infer<typeof EnvironmentVariableUpdaterSchema>;
export const CreateEnvironmentVariables = z.object({
override: z.boolean(),
environmentIds: z.array(z.string()),
isSecret: z.boolean().optional(),
parentEnvironmentId: z.string().optional(),
variables: z.array(z.object({ key: EnvironmentVariableKey, value: z.string() })),
lastUpdatedBy: EnvironmentVariableUpdaterSchema.optional(),
});
export type CreateEnvironmentVariables = z.infer<typeof CreateEnvironmentVariables>;
export type CreateResult =
| {
success: true;
}
| {
success: false;
error: string;
variableErrors?: { key: string; error: string }[];
};
export const EditEnvironmentVariable = z.object({
id: z.string(),
values: z.array(
z.object({
environmentId: z.string(),
value: z.string(),
})
),
keepEmptyValues: z.boolean().optional(),
lastUpdatedBy: EnvironmentVariableUpdaterSchema.optional(),
});
export type EditEnvironmentVariable = z.infer<typeof EditEnvironmentVariable>;
export const DeleteEnvironmentVariable = z.object({
id: z.string(),
environmentId: z.string().optional(),
});
export type DeleteEnvironmentVariable = z.infer<typeof DeleteEnvironmentVariable>;
export const DeleteEnvironmentVariableValue = z.object({
id: z.string(),
environmentId: z.string(),
});
export type DeleteEnvironmentVariableValue = z.infer<typeof DeleteEnvironmentVariableValue>;
export const EditEnvironmentVariableValue = z.object({
id: z.string(),
environmentId: z.string(),
value: z.string(),
lastUpdatedBy: EnvironmentVariableUpdaterSchema.optional(),
});
export type EditEnvironmentVariableValue = z.infer<typeof EditEnvironmentVariableValue>;
export type Result =
| {
success: true;
}
| {
success: false;
error: string;
};
export type ProjectEnvironmentVariable = {
key: string;
values: {
value: string;
environment: {
id: string;
type: RuntimeEnvironmentType;
};
}[];
};
export type EnvironmentVariable = {
key: string;
value: string;
};
export type EnvironmentVariableWithSecret = EnvironmentVariable & {
isSecret: boolean;
};
export interface Repository {
create(projectId: string, options: CreateEnvironmentVariables): Promise<CreateResult>;
edit(projectId: string, options: EditEnvironmentVariable): Promise<Result>;
editValue(projectId: string, options: EditEnvironmentVariableValue): Promise<Result>;
getProject(projectId: string): Promise<ProjectEnvironmentVariable[]>;
/**
* Fetch and decrypt only the given env var values (for dashboard display of non-secret rows).
* Map keys are `${environmentId}:${variableKey}`.
*/
getVariableValuesForKeys(
projectId: string,
items: Array<{ environmentId: string; key: string }>
): Promise<Map<string, string>>;
/**
* Get the environment variables for a given environment, it does NOT return values for secret variables
*/
getEnvironmentWithRedactedSecrets(
projectId: string,
environmentId: string
): Promise<EnvironmentVariableWithSecret[]>;
/**
* Get the environment variables for a given environment
*/
getEnvironment(projectId: string, environmentId: string): Promise<EnvironmentVariable[]>;
/**
* Return all env vars, including secret variables with values. Should only be used for executing tasks.
*/
getEnvironmentVariables(projectId: string, environmentId: string): Promise<EnvironmentVariable[]>;
delete(projectId: string, options: DeleteEnvironmentVariable): Promise<Result>;
deleteValue(projectId: string, options: DeleteEnvironmentVariableValue): Promise<Result>;
}