mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-07-24 21:11:53 +00:00
fix(ui): make OCI credentials regionless
This commit is contained in:
@@ -0,0 +1 @@
|
||||
OCI provider E2E tests no longer require or submit a region when adding or updating credentials
|
||||
-10
@@ -48,16 +48,6 @@ export const OracleCloudCredentialsForm = ({
|
||||
variant="bordered"
|
||||
isRequired
|
||||
/>
|
||||
<WizardInputField
|
||||
control={control}
|
||||
name={ProviderCredentialFields.OCI_REGION}
|
||||
type="text"
|
||||
label="Region"
|
||||
labelPlacement="inside"
|
||||
placeholder="e.g. us-ashburn-1"
|
||||
variant="bordered"
|
||||
isRequired
|
||||
/>
|
||||
<WizardTextareaField
|
||||
control={control}
|
||||
name={ProviderCredentialFields.OCI_KEY_CONTENT}
|
||||
|
||||
@@ -180,7 +180,6 @@ export const useCredentialsForm = ({
|
||||
[ProviderCredentialFields.OCI_FINGERPRINT]: "",
|
||||
[ProviderCredentialFields.OCI_KEY_CONTENT]: "",
|
||||
[ProviderCredentialFields.OCI_TENANCY]: providerUid || "",
|
||||
[ProviderCredentialFields.OCI_REGION]: "",
|
||||
[ProviderCredentialFields.OCI_PASS_PHRASE]: "",
|
||||
};
|
||||
case "mongodbatlas":
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
import { describe, expect, it, vi } from "vitest";
|
||||
|
||||
vi.mock("@/lib", () => ({
|
||||
getFormValue: (formData: FormData, field: string) => formData.get(field),
|
||||
filterEmptyValues: (obj: Record<string, unknown>) =>
|
||||
Object.fromEntries(
|
||||
Object.entries(obj).filter(([, value]) => {
|
||||
if (value === null || value === undefined) return false;
|
||||
if (typeof value === "string" && value.trim() === "") return false;
|
||||
return true;
|
||||
}),
|
||||
),
|
||||
}));
|
||||
|
||||
import { buildOracleCloudSecret } from "./build-credentials";
|
||||
import { ProviderCredentialFields } from "./provider-credential-fields";
|
||||
|
||||
describe("buildOracleCloudSecret", () => {
|
||||
it("builds OCI API key credentials without region", () => {
|
||||
const formData = new FormData();
|
||||
const keyContent =
|
||||
"-----BEGIN PRIVATE KEY-----\nMIIEvQ...\n-----END PRIVATE KEY-----";
|
||||
|
||||
formData.set(ProviderCredentialFields.OCI_USER, "ocid1.user.oc1..example");
|
||||
formData.set(ProviderCredentialFields.OCI_FINGERPRINT, "aa:bb:cc:dd");
|
||||
formData.set(ProviderCredentialFields.OCI_KEY_CONTENT, keyContent);
|
||||
formData.set(
|
||||
ProviderCredentialFields.OCI_TENANCY,
|
||||
"ocid1.tenancy.oc1..example",
|
||||
);
|
||||
|
||||
const secret = buildOracleCloudSecret(formData);
|
||||
|
||||
expect(secret).toEqual({
|
||||
[ProviderCredentialFields.OCI_USER]: "ocid1.user.oc1..example",
|
||||
[ProviderCredentialFields.OCI_FINGERPRINT]: "aa:bb:cc:dd",
|
||||
[ProviderCredentialFields.OCI_KEY_CONTENT]: btoa(keyContent),
|
||||
[ProviderCredentialFields.OCI_TENANCY]: "ocid1.tenancy.oc1..example",
|
||||
});
|
||||
expect(secret).not.toHaveProperty(ProviderCredentialFields.OCI_REGION);
|
||||
expect(secret).not.toHaveProperty("regions");
|
||||
});
|
||||
});
|
||||
@@ -389,10 +389,6 @@ export const buildOracleCloudSecret = (
|
||||
[ProviderCredentialFields.OCI_TENANCY]:
|
||||
providerUid ||
|
||||
getFormValue(formData, ProviderCredentialFields.OCI_TENANCY),
|
||||
[ProviderCredentialFields.OCI_REGION]: getFormValue(
|
||||
formData,
|
||||
ProviderCredentialFields.OCI_REGION,
|
||||
),
|
||||
[ProviderCredentialFields.OCI_PASS_PHRASE]: getFormValue(
|
||||
formData,
|
||||
ProviderCredentialFields.OCI_PASS_PHRASE,
|
||||
|
||||
@@ -280,7 +280,6 @@ export type OCICredentials = {
|
||||
[ProviderCredentialFields.OCI_FINGERPRINT]: string;
|
||||
[ProviderCredentialFields.OCI_KEY_CONTENT]: string;
|
||||
[ProviderCredentialFields.OCI_TENANCY]: string;
|
||||
[ProviderCredentialFields.OCI_REGION]: string;
|
||||
[ProviderCredentialFields.OCI_PASS_PHRASE]?: string;
|
||||
[ProviderCredentialFields.PROVIDER_ID]: string;
|
||||
};
|
||||
|
||||
Vendored
-1
@@ -134,7 +134,6 @@ declare global {
|
||||
E2E_OCI_USER_ID?: string;
|
||||
E2E_OCI_FINGERPRINT?: string;
|
||||
E2E_OCI_KEY_CONTENT?: string;
|
||||
E2E_OCI_REGION?: string;
|
||||
|
||||
// E2E Alibaba Cloud
|
||||
E2E_ALIBABACLOUD_ACCOUNT_ID?: string;
|
||||
|
||||
@@ -220,3 +220,23 @@ users:
|
||||
expect(result.success).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("addCredentialsFormSchema - oraclecloud", () => {
|
||||
const BASE_OCI_VALUES = {
|
||||
[ProviderCredentialFields.PROVIDER_ID]: "provider-oci-1",
|
||||
[ProviderCredentialFields.PROVIDER_TYPE]: "oraclecloud",
|
||||
[ProviderCredentialFields.OCI_USER]: "ocid1.user.oc1..example",
|
||||
[ProviderCredentialFields.OCI_FINGERPRINT]: "aa:bb:cc:dd",
|
||||
[ProviderCredentialFields.OCI_KEY_CONTENT]:
|
||||
"-----BEGIN PRIVATE KEY-----\nMIIEvQ...\n-----END PRIVATE KEY-----",
|
||||
[ProviderCredentialFields.OCI_TENANCY]: "ocid1.tenancy.oc1..example",
|
||||
} as const;
|
||||
|
||||
it("accepts OCI API key credentials without region", () => {
|
||||
const schema = addCredentialsFormSchema("oraclecloud");
|
||||
|
||||
const result = schema.safeParse(BASE_OCI_VALUES);
|
||||
|
||||
expect(result.success).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -288,9 +288,6 @@ export const addCredentialsFormSchema = (
|
||||
[ProviderCredentialFields.OCI_TENANCY]: z
|
||||
.string()
|
||||
.min(1, "Tenancy OCID is required"),
|
||||
[ProviderCredentialFields.OCI_REGION]: z
|
||||
.string()
|
||||
.min(1, "Region is required"),
|
||||
[ProviderCredentialFields.OCI_PASS_PHRASE]: z
|
||||
.union([z.string(), z.literal("")])
|
||||
.optional(),
|
||||
|
||||
Reference in New Issue
Block a user