NASA-IMPACT / veda-backend

Backend services for VEDA
Other
9 stars 5 forks source link

feat: WIP Features API #346

Open ranchodeluxe opened 3 months ago

ranchodeluxe commented 3 months ago

Issue

https://github.com/NASA-IMPACT/veda-architecture/issues/374

What?

Why?

As described in this ADR, in order to allow seamless and more flexible CloudFront behaviour configuration across various Veda backend services, it makes sense to include the Veda Features API with Veda Backend.

The original Features API IAC was written in Terraform using AWS ECS to allow for more scalability. Since we are expecting greatly reduced user traffic ECS is not necessary and API Gateways and Lambdas may be more suitable. As part of the work to include the Features API in Veda Backend, this will require both refactoring to IAC to use Lambdas as well as using CDK.

Testing?

In progress: most things seem to work but my custom domain is not resolving 😦

ranchodeluxe commented 3 months ago

I've deployed the whole backend to another VPC. Currently cannot get my custom domain to resolve. Could use some help on that. But requests to the API Gateway and Lambda (and Lambda DB setup) all work fine

Who might be best to help there @smohiudd?

smohiudd commented 3 months ago

https://github.com/NASA-IMPACT/veda-backend/pull/346#issuecomment-2030635624

Sure I can help with that

botanical commented 2 months ago

I've deployed the whole backend to another VPC. Currently cannot get my custom domain to resolve. Could use some help on that. But requests to the API Gateway and Lambda (and Lambda DB setup) all work fine

Who might be best to help there @smohiudd?

It needed a record in the route table! It should be good to go now.

ranchodeluxe commented 2 months ago

everything seems to be working fine but need to look into :

  1. the FeatureAPISettings.root_path is NOT being populated correctly from os env vars (or even when I hardcode the settings attribute directly). For that matter the /api/raster one isn't either

  2. the CF domain HOST header behaviour seems wrong for /api/features/ b/c it returns API Gateway domain when sending back. but /api/stac/ works fine