How to build an enterprise app without an expensive IAM using Daml [2021]
📚Check out Daml Learning Center: https://bit.ly/LearnDaml 📖Join our forum and get started: https://bit.ly/tryDaml
Daml is a development framework for creating systems of record that securely connect across business processes and data boundaries while retaining privacy, guaranteeing data integrity, and enforcing strict authorization. Allowing such systems to cross boundaries — legal, regulatory, organizational, or other — enables them to form seamless economic networks.
Radically simpler #IAM (Identity management system) and #RBAC (Role-based access control) using #DAML
POC of a DAML model for the scenario of an employee making a proposal to a company on the behalf of their employer, with the employees of the other company accepting or rejecting the proposal. It is designed to be an example of how DAML can separate the company party from the employee parties who can act on behalf of it, without having to rely on an external IAM/RBAC.
Included in this repo is a DAML model as well as a DAML Trigger that is run as each company party.
Each company has a public and a private contract. A company can have any number of employees who are completely private to other companies. Employees are given access from the company to perform various actions on, or on behalf of the company. After bootstrapping, the company party does not need to be used to perform any action.
The proposal workflow:
An employee of a Company A can make a proposal to Company B Employees of Company B can then accept or reject the proposal When the proposal is accepted or rejected, a notification is sent to the employees of Company A.
The model:
The model separates the public space where information about the companies live, and the private space, where internal company information lives. The company’s private space is then split between the company and the employees, who can be authorized or delegated to perform different actions based on who the employee is. For example, the trigger currently del