[autofix.ci] apply automated fixes

This commit is contained in:
autofix-ci[bot]
2025-04-26 07:40:07 +00:00
committed by GitHub
parent e6d0b7b4ee
commit c3986d7a08
4 changed files with 116 additions and 69 deletions

View File

@@ -9,7 +9,7 @@ import { fetchTemplateFiles } from "./github";
export interface Schema {
serverIp: string;
projectName: string;
};
}
export type DomainSchema = Pick<Domain, "host" | "port" | "serviceName"> & {
path?: string;
@@ -22,7 +22,7 @@ export interface Template {
content: string;
}>;
domains: DomainSchema[];
};
}
export interface GenerateJWTOptions {
length?: number;
@@ -65,17 +65,16 @@ export const generatePassword = (quantity = 16): string => {
*/
export function generateBase64(bytes = 32): string {
return randomBytes(bytes).toString("base64");
};
}
function safeBase64(str: string): string {
return str
.replace(/=/g, "")
.replace(/\+/g, "-")
.replace(/\//g, "_");
};
return str.replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
}
function objToJWTBase64(obj: any): string {
return safeBase64(Buffer.from(JSON.stringify(obj), "utf8").toString("base64"));
};
return safeBase64(
Buffer.from(JSON.stringify(obj), "utf8").toString("base64"),
);
}
export function generateJwt(options: GenerateJWTOptions = {}): string {
let { length, secret, payload = {} } = options;
@@ -88,16 +87,21 @@ export function generateJwt(options: GenerateJWTOptions = {}): string {
});
payload.iss || (payload.iss = "dokploy");
payload.iat || (payload.iat = Math.floor(Date.now() / 1000));
payload.exp || (payload.exp = Math.floor(new Date("2030-01-01T00:00:00Z").getTime() / 1000));
payload.exp ||
(payload.exp = Math.floor(
new Date("2030-01-01T00:00:00Z").getTime() / 1000,
));
const encodedPayload = objToJWTBase64({
iat: Math.floor(Date.now() / 1000),
exp: Math.floor(new Date("2030-01-01T00:00:00Z").getTime() / 1000),
...payload,
});
secret || (secret = randomBytes(32).toString("hex"));
const signature = safeBase64(createHmac("SHA256", secret)
.update(`${encodedHeader}.${encodedPayload}`)
.digest("base64"));
const signature = safeBase64(
createHmac("SHA256", secret)
.update(`${encodedHeader}.${encodedPayload}`)
.digest("base64"),
);
return `${encodedHeader}.${encodedPayload}.${signature}`;
}

View File

@@ -117,7 +117,9 @@ export function processValue(
return new Date(varName.slice(12)).getTime().toString();
}
if (varName.startsWith("timestamps:")) {
return Math.round(new Date(varName.slice(11)).getTime() / 1000).toString();
return Math.round(
new Date(varName.slice(11)).getTime() / 1000,
).toString();
}
if (varName === "randomPort") {
@@ -129,15 +131,19 @@ export function processValue(
}
if (varName.startsWith("jwt:")) {
const params:string[] = varName.split(":").slice(1);
const params: string[] = varName.split(":").slice(1);
if (params.length === 1 && params[0] && params[0].match(/^\d{1,3}$/)) {
return generateJwt({length: Number.parseInt(params[0], 10)});
return generateJwt({ length: Number.parseInt(params[0], 10) });
}
let [secret, payload] = params;
if (typeof payload === "string" && variables[payload]) {
payload = variables[payload];
}
if (typeof payload === "string" && payload.startsWith("{") && payload.endsWith("}")) {
if (
typeof payload === "string" &&
payload.startsWith("{") &&
payload.endsWith("}")
) {
try {
payload = JSON.parse(payload);
} catch (e) {
@@ -146,12 +152,12 @@ export function processValue(
console.error("Invalid JWT payload", e);
}
}
if (typeof payload !== 'object') {
if (typeof payload !== "object") {
payload = undefined;
}
return generateJwt({
secret: secret ? (variables[secret] || secret) : undefined,
payload: payload as any
secret: secret ? variables[secret] || secret : undefined,
payload: payload as any,
});
}