getlift / lift

Expanding Serverless Framework beyond functions using the AWS CDK
MIT License
912 stars 109 forks source link

Add option to name GSI properties and support string/number types #343

Open cmcnicholas opened 1 year ago

cmcnicholas commented 1 year ago

This PR adds support for configuring the GSI properties (if necessary) in a controlled way.

Two use cases I have are:

  1. supporting well named keys as per standards according to wider dev team (not my choice), it also tackles the discussion here: #76 about fine grained control of the keys

  2. I need to support numeric GSI's, this is because I want to use update expressions to do ADD/SUBTRACT without having to read out the record, then perform a round trip (and potential race condition) for subsequent writes.

If this PR goes against any sort of standards for property definitions but you like it then just let me know what I need to do to improve this please. Duplicating the GSI-X-YY multiple times for the enum looks dirty, would be happy to just make that "string" but considered that it can be correctly schema'd so left it in.