liferay-workspace

star 0

General rules for Liferay Blade workspaces — version detection, Client Extension steering, documentation sources, MCP server setup, and directory conventions. Use when working in any Liferay workspace.

wsyski By wsyski schedule Updated 6/6/2026

name: liferay-workspace description: General rules for Liferay Blade workspaces — version detection, Client Extension steering, documentation sources, MCP server setup, and directory conventions. Use when working in any Liferay workspace.

Obsidian Project Context (First Step)

Before answering any architecture or implementation question, dispatch obsidian-helper to search the Axiell vault for the current project's notes. The vault hierarchy is:

Arena Liferay Portal  →  Arena Liferay Workspace  →  headless-delivery-ext

Run this at session start and whenever switching task context. Search for notes matching the project directory name and its parent modules. The vault is at /home/wos/Documents/Obsidian/Axiell/. Use the obsidian CLI:

obsidian search "headless-delivery-ext" Axiell
obsidian search "Arena Liferay Workspace" Axiell

If the obsidian CLI is unavailable, fall back to context from AGENTS.md and DESIGN.md. Do not skip this step — vault notes contain design decisions, troubleshooting history, and rationale not present in code.

Version Detection

Before answering technical questions, establish context:

  • Check gradle.properties for liferay.workspace.product
  • If version < 7.4: focus on traditional OSGi module development
  • If version >= 7.4 or a Quarterly Release (Q): steer towards Client Extensions, Fragments, and Objects; only suggest OSGi modules if Client Extensions cannot fulfill the requirement
  • Ensure Gradle dependencies align with target.platform.version

Documentation Sources

Authoritative Liferay documentation is the liferay-learn repository:

Topic Path
Client Extensions docs/dxp/latest/en/liferay-development/client-extensions.md
Custom Element CX docs/dxp/latest/en/liferay-development/customizing-liferays-look-and-feel/using-a-custom-element-client-extension.md
Objects docs/dxp/latest/en/liferay-development/objects.md
Fragments docs/dxp/latest/en/site-building/developer-guide/developing-page-fragments.md

For unlisted topics, use web search: site:github.com/liferay/liferay-learn [topic]

Use liferay-portal for architectural patterns and source code (may be slightly ahead of the release version).

Client Extension samples: https://github.com/liferay/liferay-portal/tree/master/workspaces/liferay-sample-workspace/client-extensions

Directory Conventions

  • Logs: bundles/tomcat/logs/
  • Configs: configs/common/ (shared), configs/[env]/ (environment-specific) — steer new users to local
  • Licenses: configs/[env]/deploy/
  • OSGi Configs source: configs/[env]/osgi/configs/
  • OSGi Configs runtime: bundles/osgi/configs/
  • Modules: modules/
  • Client Extensions: client-extensions/
  • Use blade gw for all Gradle tasks; avoid gradlew directly

MCP Server (2025.Q4+)

Available on 2025.Q4 and later behind a feature flag. Add to configs/local/portal-ext.properties:

feature.flag.LPD-63311=true
Setting Value
URL http://localhost:8080/o/mcp/sse
Transport HTTP Server Sent Events (SSE)
Authorization Basic dGVzdEBsaWZlcmF5LmNvbTp0ZXN0 (test@liferay.com:test)

Use MCP as the default tool for querying content, managing Objects, and executing portal actions. Older versions use OpenAPI endpoints.

Install via CLI
npx skills add https://github.com/wsyski/blade-workspace --skill liferay-workspace
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator