basti-app / basti

✨ Securely connect to RDS, Elasticache, and other AWS resources in VPCs with no idle cost
https://www.basti.app
MIT License
351 stars 18 forks source link

Add CDK support #53

Closed bobveringa closed 1 year ago

bobveringa commented 1 year ago

Proposed Changes

This PR adds initial support for CDK to Basti. It is currently still a draft for gathering feedback.

Related Issue

[Closes #48]

Changes

The .eslintrc.json file was modified because WebStorm as going crazy about line endings and this made it silent.

It contains a README.md but only as template.

Users have the option of explicitly setting the ID of the basti instance. If the user does not provide one, it generates one instead based on the sha1 hash of the construct ID. This is "random enough" for the usecase.

The basti instance itself is also configurable with a custom machine image and instance type. This could be expanded more in the future.

The subnet is selected automatically to whatever Public subnet cloudformation things it can use. However, users do have the option to pass a specific SubnetSelection object so this can be modified if needed.

The BastiInstance also has an additional method called grantBastiCliConnect this function takes IGrantable as a parameter and allows developers to grant roles (and IAM users) permissions to connect to the basti instance using the basti CLI. In the future, the construct might support other methods that would allow other services to connect. But for now, this will suffice.

bobveringa commented 1 year ago

@BohdanPetryshyn If you could provide some feedback on this while I continue to work on setting up tests, that would be much appreciated.

BohdanPetryshyn commented 1 year ago

@bobveringa, I will be able to review the PR tomorrow morning. Thank you!

bobveringa commented 1 year ago

A couple of things that still need to be figured out. Setting the author correctly so that it can be published to PyPI. We also need to determine who is the official maintainer of this package. And maybe we have to set up GitHub actions for basti in general?

BohdanPetryshyn commented 1 year ago

maybe we have to set up GitHub actions for basti in general

100%, it was sometimes hard for me to publish even a single Basti CLI package manually

who is the official maintainer of this package

I thought I will be maintaining everything unless you are willing to help with this 🤗

bobveringa commented 1 year ago

Setting up actions might be slightly more complicated with the monorepo structure, but I doubt basti is the only package using that approach, so there must be some solution.

Yeah, it makes sense to have you as maintainer for everything. In that case, you might need to set up a PyPI account, I'll investigate this and make sure this can be done swiftly.

BohdanPetryshyn commented 1 year ago

Thank you @bobveringa! I have a very busy day today so I'll only be able to reply to your comments in the evening or tomorrow morning

bobveringa commented 1 year ago

That's ok, I'm, not in a hurry.

I also noticed that the package-lock.json should probably be removed from the basti package. https://docs.npmjs.com/cli/v9/using-npm/workspaces

bobveringa commented 1 year ago

Yeah, it makes sense to have you as maintainer for everything. In that case, you might need to set up a PyPI account, I'll investigate this and make sure this can be done swiftly.

Looks like there is a package by AWS for this jsii-release https://www.npmjs.com/package/jsii-release after the package is finalized we can go over how to set this up if you'd like.

BohdanPetryshyn commented 1 year ago

I also noticed that the package-lock.json should probably be removed from the basti package.

You're right. Could you please, do this in your PR?

BohdanPetryshyn commented 1 year ago

@bobveringa, we have only two unresolved conversations here. We're good to go after resolving these 🎉