add secretGroup to integrationController.ts

This commit is contained in:
Chukwunonso Frank
2023-07-26 18:19:54 +01:00
parent c2be6674b1
commit 46545c1462
9 changed files with 19 additions and 11 deletions

View File

@@ -27,7 +27,8 @@ export const createIntegration = async (req: Request, res: Response) => {
owner,
path,
region,
secretPath
secretPath,
secretGroup
} = req.body;
const folders = await Folder.findOne({
@@ -61,6 +62,7 @@ export const createIntegration = async (req: Request, res: Response) => {
path,
region,
secretPath,
secretGroup,
integration: req.integrationAuth.integration,
integrationAuth: new Types.ObjectId(integrationAuthId)
}).save();

View File

@@ -2109,6 +2109,7 @@ const syncSecretsCodefresh = async ({
}
);
};
/* Sync/push [secrets] to Northflank
* @param {Object} obj
* @param {IIntegration} obj.integration - integration details

View File

@@ -168,6 +168,7 @@ const integrationSchema = new Schema<IIntegration>(
default: "/",
},
secretGroup: {
// northflank-specific service
type: String,
default: null,
},

View File

@@ -37,6 +37,7 @@ router.post(
body("owner").trim(),
body("path").trim(),
body("region").trim(),
body("secretGroup").isString().trim(),
validateRequest,
integrationController.createIntegration
);

View File

@@ -22,7 +22,8 @@ const integrationSlugNameMapping: Mapping = {
"hashicorp-vault": "Vault",
"cloudflare-pages": "Cloudflare Pages",
"codefresh": "Codefresh",
bitbucket: "BitBucket"
bitbucket: "BitBucket",
northflank: "Northflank"
};
const envMapping: Mapping = {

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -4,7 +4,7 @@ interface Props {
integrationAuthId: string;
isActive: boolean;
secretPath: string;
secretGroup: string;
secretGroup?: string;
app: string | null;
appId: string | null;
sourceEnvironment: string;

View File

@@ -33,7 +33,7 @@ export default function NorthflankCreateIntegrationPage() {
const [secretPath, setSecretPath] = useState("/");
const [targetApp, setTargetApp] = useState("");
const [secretGroupList, setSecretGroupList] = useState<any>([]);
const [targetSecretGroup, setTargetSecretGroup] = useState<any>("");
const [targetSecretGroup, setTargetSecretGroup] = useState("");
const [isLoading, setIsLoading] = useState(false);
@@ -57,10 +57,13 @@ export default function NorthflankCreateIntegrationPage() {
if (integrationAuthApps) {
if (integrationAuthApps.length > 0) {
const selectedApp = integrationAuthApps?.filter((integrationAuthApp) => integrationAuthApp.name === targetApp);
setSecretGroupList(selectedApp[0].secretGroups);
setTargetSecretGroup(selectedApp[0]?.secretGroups[0]);
} else {
setTargetSecretGroup("none");
if (selectedApp.length > 0) {
setSecretGroupList(selectedApp[0].secretGroups);
setTargetSecretGroup(selectedApp[0]?.secretGroups[0]);
} else {
setSecretGroupList([]);
setTargetSecretGroup("none");
}
}
}
}, [targetApp])
@@ -169,7 +172,7 @@ export default function NorthflankCreateIntegrationPage() {
</SelectItem>
))
) : (
<SelectItem value="none" key="target-secret-group-none">
<SelectItem value="No secret groups found" key="target-app-none">
No secret groups found
</SelectItem>
)}
@@ -180,7 +183,7 @@ export default function NorthflankCreateIntegrationPage() {
color="mineshaft"
className="mt-4"
isLoading={isLoading}
isDisabled={integrationAuthApps.length === 0}
isDisabled={integrationAuthApps.length === 0 && secretGroupList === 0}
>
Create Integration
</Button>

View File

@@ -19,7 +19,6 @@
]
},
"devDependencies": {
"@types/picomatch": "^2.3.0",
"eslint": "^8.29.0",
"husky": "^8.0.2"
}