mantil-io / mantil

Build your AWS Lambda-based Go backends quicker than ever
https://www.mantil.com
MIT License
109 stars 3 forks source link

Add option for private stage routes #101

Closed IvanVlasic closed 2 years ago

IvanVlasic commented 2 years ago

Adding new stage should also generate private and public key pair which can then be used for authorization on stage api.

User should have option to decide if routes should be private or public through environment configuration.

IvanVlasic commented 2 years ago

Dodao sam opciju da se za neki stage lambda moze napraviti privatnom.

Kod kreiranja stagea generiram privatni i javni kljuc te lambda authorizer koji se dalje koriste za autorizaciju.

Ako korisnik u svom environment fajlu za neku funkciju stavi da je private u njezinim requestima je potrebna autorizacija jwt tokenom.

Tu sam kratko bio zapeo na problemu da se u slucaju brisanja private polja, tj prebacivanja apia u javni terraform bunio s greskom poput ove

Error: Provider produced inconsistent final plan
│ 
│ When expanding the plan for module.title-api.aws_api_gateway_deployment.dam_services_rest_api to include new values learned so far during apply, provider
│ "registry.terraform.io/hashicorp/aws" produced an invalid new value for .triggers["redeployment"]: was cty.StringVal("bb7cc004678be1cc91507b0d0824e63fceaaaa42"), but now
│ cty.StringVal("6e533493f10740ba9c06ad2024c78771efdea841").
│ 
│ This is a bug in the provider, which should be reported in the provider's own issue tracker.

Nasao sam dosta issuea na terraform githubu vezano uz ovo, npr ovo ili ovo.

Koliko vidim tu je opet neki problem sa aws eventual consistencyjem pa se ti hashevi za resurse iz nekog razloga krivo racunaju kada se nesto u triggeru za redeployment promjeni (u ovom slucaju ruta jer se mjenja polje za autorizaciju).

To sam rjesio tako da sam iz redeployment triggera maknuo sve rute i integracije i ostavio samo local.integrations, to jest nas lokalni objekt preko kojeg kreiramo rute i integracije. Pretpostavka mi je da ce promjenom podataka u tom objektu doci i do promjena ruta i integracija pa ce biti potreban redeploy. To je rjesilo problem buduci da se vise ne koriste aws resursi za izracun hasha.

IvanVlasic commented 2 years ago

This is done, together with necessary documentation so I'm going to close the issue.