This appendix demonstrates the metadata file of the SugarCRM application package. The following metadata file is extended with delimiters that separate file fragments added on different steps of the metadata file creation described in the Packaging SugarCRM Application section earlier in this guide.
<!-- Application namespaces and APS version (step 9) -->
<application xmlns="http://apstandard.com/ns/1" version="1.2">
<!-- Application common properties (step 9) -->
<id>http://www.sugarcrm.com/crm/</id>
<name>SugarCRM</name>
<version>5.2.0a</version>
<release>1</release>
<homepage>http://www.sugarcrm.com/crm/</homepage>
<vendor>
<name>SugarCRM Inc.</name>
<homepage>
http://www.sugarcrm.com/crm/about/about-sugarcrm.html
</homepage>
<icon path="images/icon.png"/>
</vendor>
<packager>
<name>Parallels</name>
<homepage>http://parallels.com</homepage>
<uri>uuid:714f0a7b-85d6-4eb8-b68e-40f9acbb3103</uri>
</packager>
<presentation>
<summary>SugarCRM Community Edition</summary>
<description>
SugarCRM Community Edition enables organizations to
efficiently organize, populate, and maintain
information on all aspects of their customer
relationships. It provides integrated management of
corporate information on customer accounts and contacts,
sales leads and opportunities, plus activities such as
calls, meetings, and assigned tasks. The system
seamlessly blends all of the functionality required to
manage information on many aspects of your business
into an intuitive and user-friendly graphical interface.
</description>
<icon path="images/icon.png"/>
<screenshot path="images/screen_home.png">
<description>Home Screen</description>
</screenshot>
<screenshot path="images/screen_admin.png">
<description>Admin Screen</description>
</screenshot>
<screenshot path="images/screen_dashboard.png">
<description>Dashboard View</description>
</screenshot>
<screenshot path="images/screen_accounts.png">
<description>Account Details</description>
</screenshot>
<screenshot path="images/screen_campaigns.png">
<description>Marketing Campaigns</description>
</screenshot>
<screenshot path="images/screen_bug_tracker.png">
<description>Bug Tracker</description>
</screenshot>
<screenshot path="images/screen_calendar.png">
<description>Calendar</description>
</screenshot>
<screenshot path="images/screen_documents.png">
<description>Documents</description>
</screenshot>
<changelog>
<version version="5.2.0a" release="1">
<entry>Packaged as APS 1.1</entry>
</version>
</changelog>
<categories>
<category>Back office/Customer Relationship Management</category>
</categories>
<languages>
<language>en</language>
</languages>
</presentation>
<patch match="/application/version = '5.0.0'
or /application/version = '5.1.0a'"/>
<!-- Application services (step 4) -->
<service id="instance">
<!-- Service presentation properties (step 7) -->
<license must-accept="true">
<free/>
<text>
<name>GPLv3</name>
<file>htdocs/LICENSE.txt</file>
</text>
</license>
<presentation>
<name>SugarCRM Instance</name>
<summary>Basic services</summary>
<entry-points>
<entry class="control-panel" dst="/index.php" method="POST">
<label>Application entry point</label>
<variable name="module">Users</variable>
<variable name="action">Authenticate</variable>
<variable name="return_module">Users</variable>
<variable name="return_action">Login</variable>
<variable name="cant_login"/>
<variable name="login_module"/>
<variable name="login_action"/>
<variable name="login_record"/>
<variable name="user_name" class="login"
value-of-setting="admin_name"/>
<variable name="user_password" class="password"
value-of-setting="admin_password"/>
<variable name="login_theme">Sugar</variable>
<variable name="login_language">en_us</variable>
<variable name="Login">++Login++</variable>
</entry>
</entry-points>
</presentation>
<!-- Service settings (step 7) -->
<settings>
<group class="authn">
<name>Administrator's Account</name>
<setting id="admin_name" type="string"
default-value="admin" min-length="1"
max-length="32" regex="^[a-zA-Z][0-9a-zA-Z_\-]*"
class="login">
<name>Administrator's Login</name>
<error-message>Please make sure the text
you entered starts with a letter and
continues with either numbers, letters,
underscores or hyphens.
</error-message>
</setting>
<setting id="admin_password" type="password" class="password">
<name>Administrator's Password</name>
</setting>
</group>
<group class="web">
<setting id="title" type="string"
default-value="SugarCRM" class="title">
<name>System Name</name>
<description>This name will be displayed
in the browser title bar when users visit
the Sugar application.</description>
</setting>
<setting id="send_usage_statistics"
type="enum" default-value="true"
installation-only="true">
<name>Send Anonymous Usage Statistics</name>
<description>If selected 'Yes', Sugar
will send anonymous statistics about
your installation to SugarCRM Inc.
every time your system checks for new versions.
</description>
<choice id="true">
<name>Yes</name>
</choice>
<choice id="false">
<name>No</name>
</choice>
</setting>
<setting id="check_for_updates" type="enum"
default-value="automatic">
<name>Check For Updates</name>
<description>How the system will check
for updated versions of the application.
</description>
<choice id="automatic">
<name>Automatic</name>
</choice>
<choice id="manual">
<name>Manual</name>
</choice>
</setting>
</group>
</settings>
<!-- Service used technologies (step 6) -->
<requirements xmlns:php="http://apstandard.com/ns/1/php"
xmlns:db="http://apstandard.com/ns/1/db"
xmlns:apache="http://apstandard.com/ns/1/apache">
<php:version min="5.1.0"/>
<php:extension>mysql</php:extension>
<php:extension>mbstring</php:extension>
<db:db>
<db:id>main</db:id>
<db:default-name>sugarce</db:default-name>
<db:can-use-tables-prefix>true</db:can-use-tables-prefix>
<db:server-type>mysql</db:server-type>
<db:server-min-version>4.1.2
</db:server-min-version>
</db:db>
</requirements>
<!-- Content delivery settings (step 8) -->
<provision>
<url-mapping>
<default-prefix>sugarcrm</default-prefix>
<installed-size>53547008</installed-size>
<mapping url="/" path="htdocs"
xmlns:php="http://apstandard.com/ns/1/php">
<php:handler>
<php:extension>php</php:extension>
</php:handler>
<mapping url="cache">
<php:permissions writable="true"/>
</mapping>
<mapping url="custom">
<php:permissions writable="true"/>
</mapping>
<mapping url="data">
<php:permissions writable="true"/>
</mapping>
<mapping url="modules">
<php:permissions writable="true"/>
</mapping>
<mapping url="tmp">
<php:permissions writable="true"/>
</mapping>
<mapping url="config.php" virtual="virtual">
<php:permissions writable="true"/>
</mapping>
</mapping>
</url-mapping>
<!-- Service configuration script declaration (step 10) -->
<configuration-script name="configure">
<script-language>php</script-language>
</configuration-script>
</provision>
<!-- Application services (step 4) -->
<service id="account">
<!-- Service presentation properties (step 7) -->
<presentation>
<name>SugarCRM Account</name>
<entry-points>
<entry class="control-panel" dst="/index.php" method="POST">
<label>Account entry point</label>
<variable name="module">Users</variable>
<variable name="action">Authenticate</variable>
<variable name="return_module">Users</variable>
<variable name="return_action">Login</variable>
<variable name="cant_login"/>
<variable name="login_module"/>
<variable name="login_action"/>
<variable name="login_record"/>
<variable name="user_name" class="login"
value-of-setting="user_login"/>
<variable name="user_password" class="password"
value-of-setting="user_password"/>
<variable name="login_theme">Sugar</variable>
<variable name="login_language">en_us</variable>
<variable name="Login">++Login++</variable>
</entry>
</entry-points>
</presentation>
<!-- Service settings (step 7) -->
<settings>
<group class="authn">
<name>Account Preferences</name>
<setting id="user_login" class="login"
track-old-value="true"
type="string" min-length="3" max-length="60"
regex="^[a-zA-Z][0-9a-zA-Z_\-]*">
<name>Account's Login</name>
</setting>
<setting id="user_password"
class="password" type="password"
min-length="4">
<name>Account's Password</name>
</setting>
</group>
<group class="vcard">
<group class="fn n">
<setting id="first_name"
class="given-name" type="string" max-length="30">
<name>First Name</name>
</setting>
<setting id="last_name"
class="family-name" type="string" max-length="30">
<name>Last Name</name>
</setting>
</group>
<group class="email">
<setting id="user_email" class="value" type="email">
<name>Email</name>
</setting>
</group>
<setting id="title" class="title" type="string">
<name>Title</name>
</setting>
<setting id="department" class="organization-unit"
type="string">
<name>Department</name>
</setting>
<group class="tel">
<name class="type">work</name>
<setting id="phone_work" class="value" type="string">
<name>Work Phone Number</name>
</setting>
</group>
<group class="tel">
<name class="type">cell</name>
<setting id="phone_mobile" class="value" type="string">
<name>Mobile Phone Number</name>
</setting>
</group>
<group class="tel">
<name class="type">fax</name>
<setting id="phone_fax" class="value" type="string">
<name>Fax Number</name>
</setting>
</group>
<group class="tel">
<name class="type">home</name>
<setting id="phone_home" class="value" type="string">
<name>Home Phone Number</name>
</setting>
</group>
<setting id="address_street"
class="street-address" type="string">
<name>Street</name>
</setting>
<setting id="address_city" class="locality" type="string">
<name>City</name>
</setting>
<setting id="address_state" class="region" type="string">
<name>Region</name>
</setting>
<setting id="address_country"
class="country-name" type="string">
<name>Country</name>
</setting>
<setting id="address_postalcode"
class="postal-code" type="string">
<name>Postal Code</name>
</setting>
<setting id="description" class="note" type="string">
<name>Description</name>
</setting>
</group>
</settings>
<!-- Service configuration script declaration (step 10) -->
<provision>
<configuration-script name="usermanager">
<script-language>php</script-language>
<status-control/>
</configuration-script>
</provision>
</service>
</service>
</application>