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.propertiesforliferay.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 tolocal - 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 gwfor all Gradle tasks; avoidgradlewdirectly
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.