README
soajs
SOAJS is an open source dream framework that empowers building crazy fast the API-nization layer between the product frontend (UI/UX) and backend (business logic).
Some of soajs advantages:
- Develop enterprise-grade APIs that are super fast, secured by design, scalable and multitenant.
- Focus on building your product without wasting your time building the api layer and end up stuck maintaining it.
- Standardize your APIs from day one while giving full flexibility to engineers to code the business logic layer as well as UI/UX layer.
- Create homogeneity and never worry about the consequences of loosing members of your engineering team.
- Become hyper agile and achieve high velocity while building satellite teams without facing any coherency problems among the services.
Some of soajs features:
Build your product APIs with SOAJS and take advantage of tons of features that usually take months of work from your engineering team. Now you can be done within minutes.
- Multi service with cloud self awareness
- Multi project, environment, and configuration
- Input Mapping, Formatting, and Validation (IMFV)
- Security: oAuth, device and geo
- Multitenancy & productization
- User Registration & Access Control (URAC)
- Admin & maintenance dashboard
1. Multi service with cloud self awareness
soajs gives you out of the box a service oriented architecture with self awareness among your services.
- Improve performance
- Allows distribution of services
- Be scalable, reliable and modular from day one
- Decreases infrastructure and development cost
2. Multi project, environment, and configuration
From day one
- Take advantage of multi environment capability. For example build a development, staging, and production environments.
- Enjoy the power and ease of configuring each environment from an infrastructure perspective including different devOps and techOps appetites.
- Have the ability to create and deploy multiple projects on top of these environments without any collision.
3. Input Mapping, Formatting, and Validation (IMFV)
More than 50% of your API code is to collect, format, and validate the passed parameters from different sources (query, body, header, cookies, session, local config, and tenant or user specific service config ….)
IMFV does it all for you. A simple json configuration and you are done.
IMFV is based on json schema, support multiple sources with priority, and default values.
- Multi type (string, integer, regex, etc..)
- Multi format (email, phone, datetime, alphanumeric, etc..)
- Complex schema (objects, arrays)
- Custom format, type and schemas
4. Security: oAuth, device and geo
soajs offers two security mechanism to protect your APIs from outside and unwanted access:
API access protection via oAuth 2.0
- Grant types: password, refresh_token
- Custom grant type
API access is key driven where each key is secured by:
- Expiration date
- Device access restriction
- Geo location access restriction
5. Multitenancy & productization
Package your services with different permissions and access controls and offer them as commercial products. Now that your services are productized, you can sell those products to different clients.
Create different tenants for your clients with applications that have different keys and expiry dates to use the productized services differently depending on the keys' configuration. Tenants use different products and products are used by different tenants.
This two way binding saves you lots of effort should you need to offer the same service to different clients that might also require you customize it for them.
6. User Registration & Access Control (URAC)
Soajs URAC is a service that manages all accounts for different tenants. This service is also equipped with an optional notification system in case registration accounts need to be verified, change email, and forgot password sections where invoked or if administrators add new Accounts.
Soajs URAC offers the ability to override the service access level as well as configuration for specific users regarding product packages and tenants applications.
Some of the URAC features
- Guest features
- Join
- Login
- Forgot password / reset password
- User features
- Logout
- My account
- Edit profile
- Change password
- Change email
- Admin features
- List users
- Add New User
- Edit User
- Change User Status
- Email Templates
- Join
- Forgot password
- Change Email
- Change User Status
- Add New User
7. Admin & maintenance dashboard
The Dashboard of SOAJS is built on AngularJs. The dashboard keeps you up to date with the multi environments services, tenants and Productization.
The Agent is a service that runs in the background and performs maintenance and update checks.
soajs agent
- send the soajs service topology (installed saojs service as well as packages versions to dashboard)
- trigger maintenance routes for all local soajs services
- send all local soajs services log to elastic search
- send soajs api call log to elastic search
- send OS, I/O, netwrok analytic information to dashboard
- Maintain self awareness among services and stay up to date
Service maintenance port
- Ability to reload environment registry configuration
- Ability to reload productization and multitenant configuration
- Heartbeat and functional check
More information is available on SOAJS website.
License
Copyright SOAJS All Rights Reserved.
Use of this source code is governed by an Apache license that can be found in the LICENSE file at the root of this repository.