The browser preview runs the DataMind Oda app inside one dedicated Web Worker in a browser page, for preview deployments and packaging checks. It is not a desktop run of Oda: parts of the environment are missing or replaced, and this page lists what to expect before you rely on something. How the preview starts and mounts its data is on Browser preview.
case, job control or process substitution; a trailing & runs its command to completion in place; sed runs substitution scripts only; pattern matching is JavaScript regular expressions; and the command set is coreutils only, with no git and no network tools. Commands, expansions and exit codes are on The preview shell.node:dns/ promises, node:vm, node:net, node:sqlite and node:worker_threads are placeholders. They load so that features which mention them still start, and every call they receive is refused.Pieces the preview does not carry load quietly and refuse when a call reaches them. The refusal names the module and the symbol and says it is not available in the worker host; it is written to the console first, and then the call fails. A console line looks like this:
node:zlib.gzipSync is not available in the worker host
What a refusal covers:
sha1, sha256 and sha512 can be created; any other algorithm is refused by name.request and get are refused and point to fetch instead.parseArgs is not available.node:path. win32. <name> is unreachable); the preview reports the platform as linux.What the console prints beyond these refusals is collected on Preview diagnostics.
Some dependencies are replaced with small stubs rather than missing at the module level. Each stub loads quietly, and it refuses when it is called:
unavailable when a converter is created, because conversion needs the app's engine.linux on x64 whatever your machine is, a single process, no CPU count or network interfaces from the machine, output that is never a terminal, and a Node version that is a placeholder rather than a real release.browser, require, import and default; the plain node condition is deliberately absent, so a package resolves the way a browser build expects.No. The process runner that would fetch and install dependencies refuses every call, so no package manager runs and no native dependency is built. Install packages in a desktop run of Oda instead.
Programs that would run as a Node process cannot start: the preview reports a Node executable path, but nothing can execute it, so the program fails before it can launch.
The call is refused with a message that names the module and the symbol and says it is not available in the worker host. The line is written to the console first, and then the call fails. Because the missing pieces load quietly, you meet a refusal only when a call actually reaches one.
node:dns/, node:vm, node:net, node:sqlite and node:worker_threads are structural stubs, and several individual symbols elsewhere are missing, including the compression codecs and most hash algorithms. Every call to them is refused.
The preview carries no sockets and no DNS resolver. Socket writes, socket ends, servers and client connections are refused, client websockets are not available, and a DNS lookup is refused. Outbound request and get are refused too; they point to fetch instead.
No. Conversion needs the app's own engine, which the preview does not carry, and the converter rejects with the code unavailable.
Yes. The attachment handling around the image library still loads; it is resizing and transcoding that refuse, so only that step fails.
No. The preview's filesystem has no symbolic links: creating one and reading through one are refused, and a check for a symbolic link always answers false.
No. Permission bits are stored and reported, so tools that read them see normal values, but they are never enforced: the preview's filesystem reads and writes as its owner.
Timestamps increase strictly per file, so two writes in the same millisecond still differ. That is how the preview tells an older write from a newer one.
A fixed one: linux on x64 whatever your machine is, one process, no CPU count or network interfaces from the machine, and output that is never a terminal. The Node version it reports is a placeholder, and the Windows forms of the path module are unreachable because of the platform it reports.
No. They are written as plain text, one JSON object per line; the compressed form is never used.