What problem does it solve? Importing Object Definitions, Object Entries, Workflow Definitions, Roles, and other resources into Liferay — especially into system sites like Guest where Site Initializers are blocked — requires correctly configuring Batch Client Extensions, a process with silent failure modes (missing assemble: block, wrong siteId targeting) that produce zero errors and no imported data. ## Core Features & Use Cases - Batch CX authoring: Provides the minimal client-extension.yaml (including the mandatory assemble: block), OAuth scope configuration, and the *.batch-engine-data.json file format with className, createStrategy, and taskItemDelegateName conventions. - Site targeting: Documents the verified siteId parameter mechanism (group key, numeric group ID, or external reference code like L_GUEST) for scoping imports to a specific site, including the Guest-site workaround for blocked Site Initializers. - Support matrix and debugging: Distinguishes proven resource types (Objects, List Types, Workflows, SXP Blueprints, Document Data Definition Types) from untested ones (Documents, Pages, Web Content bodies), plus deployment verification via bundle headers and BatchEngineImportTaskExecutorImpl log lines. - Use Case: You need to seed Object Entries into the Guest site where a Site Initializer throws RequiredGroupException. Build a batch CX with "siteId": "L_GUEST", deploy it, and confirm the import by querying dateModified on the live entries. ## Quick Start Create a Liferay batch client extension that imports my Object Definitions and Object Entries into the Guest site, with the correct client-extension.yaml and batch-engine-data.json files.