What OpenPlatform is: one portal for all your web applications
OpenPlatform is a ready-to-run portal for your web applications. Your people sign in once, see the applications they are allowed to use and open them from one place; the administrators manage users, groups, permissions and notifications from one screen. It is open source under the MIT licence, written with Total.js 5 and PostgreSQL, and the application is the repository totaljs/openplatform (version 5).
This section describes OpenPlatform (revision 5a54a85 of the repository).
What it gives you
- One sign-in for many applications. An application can be one of your own Total.js apps or any web application: OpenPlatform opens it with a signed token and the application asks OpenPlatform who the user is (see how an app connects).
- Users, groups and permissions. A user belongs to groups; a group decides which applications the user sees and which permission values each application receives (see groups and permissions).
- Notifications. Applications send notifications to their users through a small HTTP endpoint; the portal shows them and can email a digest of the unread ones (see notifications and the public API).
- Sessions the user controls. Each user can see and remove their own sessions and change their password.
- A setup screen for the administrators (
/setup/): users, groups, applications, settings, feedback and a dashboard with the visitors.
How the project is organized
OpenPlatform is a Total.js application with three plugins and a few controllers:
| Part | What it does | Source |
|---|---|---|
login plugin | the sign-in page, POST /api/login/ and POST /api/reset/ | plugins/login/ |
portal plugin | the portal for signed-in users (GET /*) | plugins/portal/ |
setup plugin | the administration screen and its API under /setup/ | plugins/setup/ |
| account API | /api/ actions for the session, the account, the apps, the notifications and the sessions of the user | controllers/api.js, schemas/account.js |
| app protocol | GET /verify/, POST /notify/, GET /session/ for the applications | controllers/verify.js |
| public API | GET /users/, uploads of images and the SOCKET /sync/ of several instances | controllers/api.js, controllers/socket.js |
The rest of the section: installing it, registering an application, the settings and the database. The official documentation is at docs.totaljs.com/openplatform, and the native client that Total.js 5 includes for the Open Platform protocol is in the recipe OPENCLIENT.