Role-based access control implemented with SQL's relations.
This was made completely only for playing around with sqlc + postgresql and docker compose.
This is not intended to be actually used as there might be some security flaws. Please note that this software wasn't tested for security in any other way than manually checking if a resource is limited only to a specific group.
I don't know why you would want to setup this, but oh boy it's easy (I'm just extremely lazy and don't want to reproduce things constantly).
git clone git@github.com:romeq/pac.git
# or alternatively via http:
# git clone https://github.com/romeq/pac.git
docker-compose up
Architecture for this is clearly rather simple. Therefore I'll just write it down.
Table name | Description |
---|---|
role |
Roles and their private information (such as roles' names) |
account |
Accounts and account related information |
account_to_role |
Account roles |
resource |
Resources's uuids and contents |
resource_to_role |
Keeps track of what roles are allowed to access a specific resource |
Column name | Description |
---|---|
role_uuid |
Unique identifier for role, used to refer a specific record |
name |
Name of the role |
Column name | Description |
---|---|
account_uuid |
Unique identifier for account, used to refer a specific record |
name |
Username of the account |
Column name | Description |
---|---|
account_uuid |
References account -table's role_uuid -column |
role_uuid |
References role -table's role_uuid -column |
Column name | Description |
---|---|
resource_uuid |
Unique identifier for resource, primarily used to refer a specific record |
content |
Resource content (string) |
Column name | Description |
---|---|
resource_uuid |
References resource -table's role_uuid -column |
role_uuid |
References role -table's role_uuid -column |