CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

adobe/aem-cloud-service

All AEM as a Cloud Service skills: component development, Workflow model design, development, triggering, launchers, debugging, and triaging, Dispatcher config authoring, advisory, incident response, performance tuning, and security hardening, Rapid Development Environment (RDE) deployment, log inspection, snapshots, and troubleshooting via `aio aem rde`, Jackrabbit Oak query/index tuning (property, Lucene index definitions), and extracting/inventorying JCR queries (XPath, SQL2, QueryBuilder) across a codebase.

Quality

85%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Overview
Quality
Evals
Security
Files

coral2-to-coral3.mdskills/migration/references/legacy-ui/dialog/

Coral 2 → Coral 3 Dialog Upgrade

In-place upgrade of _cq_dialog/.content.xml where nodes use granite/ui/components/foundation/ (without coral/). Only for action: upgrade-coral2. Inputs from .migration/lui-dialog-context.yml.


Prerequisites

  1. _cq_dialog/.content.xml classified coral2.
  2. No _cq_dialog.coral2/ backup (or user confirmed re-upgrade).

Resource Type Replacement Table

Coral 2 sling:resourceTypeCoral 3 sling:resourceTypeNotes
granite/ui/components/foundation/form/textfieldgranite/ui/components/coral/foundation/form/textfield
granite/ui/components/foundation/form/textareagranite/ui/components/coral/foundation/form/textarea
granite/ui/components/foundation/form/checkboxgranite/ui/components/coral/foundation/form/checkbox
granite/ui/components/foundation/form/selectgranite/ui/components/coral/foundation/form/select
granite/ui/components/foundation/form/radiogroupgranite/ui/components/coral/foundation/form/radiogroup
granite/ui/components/foundation/form/pathbrowsergranite/ui/components/coral/foundation/form/pathfieldComponent renamed — pathbrowser → pathfield; not a prefix-only replacement
granite/ui/components/foundation/form/fileuploadcq/gui/components/authoring/dialog/fileuploadDifferent path family — not a prefix-only replacement
granite/ui/components/foundation/form/multifieldgranite/ui/components/coral/foundation/form/multifield
granite/ui/components/foundation/form/numberfieldgranite/ui/components/coral/foundation/form/numberfield
granite/ui/components/foundation/form/datepickergranite/ui/components/coral/foundation/form/datepicker
granite/ui/components/foundation/form/hiddengranite/ui/components/coral/foundation/form/hidden
granite/ui/components/foundation/form/colorfieldgranite/ui/components/coral/foundation/form/colorfield
granite/ui/components/foundation/form/fieldsetgranite/ui/components/coral/foundation/form/fieldset
granite/ui/components/foundation/form/passwordgranite/ui/components/coral/foundation/form/password
granite/ui/components/foundation/form/autocompletegranite/ui/components/coral/foundation/form/autocomplete
granite/ui/components/foundation/form/nestedcheckboxlistgranite/ui/components/coral/foundation/form/nestedcheckboxlist
granite/ui/components/foundation/form/textgranite/ui/components/coral/foundation/form/text
granite/ui/components/foundation/form/tagfieldcq/gui/components/coral/common/form/tagfieldDifferent path family — not a prefix-only replacement
granite/ui/components/foundation/containergranite/ui/components/coral/foundation/container
granite/ui/components/foundation/fixedcolumnsgranite/ui/components/coral/foundation/fixedcolumns
granite/ui/components/foundation/tabsgranite/ui/components/coral/foundation/tabs
granite/ui/components/foundation/layouts/columngranite/ui/components/coral/foundation/layouts/column
granite/ui/components/foundation/layouts/fixedcolumnsgranite/ui/components/coral/foundation/layouts/fixedcolumns
granite/ui/components/foundation/layouts/wellgranite/ui/components/coral/foundation/layouts/well

Pattern rule: granite/ui/components/foundation/ (without coral/) → granite/ui/components/coral/foundation/. Exceptions (pathbrowser → pathfield, fileupload, tagfield) are listed explicitly above — apply each row's exact Coral 3 value, do not derive by prefix substitution. Do NOT replace cq/gui/components/authoring/dialog on the root — correct for both versions.


Additional Property Fixes

ConditionFix
datepicker missing displayedFormatAdd displayedFormat="MMMM DD, YYYY"
datepicker missing valueFormatAdd valueFormat="YYYY-MM-DD[T]HH:mm:ss.000Z"
fileupload missing useHTML5Add useHTML5="{Boolean}true"
fileupload missing uploadUrlAdd uploadUrl="${suffix.path}"
pathbrowser had rootPathCarry to converted pathfield; sanitize before writing: strip /libs/ prefix, collapse // to /
tabs container missing maximized (primary container)Add maximized="{Boolean}true"

Conversion Steps (per component)

  1. Backup: copy _cq_dialog/ → _cq_dialog.coral2/.
  2. Read _cq_dialog/.content.xml. Apply resource type replacements. Apply property fixes. Sanitize path property values (rootPath and any property whose value starts with /): strip a leading /libs/ prefix and collapse any // double-slash sequences to /.
  3. Write updated file in place.
  4. Design dialog (skip if skipReason: editable-templates-in-use): If _cq_design_dialog/ exists and contains Coral 2 resource types, apply the same resource type replacements: backup _cq_design_dialog/ → _cq_design_dialog.coral2/, apply replacements, write in place, and add <exclude pattern=".*/_cq_design_dialog\.coral2(/.*)?"/> to filter.xml.
  5. Update filter.xml: add <exclude pattern=".*/_cq_dialog\.coral2(/.*)?"/>.
  6. Report: types replaced (N), fixes applied, backup location, whether design dialog was upgraded.

Critical Rules

  • Always backup before modifying.
  • Only replace known Coral 2 types — do not touch unrecognised types.
  • pathbrowser → pathfield (different name, not prefix-only).
  • fileupload → cq/gui/components/authoring/dialog/fileupload (different path family).

skills

migration

README.md

SKILL.md

README.md

tile.json