mirror of
https://github.com/Dokploy/dokploy.git
synced 2026-07-14 02:15:23 +02:00
Remove .toLowerCase() transform from registryUsernameSchema. AWS ECR requires the username to be exactly 'AWS' (uppercase) for authentication. Docker Hub usernames are case-insensitive for login, so preserving case is safe for all providers. Closes #4632
76 lines
1.9 KiB
TypeScript
76 lines
1.9 KiB
TypeScript
import { apiCreateRegistry, apiTestRegistry } from "@dokploy/server/db/schema";
|
|
import { describe, expect, it } from "vitest";
|
|
|
|
describe("Registry Schema - Username case preservation (#4632)", () => {
|
|
const validBase = {
|
|
registryName: "AWS ECR",
|
|
password: "dXNlcm5hbWU6cGFzc3dvcmQ=", // dummy base64 token
|
|
registryUrl: "123456789.dkr.ecr.us-east-1.amazonaws.com",
|
|
registryType: "cloud" as const,
|
|
imagePrefix: null,
|
|
};
|
|
|
|
it("should preserve uppercase username (AWS ECR requires 'AWS')", () => {
|
|
const result = apiCreateRegistry.safeParse({
|
|
...validBase,
|
|
username: "AWS",
|
|
});
|
|
expect(result.success).toBe(true);
|
|
if (result.success) {
|
|
expect(result.data.username).toBe("AWS");
|
|
}
|
|
});
|
|
|
|
it("should not lowercase mixed-case usernames", () => {
|
|
const result = apiCreateRegistry.safeParse({
|
|
...validBase,
|
|
username: "MyUser",
|
|
});
|
|
expect(result.success).toBe(true);
|
|
if (result.success) {
|
|
expect(result.data.username).toBe("MyUser");
|
|
}
|
|
});
|
|
|
|
it("should still trim whitespace from username", () => {
|
|
const result = apiCreateRegistry.safeParse({
|
|
...validBase,
|
|
username: " AWS ",
|
|
});
|
|
expect(result.success).toBe(true);
|
|
if (result.success) {
|
|
expect(result.data.username).toBe("AWS");
|
|
}
|
|
});
|
|
|
|
it("should reject empty username", () => {
|
|
const result = apiCreateRegistry.safeParse({
|
|
...validBase,
|
|
username: "",
|
|
});
|
|
expect(result.success).toBe(false);
|
|
});
|
|
|
|
it("should also preserve case in apiTestRegistry", () => {
|
|
const result = apiTestRegistry.safeParse({
|
|
...validBase,
|
|
username: "AWS",
|
|
});
|
|
expect(result.success).toBe(true);
|
|
if (result.success) {
|
|
expect(result.data.username).toBe("AWS");
|
|
}
|
|
});
|
|
|
|
it("should accept lowercase usernames too (backward compat)", () => {
|
|
const result = apiCreateRegistry.safeParse({
|
|
...validBase,
|
|
username: "myuser",
|
|
});
|
|
expect(result.success).toBe(true);
|
|
if (result.success) {
|
|
expect(result.data.username).toBe("myuser");
|
|
}
|
|
});
|
|
});
|