An ACL package for Python Applications
PyIAM aims to be a package, which provides a framework for managing access to Resources (Python objects) in a system. The aim is to very generic and closely follow the IAM approach of GCP, which is a well proven system and provides a very good sepratation of concern to each part of the system.
ResourceType: An entity for which accesses are being managedResource: An actual instance of a resource typeAction: Some operation that can be performed on a Resource, the actions can be customizable however for now they would be limited to- Create
- Read
- Update
- Delete
Permissions: A combination of Resource and ActionRole: A group of permissions, it's not allowed to use permissions directly.Policies: A rule binding Actors/Groups to RolesGroups: A set of ActorsActor: An entity which is capable of performing an Action on a Resource, according to the permissions. It can be a user, a web service, a Python object, anything which satisfies the interface. Can be persisted in a storage, or in memory.
An Actor will be added to a Policy with a specific Role(s).
This Policy will be attached to a Resource, granting the Actor the Role on the Resource.