Understand why template locking is designed for browser-based workflows, and when you might configure scopes server-side for template preparation.
Browser-Focused Feature#
Template locking uses a two-surface pattern with two separate editor instances: one for designers (the Creator role) who build templates with full access, and another for end users (the Adopter role) who can only modify unlocked elements. This separation requires:
- User interaction: Different people editing in different modes
- Multiple editor instances: Separate surfaces for creators and adopters
- Visual feedback: Users see what they can and cannot edit
Server-side automation processes templates in a single execution context without user interaction. The two-surface pattern does not apply—when processing templates on the server, you work with pre-configured templates where scopes are already set.
When You Might Use Scopes Server-Side#
If you need to prepare templates for the two-surface workflow, you can configure scopes programmatically before distributing templates:
- Set
editor/selectand editing scopes on blocks that adopters should modify - Leave scopes disabled on protected elements like logos and brand assets
- Save the configured template for use in browser-based adopter surfaces
For scope configuration APIs, see Lock Content.
API Reference#
Role Management#
| Method | Description |
|---|---|
engine.editor.setRole(role) |
Set the editing role ('Creator', 'Adopter', or 'Viewer') |
engine.editor.getRole() |
Get the current editing role |
Scope Configuration#
| Method | Description |
|---|---|
engine.block.setScopeEnabled(block, scope, enabled) |
Enable or disable a scope on a block |
engine.block.isScopeEnabled(block, scope) |
Check if a scope is enabled on a block |
Common Scopes#
| Scope | Description |
|---|---|
'editor/select' |
Allow selecting the block (required for any interaction) |
'fill/change' |
Allow changing the block’s fill (images, colors) |
'text/edit' |
Allow editing text content |
'text/character' |
Allow changing text formatting (font, size, color) |
'layer/move' |
Allow moving the block |
'layer/resize' |
Allow resizing the block |
'layer/rotate' |
Allow rotating the block |
'layer/crop' |
Allow cropping the block |
'lifecycle/destroy' |
Allow deleting the block |
See the Browser Guide#
For the complete two-surface pattern implementation with interactive role switching, see the browser guide.