COMAND Package Content Types
Overview
Package content types provide a framework to group, distribute and install collections of objects.
Content Types
Package
A named collection of related objects designed to be downloaded together. Information about platform requirements and dependencies on other packages can be specified to help ensure the proper environment is available for the package.
Title (Identifier) | Type | Properties | Description |
---|---|---|---|
Package | (Layout Type) Tab | Information about the method for users and interfaces. | |
Title | (Data Type) Text Line | User-friendly name for the package. | |
Namespace | (Data Type) Text Line | Namespace used to locate and differentiate the package from other packages. | |
Version | (Data Type) Text Line | Three-element version number, in the format "1.0.0". | |
Requirements | (Content Type) Platform Requirement | List, Ref | List of platform requirements that must be met for the package to be useful. |
Dependencies | (Content Type) Package | List, Ref | List of packages that must be exist in the repository for the package to be useful. |
Contents | (Content Type) Object | List, Ref | Collection of objects contained in the package. Like a folder, the contents are referenced to allow them to be embedded in another object's field. |
Installers | (Content Type) Installer | Ref, List | List of Installers used to install the package. If no installers are defined, the package will not be installed. |
Documentation | (Layout Type) Tab | Information about the package. | |
Description | (Data Type) Text Box (Short) | Breif description of the package and its purpose. | |
Help | (Data Type) Rich Text Box | Detailed explanation of the package and how it can be used. |
Iterates through Installers and calls Install( $this ) on each. Installers typically copy appropriate contents to files in the file system under the COMAND Packages Folder.
Package Requirement
Represents hardware, software and other requirements for the installation and use of a package.
Title (Identifier) | Type | Properties | Description |
---|---|---|---|
Title | (Data Type) Text Line | User-friendly name for the package requirement. | |
Description | (Data Type) Rich Text Box | Explanation of the installer, what content types it will install and what it does to install them. |
Installer
This content type is meant to be used as an interface or abstract content type for actual installers. It defines basic informational fields and method prototypes required by installers.
Title (Identifier) | Type | Properties | Description |
---|---|---|---|
Title | (Data Type) Text Line | User-friendly name for the installer. | |
Description | (Data Type) Rich Text Box | Explanation of the installer, what content types it will install and what it does to install them. |
Installs an entire package, or specific objects within the package.
Uninstalls an entire package, or specific objects within the package in order to "undo" changes made by the Install method.
Returns TRUE if the installer would not make any changes to the repository, file system or other resources if it were to install the package.
Reinstalls a package, which is equivelent to calling Uninstall if IsInstalled returns TRUE, and then Install. This method is actually implemented as just described, but can be overridden when extended, if desired.
PHP Installer
An installer based on PHP code stored in a package.
Title (Identifier) | Type | Properties | Description |
---|---|---|---|
Package | (Content Type) Package | Ref | Package that contains the installer class and components. |
InstallerClassName | (Data Type) Text Line | Name of the PHP class that implements the Installer interface inside Package. The class name should be fully qualified with its namespace. |
Calls the Install method of the Installer Class.
Calls the Uninstall method of the Installer Class.
Calls the IsInstalled method of the Installer Class.
Calls the Reinstall method of the Installer Class.
Product
A package designed to be uploaded to the Market for discovery, sales and distribution.
Title (Identifier) | Type | Properties | Description |
---|---|---|---|
Product | (Layout Type) Tab | Information about the product, to be made available in the webCOMAND Market. | |
Marketing Description | (Data Type) Rich Text Box | Promotional description about the product. | |
Media | (Content Type) Media | List | Collection of screenshots, videos and other promotional media about the product. |
Author | (Data Type) Text Line | Name of the author.
This field will likely be broken out to Creator, Contributors and Publisher, which all reference Contact (Object/Content/Subject/Contact{Person,Organization}).
|
|
License | (Content Type) Product License | Ref | Type of product license. |
Product License
Information about how a product can be used, for purchasing and on-going rights. The license is a key Product field, which is displayed in the Market and affects the sales process.
Title (Identifier) | Type | Properties | Description |
---|---|---|---|
Type | (Content Type) Product License Type | Ref | Type or class of license. |
Description | (Data Type) Text Box | Breif explanation of the license, as well as set up and on-going pricing. | |
Price | (Data Type) Currency | Cost to download and install product, in US currency. |
Product License Type
Represents common license types, to help provide consistent and understandable license options to Market consumers.
Title (Identifier) | Type | Properties | Description |
---|---|---|---|
Title | (Data Type) Text Line | Name for the type of license. | |
Summary | (Data Type) Text Box | Breif explanation of the license, in simple high-level terms. | |
Agreement | (Data Type) Rich Text Box | Long-form license agreement, in legal form. |
Restrictions
Only users with full-authorization are able to change the package content types.
The package content types should not be changed under normal circumstances because they form the foundation of the package management system critical to COMAND features and functionality.
Changes to these content types risk breaking fundamental dependencies and assumptions critical to software and other content types.
While not recommended, it is important to keep in mind that the package content types can be changed, and it is not unreasonable for an isolated systems to add fields or updated meta-data. Whenever possible though, they should not be changed, especially in repositories connected to a greater network.