Access Control for Gospel Sounders Publishing Sites.
Due to the dearth of resources, we have chosen to design and build our systems in such a way that it can be possible to host them (including databases) for free (on free services) online. Also due to the scarcity of time, we have opted to re-use as much as possible, not only code, but any free part of any service that can serve as an implementation of any part of the design of any of our systems. For the present system we have used:
- Thingsboard
- Github pages
- Cors Proxy, cseco.co.ke:8080, cors.cseco.co.ke. Used to overcome chrome Cross-Origin issues.
- JSON Proxy - check jsonproxy server in rule rule chain. Required because rule nodes do not accept text as input. Also proxy for octokit.
Note
Thingsboard serves the dual purpose of providing an implementation of RBAC and free hosting
on Thingsboard. For security of the data, however, it is recommended that if and when resources shall avail, the thingsboard server be changed to a private one.
This access control system is intended to authenticate and authorize users on any GS publishing system (lessons, translation, main GS-publications, etc).
- Created tenant account on Thingsboard using things****@g****s.org (check vault for this email)
- Created
UserManagement
device profile - Created
UserManagement
Device inUserManagement
device profile - Saved tb credentials (tb_tenant_email, tb_tenant_password) in
server attributes
of device (so that they can only be accessible from rule chain). Other attributes:
- tb_tenant_email - tenant admin email
- tb_tenant_password - tenant admin password
- GitOwner GospelSounders - github organization
- GitRepo access_control_rule_chains - github repo
- GitRepoForApplications applications-list - github repo
- JSONPROXY https://jsonproxy.cseco.co.ke - server running jsonproxy (with github api proxy as well)
- SSLGitkey - github api key
- TBSERVER https://demo.thingsboard.io - tb server. So rulechains can be imported into any server
- APPLICATIONNAME GS Publications - name of customer
- Created relation for each ruleChain: FROM contains device
UserManagement
. Rule chains are pushed every time there is a change. They can be imported from github to any server. - Created ${APPLICATION NAME} customer
- Get token of public
UserManagement
device and put in application - Build
quasar build
and copydist/spa
to docs
Does not delete project files
User data will be deleted if account on thingsboard demo is deleted. Therefore this should be changed as soon as it is done.
- Editing Applications. Not enabled in tb API