Edit this topic

Shell

:

:

:

: /modules/core/multi-tenancy/lib/shell.js

: https://github.com/DecentCMS/DecentCMS/blob/master/modules/core/multi-tenancy/lib/shell.js

Shell

Kind: global class

new Shell(options)

A shell is the representation of a tenant in the system. A shell has its own enabled services, that can be required by modules running in its context.

Param Type Description
options Object
[options.name] String The name of the tenant.
[options.rootPath] String The path to the site's folder.
[options.settingsPath] String The path to the settings file for this tenant.
[options.host] String The host name under which the tenant answers.
[options.debugHost] String A host name under which the tenant answers, that causes request.debug to be true.
[options.port] Number The port to which the tenant answers.
[options.https] Boolean True if the site must use HTTPS.
[options.cert] String The path to the SSL certificate to use with this tenant.
[options.key] String The path to the SSL key to use with this tenant.
[options.pfx] String The path to the pfx SSL certificate to use with this tenant.
[options.features] Array The list of enabled feature names on this tenant.
[options.availableModules] Object The list of available module manifests.
[options.services] Object The enabled services keyed by service name.
[options.active] Boolean True if the tenant is active.

shell.canHandle(request) ⇒ Boolean

Determines if the shell can handle that request.

Kind: instance method of Shell
Returns: Boolean - true if the shell can handle the request.

Param Description
request The request

shell.enable(state)

Enables or disables the tenant.

Kind: instance method of Shell

Param Type Description
state Boolean If provided, sets the enabled state of the tenant. Otherwise, enables the tenant.

shell.disable()

Disables the tenant.

Kind: instance method of Shell

shell.load()

Scopes the shell, then loads all enabled services in each module, including modules and themes that are specific to this tenant.

Kind: instance method of Shell

shell.loadModule(moduleName)

Loads all the services in the module under the path passed as a parameter. Services are loaded while respecting the dependency order.

Kind: instance method of Shell

Param Type Description
moduleName String The name of the module to load.

shell.middleware(request, response, next)

Middleware for use, for example, with Express.

Kind: instance method of Shell

Param Type Description
request http.IncomingMessage Request
response http.ServerResponse Response
next function The callback.

shell.handleRequest(request, response, next)

Handles the request for the tenant Emits the following events and service calls:

  • decent.core.shell.start-request
  • 'route-handler'.handle({shell, request, response}, done)
  • 'storage-manager'.fetchContent({shell, request, response}, done)
  • 'renderer'.render({shell, request, response}, done)
  • decent.core.shell.render-error
  • decent.core.shell.end-request

Kind: instance method of Shell

Param Type Description
request Request
response Response
next function The callback

Shell.empty

An empty shell that you can use to initialize services if you don't need multitenancy.

Kind: static property of Shell

Shell.list

The list of tenants.

Kind: static property of Shell

Shell.startRequestEvent : string

The event that is broadcast at the beginning of request handling. This is a good time to attach a service to the request object.

Kind: static property of Shell

Shell.endRequestEvent : string

The event that is broadcast at the end of request handling. This is a good time to detach services and events.

Kind: static property of Shell

Shell.renderPageEvent : string

The event that is broadcast when the page is ready to be rendered.

Kind: static property of Shell

Shell.renderErrorPage : string

This event is triggered when an error has happened during the page lifecycle.

Kind: static property of Shell

Shell.renderErrorPage_payload

The payload is the error object.

Kind: static property of Shell

Shell.load(sitePath, [defaults]) ⇒ Shell

Creates a shell from its settings file.

Kind: static method of Shell
Returns: Shell - The new shell

Param Type Description
sitePath String The path of the settings file.
[defaults] Object Default settings.

Shell.discover(defaults, rootPath)

Discovers all tenants in the ./sites directory.

Kind: static method of Shell

Param Type Description
defaults Object Default settings for the shells.
rootPath String The root path where to look for shell settings files. Defaults to ./sites

Shell.resolve(request)

Returns the shell that should handle this request.

Kind: static method of Shell

Param Type Description
request IncomingMessage The request