Initialize a workspace
revo project as the short interactive form, or refresh an existing project with:
tsconfig.json or jsconfig.json and updates root .gitignore so generated editor bundles remain local by default. When the RevoEngine code lives in a nested directory, the root .revoengine/ directory remains the single state location and revo.json stores the workspace path.
Component pull/push creates and updates .revoengine/revo.lock.json as synchronization state.
Identity strategy
New projects should usestableKey. The configured metadata value identifies the same logical component across instances even though component and element UUIDs differ.
componentId mode only for a workspace intentionally bound to one instance.
Plan and apply missing metadata explicitly:
Pull, plan, and push
Components/__no_category__/ while the manifest preserves category: null.
Conflict model
.revoengine/revo.lock.json records the last successfully pulled or pushed remote baseline. The CLI compares three states before overwriting anything:
- current local component files;
- the lock baseline;
- current remote state.
--force bypasses lock-content safety for an explicitly selected bulk operation, but it does not bypass missing or duplicate stable identity.
Portable owners and execution policies
Useowner: { "type": "system" } for a Group or Service Account whose management owner is the built-in System account. An ordinary Service Account owner uses owner: { "type": "service-account", "stableKey": "operations-worker" }. The CLI resolves these references in the target instance. A Service Account manifest owner becomes management access; it does not grant execution roles. System itself is protected and is excluded from managed-account exports, updates, and pruning. A target without a valid physical System account is blocked before dependent writes.
Endpoint execution identifies the Component. The separate executionPolicy chooses permission identity and business currentUser behavior:
serviceAccount: { "kind": "service-account", "stableKey": "operations-worker" }. Both Endpoints and Job Templates accept INHERIT, CALLER, or SERVICE_ACCOUNT; omit serviceAccount for the first two. Only Endpoints have the independent currentUser choice. Job code sees the captured executor and records the initiator separately.
Instance execution defaults are target-local settings under Settings → Endpoints and are not copied by resource migration. Existing Job executionPrincipal manifests remain supported; use either that legacy reference or executionPolicy, not both. Writing an explicit policy clears the legacy executor alias. Configured SERVICE_ACCOUNT execution with administrator permissions requires approved Component and library code; see Endpoint configuration.
Debug local source
api.log() frames go to stderr and the terminal result goes to stdout. A copy of the result is stored under .revoengine/output/.
Local JavaScript/TypeScript library components are included as transient overrides by default. Use --no-extra-libs when you intentionally want only server-saved active libraries.
