The sdk package, found at, contains all the inner workings of the portal. This demotes the portal to a frontend realisation of the portal, whilst storing the core in a reusable package. This means that all the code that makes the portal work is in a reusable package, whilst the portal just uses this code and adds a frontend and API.

For the portal model to work, this support package is essential. Although the support package could be a part of the main portal site, this would make the creation of modules much less flexible. As is, any Laravel app which extends the module service provider and pulls in the support package can be integrated with the portal.

Without this package, modules would have to be developed within the portal. The support package holds the core sharable functionality to allow modules to be developed outside the portal framework. It also enables things like the module playground to work, which is simply a different realisation of the portal.

The support package has been split into features, some of which rely on others and some of which are standalone. This book aims to give an overview of the working and usage of each feature, to help you make the most of the power of the portal when developing modules, or creating new features for the portal.

A class reference can be found here:

Action: The 'trigger' system to allow for actions to be carried out based on events. When events in Laravel are fired, an action that was set up by a user can be triggered.

Activity: Allows for sets of module instances to be grouped to make a process. An activity can be thought of as a service delivered through the portal.

Activity Instance: A method of associating users completing an activity to the activity.

Authentication: Handles authenticating users, and controls the group/role/user logins

Authorization: Provides middleware to restrict access to modules and activities

Completion: Handles testing if module instances have been completed by users

Connection: Handles connections to any third party sites that modules need access to

DataPlatform: Set of models and repositories to interact with the data platform.

Events: Integrate events that may be fired into the framework

Filters: Handles creating, registering and testing filters against models

Helpers: Helper functions to speed up building within the portal ecosystem

Http: Register routes and frontend based middleware

Logic: Handles sets of filters to make groups of users/groups/roles

Module: Handles the creation and registration of a module

ModuleInstance: Handles creating an instance of a module to use in an activity

Permissions: Handles permissions for the site and for modules

Testing: Helpers for module tests

User: Handles anything to do with the database user