Developer Guide / Extending the Platform

Extending the Platform

Add new services and custom portlets.

Adding a microservice

  1. Create a module under the repository root following the com.portal.<service> layout.
  2. Register it as a Maven module in the parent pom.xml.
  3. Have it register with Eureka and route through the gateway.
  4. Give it its own database schema and Flyway migrations.
  5. Add it to docker-compose.yml with an internal port.
i
To deploy a new service into a running platform without a full Compose rebuild, follow the strict rules on the Service Deployer page.

Building custom portlets

Custom portlets live under custom-portlet/ and are built with Vite through the Maven frontend plugin. They are packaged and registered with the portlet service so authors can place them on pages. Follow the strict build-and-deploy rules on the Portlet Build & Deploy page.

mvn clean package -pl custom-portlet/magicvarsh-sco-portlets -DskipTests

Shared multilingual type

Use the MultilingualString type from magicvarsh-common for any field that needs per-language values; a JPA converter persists it as a locale→value map, and the shared UI components edit it on the frontend.

i
Following the existing service layout, gateway routing and Flyway conventions keeps new capabilities consistent with the rest of the platform.