This repository contains a set of RESTful APIs for invoice management operations. It represents 'Invoice' as a target document and all the relevant CRUDs exposed via APIs. In addition, this repo includes one of possible solutions for document audit tracking, for this purpose Azure Function has been implemented based on the same 'Invoice' domain entity.
ASP.NET Core, Azure Cosmos DB, Azure Functions (Cosmos DB trigger)
- "actor-id" request header is passed to APIs just for demo purposes (to simulate multiple users)
- all audit log records are collected into separate Cosmos DB container
- only last update log information is a part of 'Invoice' document, which prevents from keeping a 'huge' document as a result of many updates