FW Serverside Addons

There are serverside addons and clientside "addons", clientside addons have their own documentation, and are very simple NPM packages made to work with Ember. For more information on clientside, please go to our documentation on that (TBD).

Introduction

An FW Serverside Addons (henceforth FW Addon) is a code package that we have developed to augment the FW API and to add specific functionality that encompasses abilities on the serverside. Each package has a specific functionality, to which all related tasks are similar. We have a couple of "core" addons that most or all apps use, and some "additional" addons that a few apps use for added functionality. Click each addon for more information about each addon.

Core Addons

While technically, these addons do not constitute the "core", which consists of the FW API, these addons are frequently installed and involve core functions, which would be difficult not to use in every app. Essentially, if your app doesn't use these, they probably will soon. Here they are:

  • Auth Core - This addon is built for data control, and the ability to log in and only see data they have access to. All apps have functionality from auth core, but currently they all receive auth core through Group Control, which is the only one that extends it.
  • Migration Core - This addon is used by every app, and it gives the ability to write and run database migrations to change the database in each app.
  • Mail Core - This addon extends PHP Mailer, and is the mailing system that our apps use to able to send emails or text messages. It is used by most, if not all of our current apps.

Additional Addons

We also have several "additional" addons, which add functionality, and may be used by several apps, but are definitely not used by every single one of our apps. These can be helpful ways to do niche things within the apps, and are worth checking out to add these features.

  • Access Control - This addon is the most popular of the additional addons, and it works, in conjunction with our Ember FW ACL clientside addon, to manage the access users have to individual, specific data entries on the database. It gives more control over what data certain users can and cannot see.
  • Image Core - This addon integrates images into the app, allowing the user to upload images to save to the database, and it handles all the back end difficulty with saving images.
  • PDF Core - This addon allows uploading and downloading of PDFs. It will allow the user to save the PDF file to the server folder of the app (not the database), and retrieve it from the server.

Loading Addons

There are a few places within the FW setup that addons can be loaded from. The FW system will first load them from the apps-dir/apps/app-name/addons directory, which is populated in the installation process (see next page for more details). Second, the FW System will check the dev-addons config value, which should be an array containing the names of the addons one is developing, and for these dev-addons, FW will load secondly from the fallback directory: apps-dir/addons. If every required addon is loaded in one of those two ways, the app will load just fine. Otherwise, a fatal error will be thrown that Missing Addon dependency for {app-name: addon-name}!

Moving Forward

Now that the basic understanding of an addon has been covered, before getting into the specifics of each individual addon and how it functions, there are a couple of things that need to be covered.

Most people, they will want to know how to use one of these addons within an app. There are two main categories of people who might be desiring to know about our addons. For all the basic information needed for installing, setting up, or otherwise using a serverside addon in general, go to Using Addons.

Some people will be wanting to edit our addons or even create new addons to work with them. For all the basic information about how addons are internally structured or how to develop the addons, go to Developing Addons.