dreamfactory/package-installer

DreamFactory Services Platform(tm) Package Installer


README

Latest Stable Version Total Downloads Latest Unstable Version License

DreamFactory Platform Package Installer (PPI) is a tool for installing applications, libraries and plug-ins on to your DSP.

Packages installed with this tool are safe from system upgrades.

Packaging with Composer

By default, the PPI leverages the package manager used by the DSP, Composer. While this document and the package installer require a composer.json file to install your package, DSP packages are not required, or limited, to utilize this packaging method. See [Packaging Without Composer][] for more information on alternative packaging.

What's Composer?

Composer is a dependency manager tracking local dependencies of your projects and libraries.

See https://getcomposer.org/ for more information and documentation.

Installation and Usage

No installation is required. To have the PPI install your package, you need to set the composer.json property type to one of the following types:

  • dreamfactory-application
  • dreamfactory-library
  • dreamfactory-plugin
Applications

Applications are DSP applications that consist of only client-side code. These are installed to your DSP's /storage/applications directory.

Plugins/Libraries

Plugins, or libraries are DSP extensions that consist of code or code and UI components. These are installed to your DSP's /storage/plugins directory.

Specifying Your Package Details

In addition to specifying a package type, the PPI utilizes the "extra" section of your project's configuration file (composer.json). In this section you can customize the installation of your DSP package:

{
    "extra": {
        "data": {
            "application":  {
                "api-name":                "pbox",
                "name":                    "Portal Sandbox",
                "description":             "A sample application that demonstrates the DSP's portal service.",
                "url":                     "/index.php",
                "is-url-external":         false,
                "import-url":              "https://github.com/dreamfactorysoftware/portal-sandbox/archive/master.zip",
                "is-active":               true,
                "requires-fullscreen":     false,
                "allow-fullscreen-toggle": true,
                "toggle-location":         "top"
        }
        "config":       "config/app.config.php",
        "links":        [
            {
                "target": "src/",
                "link":   "pbox"
            }
        ]
    }
    }
}

In the above example we are giving our package a pretty name, an api_name (which defines the route) and a few other details.

Application Properties Name Type Description api-name string The API name for the app name string The display name of the app description string The description of the app is-active boolean If false, app is ignored by DSP url string The absolute/relative url to this app is-url-external boolean Indicates the source of the url import-url string The url from which this app can be downloaded storage-service-id int The id of the storage service storage-container string The container on the storage service which stores this app requires-fullscreen boolean If true, full screen mode is default allow-fullscreen-toggle boolean If true, full screen mode toggle is available toggle-location string The location of the toggle. Defaults to "top"

Packaging Without Composer

Not possible at this time.

Contributing

All code contributions - including those of people having commit access - must go through a pull request and approved by a core developer before being merged. This is to ensure proper review of all the code.

Fork the project, create a feature branch, and send us a pull request.

If you would like to help take a look at the list of issues.

Community

  • Join our other DSP users on Google Groups!
  • IRC channels are on irc.freenode.org: #dreamfactory for users and #dreamfactory-dev for development.
  • Stack Overflow has a growing collection of DSP related questions.

License

Composer is licensed under the Apache 2.0 License - see the LICENSE.txt file for details