We had several people which provide tiered access to their system to end users for Salesforce system and manage their access and log. Traditional API gateways required either a single gateway user to authenticate but that makes it difficult to manage with single user as every client has access to what the API user has access to. The other way is to create multiple users with different tiers. However, this becomes difficult while adding the addons for the specific user inside a tier.
What it does
This code helps you to manage tiered access at per client level using single, monitor what the clients are accessing what resources and logs them to Salesforce or Dynamo DB or SQS Queue.
How I built it
This is built using AWS API Gateway for issuing API requests and AWS lamda which queries a DB storing resources accessible to unique CustomerKey providing single access to manage keys.
Challenges I ran into
The main challenge was to understand promises which work differently than Heroku.
Accomplishments that I'm proud of
What I learned
I was already working on AWS lambda from past 2 weeks but I learned a lot about DynamoDB, SQS, SNS, and their pricing structure.
What's next for Salesforce API Access Manager, Monitor & Logger
Right now all the permission are stored in a Dynamo DB so I am going to create a page where I can see all these permissions and manage them.