Skip to content

Commit

Permalink
Merge pull request #2433 from Infisical/daniel/aws-sm-secrets-prefix
Browse files Browse the repository at this point in the history
feat(integrations): aws secrets manager secrets prefixing support
  • Loading branch information
DanielHougaard authored Sep 16, 2024
2 parents eb00232 + 6fc17a4 commit 11927f3
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 32 deletions.
35 changes: 5 additions & 30 deletions backend/src/services/integration-auth/integration-app-list.ts
Original file line number Diff line number Diff line change
Expand Up @@ -242,37 +242,12 @@ const getAppsGithub = async ({ accessToken }: { accessToken: string }) => {
};
}

const octokit = new Octokit({
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
const repos = (await new Octokit({
auth: accessToken
});

const getAllRepos = async () => {
let repos: GitHubApp[] = [];
let page = 1;
const perPage = 100;
let hasMore = true;

while (hasMore) {
const response = await octokit.request(
"GET /user/repos{?visibility,affiliation,type,sort,direction,per_page,page,since,before}",
{
per_page: perPage,
page
}
);

if ((response.data as GitHubApp[]).length > 0) {
repos = repos.concat(response.data as GitHubApp[]);
page += 1;
} else {
hasMore = false;
}
}

return repos;
};

const repos = await getAllRepos();
}).paginate("GET /user/repos{?visibility,affiliation,type,sort,direction,per_page,page,since,before}", {
per_page: 100
})) as GitHubApp[];

const apps = repos
.filter((a: GitHubApp) => a.permissions.admin === true)
Expand Down
18 changes: 16 additions & 2 deletions frontend/src/pages/integrations/aws-secret-manager/create.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ export default function AWSSecretManagerCreateIntegrationPage() {
const [tagKey, setTagKey] = useState("");
const [tagValue, setTagValue] = useState("");
const [kmsKeyId, setKmsKeyId] = useState("");
const [secretPrefix, setSecretPrefix] = useState("");

// const [path, setPath] = useState('');
// const [pathErrorText, setPathErrorText] = useState('');
Expand Down Expand Up @@ -165,6 +166,7 @@ export default function AWSSecretManagerCreateIntegrationPage() {
]
}
: {}),
...(secretPrefix && { secretPrefix }),
...(kmsKeyId && { kmsKeyId }),
mappingBehavior: selectedMappingBehavior
}
Expand Down Expand Up @@ -325,7 +327,7 @@ export default function AWSSecretManagerCreateIntegrationPage() {
</Switch>
</div>
{shouldTag && (
<div className="mt-4">
<div className="mt-4 flex justify-between">
<FormControl label="Tag Key">
<Input
placeholder="managed-by"
Expand All @@ -342,10 +344,20 @@ export default function AWSSecretManagerCreateIntegrationPage() {
</FormControl>
</div>
)}

<FormControl label="Secret Prefix" className="mt-4">
<Input
value={secretPrefix}
onChange={(e) => setSecretPrefix(e.target.value)}
placeholder="INFISICAL_"
/>
</FormControl>

<FormControl label="Encryption Key" className="mt-4">
<Select
value={kmsKeyId}
onValueChange={(e) => {
if (e === "no-keys") return;
setKmsKeyId(e);
}}
className="w-full border border-mineshaft-500"
Expand All @@ -363,7 +375,9 @@ export default function AWSSecretManagerCreateIntegrationPage() {
);
})
) : (
<div />
<SelectItem isDisabled value="no-keys" key="no-keys">
No KMS keys available
</SelectItem>
)}
</Select>
</FormControl>
Expand Down

0 comments on commit 11927f3

Please sign in to comment.