### Start eXo Platform with add-ons Source: https://docs.exoplatform.org/administration/addons-management.html Uses the docker run command with the EXO_ADDONS_LIST environment variable to specify and install add-ons during container initialization. ```bash docker run -d \ -p 8080:8080 \ -e EXO_ADDONS_LIST="exo-tasks:1.3.x-SNAPSHOT,exo-answers:1.3.x-SNAPSHOT" \ exoplatform/exo-community ``` -------------------------------- ### Start eXo Platform Containers Source: https://docs.exoplatform.org/guide/developer-guide/intermediate-integration/rest-service.html Instructions on how to start the eXo Platform using docker-compose. ```APIDOC ## Start eXo Platform Containers ### Description Starts the eXo Platform using docker-compose. ### Command ```bash docker-compose -f $EXO_HOME/docker-compose.yml up ``` ``` -------------------------------- ### Start eXo Platform Container Source: https://docs.exoplatform.org/guide/developer-guide/intermediate-integration/rest-service.html Command to initialize and start the eXo Platform environment using Docker Compose. ```bash docker-compose -f $EXO_HOME/docker-compose.yml up ``` -------------------------------- ### Configure Maven Repository for eXo Platform Source: https://docs.exoplatform.org/guide/developer-guide/getting-started This snippet shows how to add the eXo Platform Maven repository to your `settings.xml` file. This allows Maven to download eXo artifacts. Ensure the URL is correct and the profile is activated. ```xml ... ... myprofile eXo-pub-repo eXoPlatform public repo https://repository.exoplatform.org/public ... myprofile ... ``` -------------------------------- ### Import eXo Platform Dependencies in Maven Source: https://docs.exoplatform.org/guide/developer-guide/getting-started This example demonstrates how to import eXo Platform dependencies in your project's `pom.xml`. It uses a property to define the eXo Platform version, which is then used to import the versions of all related artifacts via a parent POM. ```xml 4.0.0 com.mycompany my-project 1.0-SNAPSHOT war My project 6.3.0 org.exoplatform.social social ${exoplatform.version} pom import ``` -------------------------------- ### Launch eXo Platform with Docker Compose Source: https://docs.exoplatform.org/guide/getting-started/start-community Commands to start the eXo Platform environment using a Docker Compose file. Includes an option to set a custom virtual host domain name via environment variables. ```bash docker-compose -f docker-compose.yml up ``` ```bash export EXO_PROXY_VHOST=exoapp2.local docker-compose -f docker-compose.yml up ``` -------------------------------- ### Install Nginx on Debian/Ubuntu Source: https://docs.exoplatform.org/administration/security.html Installs the Nginx web server on Debian or Ubuntu-based systems using the apt package manager. This is a prerequisite for configuring Nginx as a reverse proxy. ```bash apt-get install nginx ``` -------------------------------- ### Example Navigation Resource Bundle Content Source: https://docs.exoplatform.org/guide/product-reference/Internationalization.html This example shows the content of a properties file for a specific navigation resource bundle, in this case, for the 'organization.management.executive-board' group. It defines localized strings for UI elements. ```properties organization.title=Organization organization.newstaff=New Staff organization.management=Management ``` -------------------------------- ### Skip Account Setup Screen in eXo Platform Source: https://docs.exoplatform.org/administration/configuration.html Configures whether to skip the initial Account Setup and Greetings screens on the first startup. Set to 'true' to bypass these screens, which is useful when extensions declare sample users or when connecting to an existing user directory. Modify the 'exo.accountsetup.skip' property in the 'exo.properties' file. ```properties exo.accountsetup.skip=true ``` -------------------------------- ### List Installed Add-ons in Docker Container Source: https://docs.exoplatform.org/administration/addons-management.html Lists only the add-ons that are currently installed in a running eXo Platform Docker container. This is useful for checking the current state of installed features. ```bash docker exec /opt/exo/addon list --installed ``` -------------------------------- ### Monitor container logs and status Source: https://docs.exoplatform.org/administration/addons-management.html Commands to retrieve the container ID and follow the startup logs to verify the successful installation of add-ons. ```bash docker ps -a docker logs --follow ``` -------------------------------- ### Build and Deploy Extension Source: https://docs.exoplatform.org/guide/developer-guide/prepare-extension-project Shell commands to build the extension using Maven and deploy the resulting WAR file to the eXo Platform webapps directory. ```bash cd $EXO_HOME/sources/custom-extension mvn deploy cp $EXO_HOME/sources/custom-extension/webapp/target/custom-extension-webapp.war $EXO_HOME/webapps/custom-extension-webapp.war ``` -------------------------------- ### Initialize Vue.js Application Source: https://docs.exoplatform.org/guide/developer-guide/intermediate-integration/rest-service.html Entry point script that loads internationalization resources and mounts the main Vue component to the DOM. ```javascript import app from './components/birthdayAppMain.vue'; const lang = eXo && eXo.env && eXo.env.portal && eXo.env.portal.language || 'en'; const url = `${eXo.env.portal.context}/${eXo.env.portal.rest}/i18n/bundle/locale.portlet.birthdayApp-${lang}.json`; exoi18n.loadLanguageAsync(lang, url).then(i18n => { new Vue({ render: h => h(app), i18n }).$mount('#birthdayApp'); }); ``` -------------------------------- ### Build and Deploy Application via CLI Source: https://docs.exoplatform.org/guide/developer-guide/intermediate-integration/rest-service.html Standard shell commands to package the application using Maven, deploy the resulting WAR file to the eXo Platform webapps directory, and initiate the service using Docker Compose. ```bash mvn clean package cp webapp/target/my-connections-birthday-webapp.war $EXO_HOME/webapps docker-compose -f docker-compose.yml up ``` -------------------------------- ### Generate Keystore and Certificates using OpenSSL and Keytool Source: https://docs.exoplatform.org/administration/saml-integration.html This section covers the steps to create a private key and certificate using OpenSSL, export them into a PKCS12 file, and then import this into a JKS keystore using the `keytool` command. These commands are essential for setting up secure communication in SAML. ```shell openssl req -newkey rsa:4096 -keyout private.key -x509 -days 365 -out certificate.crt openssl pkcs12 -export -out certificate.p12 -inkey private.key -in certificate.crt keytool -v -importkeystore -srckeystore certificate.p12 -srcstoretype PKCS12 -destkeystore secure-key.jks -deststoretype JKS ``` -------------------------------- ### GET /v1/processes/workflows Source: https://docs.exoplatform.org/guide/openapi/processes.html Retrieves a list of all available workflows. ```APIDOC ## GET /v1/processes/workflows ### Description Retrieves a list of all workflows. ### Method GET ### Endpoint /v1/processes/workflows ### Response #### Success Response (200) - **workflows** (array) - A list of workflow objects. - Each object contains details of a workflow. #### Response Example ```json { "workflows": [ { "workflowId": "wf_1", "name": "Approval Workflow", "version": "1.0" }, { "workflowId": "wf_2", "name": "Task Management Workflow", "version": "2.1" } ] } ``` ``` -------------------------------- ### Configure System Hosts File Source: https://docs.exoplatform.org/guide/getting-started/start-community Configuration line to map the local loopback address to the eXo Platform domain name in the system hosts file. ```text 127.0.0.1 exoapp.local ``` -------------------------------- ### GET /gamification/leaderboard Source: https://docs.exoplatform.org/guide/openapi/gamification.html Retrieves the leaderboard for users and spaces. ```APIDOC ## GET /gamification/leaderboard ### Description Retrieve the list of leaderboard users or spaces, including the selected identity to retrieve its rank. ### Method GET ### Endpoint /gamification/leaderboard ### Response #### Success Response (200) - **rankings** (array) - List of ranked users or spaces. ``` -------------------------------- ### GET /v1/processes/works/statuses Source: https://docs.exoplatform.org/guide/openapi/processes.html Retrieves the list of available work statuses. ```APIDOC ## GET /v1/processes/works/statuses ### Description Retrieves a list of all possible statuses for work items. ### Method GET ### Endpoint /v1/processes/works/statuses ### Response #### Success Response (200) - **statuses** (array) - A list of status strings. #### Response Example ```json { "statuses": [ "New", "In Progress", "Completed", "Cancelled" ] } ``` ``` -------------------------------- ### Secure MongoDB Authentication Setup Source: https://docs.exoplatform.org/administration/security.html Steps to secure a MongoDB instance for ExoPlatform, requiring user authentication. This involves creating an admin user, enabling authentication in the MongoDB configuration, creating a specific user for the application database, and configuring connection parameters. ```mongo $ mongo > use admin > db.createUser({user: "admin", pwd: "admin", roles: [{role: "userAdminAnyDatabase", db: "admin"}]}) > exit ``` ```ini # mongodb.conf # Your MongoDB host. bind_ip = 192.168.1.81 # The default MongoDB port port = 27017 # Turn on authentication auth=true ``` ```mongo $ mongo -port 27017 -host 192.168.1.81 -u admin -p admin -authenticationDatabase admin > use chat > db.createUser({user: "exo", pwd: "exo", roles: [{role: "readWrite", db: "chat"}]}) > exit ``` ```mongo $ mongo -port 27017 -host 192.168.1.81 -u exo -p exo -authenticationDatabase chat > use chat > db.placeholder.insert({description: "test"}) > db.placeholder.find() ``` ```properties dbName=chat dbServerHost=192.168.1.81 dbServerPort=27017 dbAuthentication=true dbUser=exo dbPassword=exo ``` -------------------------------- ### GET /v1/processes/works Source: https://docs.exoplatform.org/guide/openapi/processes.html Retrieves a list of all available work items. ```APIDOC ## GET /v1/processes/works ### Description Retrieves a list of all work items. ### Method GET ### Endpoint /v1/processes/works ### Response #### Success Response (200) - **works** (array) - A list of work item objects. - Each object contains details of a work item. #### Response Example ```json { "works": [ { "workId": "work_1", "title": "Task A", "status": "In Progress" }, { "workId": "work_2", "title": "Task B", "status": "Completed" } ] } ``` ``` -------------------------------- ### GET /v1/processes/workflows/{workflowId} Source: https://docs.exoplatform.org/guide/openapi/processes.html Retrieves a specific workflow by its ID. ```APIDOC ## GET /v1/processes/workflows/{workflowId} ### Description Retrieves a specific workflow by its unique identifier. ### Method GET ### Endpoint /v1/processes/workflows/{workflowId} ### Parameters #### Path Parameters - **workflowId** (string) - Required - The ID of the workflow to retrieve. ### Response #### Success Response (200) - **workflow** (object) - The workflow object containing its details. #### Response Example ```json { "workflow": { "workflowId": "wf_1", "name": "Approval Workflow", "version": "1.0", "description": "Handles the approval process." } } ``` ``` -------------------------------- ### Build and Deploy Commands Source: https://docs.exoplatform.org/guide/developer-guide/simple-integration/event-listeners.html Shell commands to package the project using Maven, copy artifacts to the eXo home directory, and configure Docker volumes for deployment. ```bash mvn package cp services/target/sample-notification-services.jar $EXO_HOME/lib/sample-notification-services.jar cp webapp/target/sample-notification-webapp.war $EXO_HOME/webapps ``` ```yaml volumes: - exo_data:/srv/exo - exo_logs:/var/log/exo - $EXO_HOME/lib/sample-event-listeners.jar:/opt/exo/lib/sample-event-listeners.jar - $EXO_HOME/webapps/event-listeners-webapp.war:/opt/exo/webapps/event-listeners-webapp.war ``` ```bash docker-compose -f /path/to/docker-compose.yml up ``` -------------------------------- ### Main Configuration Entry Point (XML) Source: https://docs.exoplatform.org/guide/developer-guide/intermediate-integration/front-end-application.html The main configuration file for an eXo Platform extension. It uses the 'import' tag to load other configuration files, acting as the primary entry point for extension configurations. ```xml war:/conf/custom-extension/bundle-configuration.xml war:/conf/custom-extension/portal-configuration.xml ``` -------------------------------- ### GET /v1/processes/workDrafts Source: https://docs.exoplatform.org/guide/openapi/processes.html Retrieves a list of all available work drafts. ```APIDOC ## GET /v1/processes/workDrafts ### Description Retrieves a list of all work drafts. ### Method GET ### Endpoint /v1/processes/workDrafts ### Response #### Success Response (200) - **workDrafts** (array) - A list of work draft objects. - Each object contains details of a work draft. #### Response Example ```json { "workDrafts": [ { "draftId": "draft_1", "title": "Draft One", "createdAt": "2023-10-27T10:00:00Z" }, { "draftId": "draft_2", "title": "Draft Two", "createdAt": "2023-10-27T11:00:00Z" } ] } ``` ``` -------------------------------- ### GET /v1/processes/permissions Source: https://docs.exoplatform.org/guide/openapi/processes.html Checks if the current user is a processes manager. ```APIDOC ## GET /v1/processes/permissions ### Description Checks if the current user has manager permissions for processes. ### Method GET ### Endpoint /v1/processes/permissions ### Response #### Success Response (200) - **isManager** (boolean) - True if the current user is a processes manager, false otherwise. #### Response Example ```json { "isManager": true } ``` ``` -------------------------------- ### Build and Deploy Notification Modules Source: https://docs.exoplatform.org/guide/developer-guide/simple-integration/notification.html Commands to compile the notification service and webapp modules using Maven and copy the resulting artifacts to the eXo Platform installation directories. ```bash cd $EXO_HOME/sources/sample-notification mvn clean package cp services/target/sample-notification-services.jar $EXO_HOME/lib/ cp webapp/target/sample-notification-webapp.war $EXO_HOME/webapps/ ``` -------------------------------- ### List Available Add-ons in Docker Container Source: https://docs.exoplatform.org/administration/addons-management.html Lists all available add-ons for eXo Platform within a running Docker container. This command helps discover potential add-ons that can be installed. ```bash docker exec /opt/exo/addon list ``` -------------------------------- ### Start eXo Platform in Debug and Dev Modes (Shell) Source: https://docs.exoplatform.org/guide/developer-guide/miscellaneous/debug-dev-mode.html This command starts the eXo Platform with both Debug and Dev modes enabled. These modes are not recommended for production due to performance impacts and are primarily for development and debugging. ```shell ./start_eXo.sh --dev --debug ``` -------------------------------- ### Build and Deploy Extension Source: https://docs.exoplatform.org/guide/developer-guide/intermediate-integration/rest-service.html Shell commands to build the project using Maven and deploy the resulting artifacts to the eXo Platform server directories. ```bash cd $EXO_HOME/sources/my-connections-birthdays-extension mvn clean install cp services/target/my-connections-birthday-services.jar $EXO_HOME/lib cp webapp/target/my-connections-birthday-webapp.war $EXO_HOME/webapps ``` -------------------------------- ### Build and Package Activity Extension with Maven Source: https://docs.exoplatform.org/guide/developer-guide/simple-integration/activity-type.html This command sequence builds the activity extension using Maven. It first cleans the project and then packages it into a WAR file. This WAR file contains all the necessary compiled code and resources for the extension. ```bash cd $EXO_HOME/sources/docs-sample/activity-extensions mvn clean package ``` -------------------------------- ### GET /v1/processes/works/{workId} Source: https://docs.exoplatform.org/guide/openapi/processes.html Retrieves a specific work item by its ID. ```APIDOC ## GET /v1/processes/works/{workId} ### Description Retrieves a specific work item by its unique identifier. ### Method GET ### Endpoint /v1/processes/works/{workId} ### Parameters #### Path Parameters - **workId** (string) - Required - The ID of the work item to retrieve. ### Response #### Success Response (200) - **work** (object) - The work item object containing its details. #### Response Example ```json { "work": { "workId": "work_1", "title": "Task A", "description": "Details for Task A.", "status": "In Progress", "createdAt": "2023-10-27T10:00:00Z" } } ``` ``` -------------------------------- ### GET /v1/processes/illustration/{workflowId} Source: https://docs.exoplatform.org/guide/openapi/processes.html Retrieves a workflow illustration image by its ID. ```APIDOC ## GET /v1/processes/illustration/{workflowId} ### Description Gets a workflow illustration image by its ID. ### Method GET ### Endpoint /v1/processes/illustration/{workflowId} ### Parameters #### Path Parameters - **workflowId** (string) - Required - The ID of the workflow to get the illustration for. ### Response #### Success Response (200) - **image** (string) - The image data of the workflow illustration (e.g., base64 encoded). - **contentType** (string) - The content type of the image (e.g., image/png). #### Response Example ```json { "image": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=", "contentType": "image/png" } ``` ``` -------------------------------- ### Initialize VueJS Application with i18n in eXo Platform Source: https://docs.exoplatform.org/guide/developer-guide/intermediate-integration/front-end-application.html This script initializes the VueJS application by fetching internationalization bundles asynchronously from the eXo portal environment. It ensures the application is mounted only after the locale resources are successfully loaded. ```javascript import app from './components/app.vue'; const lang = eXo && eXo.env && eXo.env.portal && eXo.env.portal.language || 'en'; const resourceBundleName = 'locale.addon.Sample'; const url = `${eXo.env.portal.context}/${eXo.env.portal.rest}/i18n/bundle/${resourceBundleName}-${lang}.json`; exoi18n.loadLanguageAsync(lang, url) .then(i18n => { new Vue({ render: h => h(app), i18n }).$mount('#vue_webpack_sample'); }); ``` -------------------------------- ### GET /v1/platform/branding Source: https://docs.exoplatform.org/guide/openapi/poll Endpoints for retrieving and updating platform branding assets. ```APIDOC ## GET /v1/platform/branding ### Description Retrieves the current branding information for the platform. ### Method GET ### Endpoint /v1/platform/branding ### Response #### Success Response (200) - **branding** (object) - Branding configuration details ``` -------------------------------- ### GET /v1/groups Source: https://docs.exoplatform.org/guide/openapi/poll Endpoints for managing platform groups and their associated memberships. ```APIDOC ## GET /v1/groups ### Description Retrieves the list of groups available in the platform. ### Method GET ### Endpoint /v1/groups ### Response #### Success Response (200) - **groups** (array) - List of group objects ``` -------------------------------- ### Build and Deploy Vue Portlet Application Source: https://docs.exoplatform.org/guide/developer-guide/intermediate-integration/front-end-application.html Commands to build the Vue portlet using Maven and deploy the resulting WAR file to the eXo Platform webapps directory. ```bash cd docs-samples/portlet/vue-portlet-webpack mvn clean package cp target/vue-portlet-webpack.war $EXO_HOME/webapps/ ``` -------------------------------- ### GET /onlyoffice/editor/api/version Source: https://docs.exoplatform.org/guide/openapi/onlyoffice Retrieves the current version of the OnlyOffice integration API. ```APIDOC ## GET /onlyoffice/editor/api/version ### Description Returns the version number of the OnlyOffice addon API. ### Method GET ### Endpoint /onlyoffice/editor/api/version ### Response #### Success Response (200) - **version** (string) - The API version string. #### Response Example { "version": "1.0" } ``` -------------------------------- ### Resource Bundle Properties File (Sample_en.properties) Source: https://docs.exoplatform.org/guide/developer-guide/intermediate-integration/front-end-application.html A sample resource bundle file for English. It contains key-value pairs that provide text translations for internationalization within the ExoPlatform site. ```properties # Sample resource bundle file for English # Key-value pairs for text translations # Example: # locale.addon.Sample.someKey=Some Value ``` -------------------------------- ### GET /gamification/realizations Source: https://docs.exoplatform.org/guide/openapi/gamification.html Retrieves the list of achievements for users with optional filtering. ```APIDOC ## GET /gamification/realizations ### Description Retrieves the list of achievements with a filter. The returned format can be of type JSON or XLSX. ### Method GET ### Endpoint /gamification/realizations ### Query Parameters - **filter** (string) - Optional - Filter criteria for achievements. - **format** (string) - Optional - Desired output format (JSON or XLSX). ### Response #### Success Response (200) - **realizations** (array) - List of user achievements. ``` -------------------------------- ### GET /otp/verify Source: https://docs.exoplatform.org/guide/openapi/multifactor-authentication.html Verifies the provided OTP token for the current user. ```APIDOC ## GET /otp/verify ### Description Verify the provided OTP token. ### Method GET ### Endpoint /otp/verify ### Parameters #### Query Parameters - **token** (string) - Required - The OTP token to verify. ### Response #### Success Response (200) - **valid** (boolean) - Whether the token is valid. #### Response Example { "valid": true } ``` -------------------------------- ### eXo Platform Resource Configuration (XML) Source: https://docs.exoplatform.org/guide/developer-guide/intermediate-integration/front-end-application.html Configures static resources like CSS and JavaScript for a specific portlet within the eXo Platform. It links CSS files and JavaScript bundles to a portlet, specifying their paths and any module dependencies. This allows eXo Platform to load and manage these resources correctly for the associated portlet. ```xml vue-webpack-sample vueWebpackSample Enterprise /css/sample.css vueWebpackSample vue eXoVueI18n ```