ruimarinho / gsts

Obtain and store AWS STS credentials to interact with Amazon services by authenticating via G Suite SAML.
MIT License
221 stars 38 forks source link

Add nix flake #75

Open kczulko opened 1 year ago

kczulko commented 1 year ago

Hello,

I was having some problems with aws-google-auth (constantly returning Invalid username or password) and one of its github issues pointed me to this project. Since aws-google-auth got nixified some time ago and gsts wasn't, I decided to write some nix expr for gsts (I'm a nixos user) and publish it to the upstream. Not sure how good is it but it works.

Notes:

  1. playwright installation script wants to download browser (?) so I had to disable this step via env variable. More details here.
  2. User has to explicitly put browser path while running gsts (see the devShell setup - chromium was added there and its path is accessible via env variable).

Best regards, Karol

ruimarinho commented 1 year ago

@kczulko why wouldn't the browser download component work automatically?

kczulko commented 1 year ago

@ruimarinho I think that's because the buildPhase in nix is pure, in the meaning that downloading something at this stage is considered as a jailbrake. If this would be allowed than the build would become unpredictable (e.g. no clear way howto calculate artifact hash etc.).

ruimarinho commented 1 year ago

Is there an easy to test this via https://github.com/LnL7/nix-docker or similar on macOS?

kczulko commented 1 year ago

Is there an easy to test this via https://github.com/LnL7/nix-docker or similar on macOS?

Basically, in such case I was using cachix/install-nix-action like e.g. here. However, this slows down the build a little bit. For this case, I would suggest moving this to separate workflow (e.g. not required to be "green" for ongoing PRs), or just leave it without testing. The latter, in case of failures would get fixed by someone from community who wants to use this installation/build recipe.

dephiros commented 1 month ago

@ruimarinho @kczulko Just run into this recently while trying to install gsts on nixos. Any chance we can get this merged? 🙏

kczulko commented 1 month ago

@dephiros I am not using gsts now and it's not my top priority. You can either use my fork/branch or you may try to contribute to gsts mainline. There was no response from the maintainer for my last suggestion, which makes me think that adding gh workflow for checking this flake against arch matrix would be sufficient to merge this. I think so :thinking:

ruimarinho commented 1 month ago

I can merge this as is but without guarantees it will work in the future due to limited testing.

dephiros commented 1 month ago

@ruimarinho , seems like the node version is a bit old. I can help test it tomorrow with a newer version before we merge?

ruimarinho commented 1 month ago

Yep, that works for me! Thanks for the help.

dephiros commented 1 month ago

This does not go as I expected and definitely a bit outside of my wheel house:

As an alternative, I file a ticket with nixpkgs to add gsts. . This would also allow gsts to be installed with nix

Deliganli commented 1 month ago

I am very new to nodejs stack, apologies if sounds naive, is it feasable to upgrade the minimum nodejs version the project needs? That would enable the nix packaging and would also benefit the project with updates.