Returns wall-clock uptime in milliseconds since boot as a plain number.
The value is derived from a monotonic raw clock and matches the BSD uptime command, which counts time the machine spent asleep. It is strictly monotonic and unaffected by NTP or wall-clock adjustments.
The reading refreshes on every call. Subtract two readings to measure elapsed milliseconds between events, or divide by 1000 for seconds.
Declaration
Inlay_GET_BOOTTIME()
Parameters
CacheBuster
Optional
any value, used only to force FileMaker to re-evaluate the call. Ignored otherwise.
Returns
JSON string
A bare numeric string of milliseconds since boot, for example "5403122". Returns an unlicensed JSON envelope if the plugin is not licensed.
Use Cases
Measure elapsed time between two events without relying on the wall clock.
Detect whether the machine has been restarted since a prior reading.
Notes
macOS only. Calls from unsupported platforms return an error response.
macOS only. Other platforms return an unsupported message.
The result is not JSON. It is a raw number string.
Returns the public WAN IP address this machine presents to the internet.
The address is the NAT or masqueraded IP seen by an external public IP lookup service, not a private LAN address. This function runs without a license so it can be used to diagnose activation and network issues before a license is in place.
Declaration
Inlay_GET_PUBLIC_IP()
This function takes no parameters.
Returns
JSON string
On success returns {"ok":true,"ip":"x.x.x.x"}. On failure returns {"ok":false,"message":"..."}.
Use Cases
Confirm outbound internet connectivity from the FileMaker host.
Capture the WAN IP for allowlisting or support diagnostics.
Notes
Takes no arguments.
Requires outbound network access to reach the lookup service.
Opens a real-time connection diagnostic window that probes a host or IP and graphs latency.
Use this to troubleshoot FileMaker connectivity. For good interactive performance, aim to keep sustained round-trip time under about 50ms where possible. The diagnostic runs in the Inlay helper app, so the call returns as soon as the window is launched.
Declaration
Inlay_CONNECTION_DIAG("host.example.com")
Parameters
IPorDNS
Required
the host name or IP address to probe. Leading and trailing whitespace is trimmed and an empty value is rejected.
Returns
JSON string
On launch returns {"ok":true,"status":"started","address":"...","wan_ip":"..."}. The wan_ip field is best-effort and may be null. Returns {"ok":false,"message":"..."} if the address is empty or the helper cannot be found or launched.
Use Cases
Diagnose slow or dropping connections to a FileMaker Server host.
Visually confirm latency to a host before reporting a network issue.
Notes
Requires the bundled Inlay helper app. If it is missing, reinstall the plugin.
The current WAN IP is included in the window header when it can be resolved.
Calls a license-bound custom function gated by your licensee entitlement.
The first argument is the custom function name, which is tied to your license. The second argument is a JSON payload string specific to your workflow. If your license is not entitled to the named custom function, access is denied.
Contact solutions@pinethree.dev to request a custom function.
the entitled custom function name. Whitespace is trimmed and an empty value is rejected.
PayloadJson
Required
a workflow-specific payload that must be valid JSON. Invalid JSON is rejected.
Returns
JSON string
On success returns {"ok":true,"custom_function":"...","license_bound":true,"payload":{...}}. Returns a denied envelope if your license is not entitled, an unlicensed envelope if the plugin is not licensed, or {"ok":false,"message":"..."} for bad input.
Use Cases
Invoke bespoke logic delivered for your license without shipping a separate plugin.
Notes
Requires a valid Inlay license and an entitlement for the named function.
PayloadJson must parse as JSON. Compose it with JSONSetElement.
Opens the current Inlay plugin log file in the default system application.
Use this to inspect plugin activity when troubleshooting. It runs without a license so it can help diagnose activation problems before a license is in place.
Declaration
Inlay_OPEN_LOG()
This function takes no parameters.
Returns
JSON string
On success returns {"ok":true,"status":"opened","path":"..."}. Returns {"ok":false,"message":"..."} if the log path cannot be resolved, the file cannot be opened, or any argument is passed.
Use Cases
Quickly open the plugin log to review errors or recent operations.
Gather diagnostics to share with support.
Notes
Takes no arguments. Passing any argument returns a usage error.
The file opens in whatever application is registered for the log file type.
Verifies code-sign trust of a binary or app bundle using codesign and spctl.
With no argument it verifies the running FileMaker host runtime. Pass a path to verify any other binary or .app bundle instead. A trusted result means Gatekeeper-level approval, not merely the presence of a signature.
Use this in security-sensitive workflows to confirm the FileMaker runtime or helper tools are signed and notarized before proceeding.
Declaration
Inlay_VERIFY_CODESIGN()
Parameters
PathOrHost
Optional
path to a binary or .app bundle to verify. When omitted, the running FileMaker host is verified. Accepts a bare HFS path (Macintosh HD:Users:...), filemac:/..., file:/..., or a POSIX path (/Users/...).
Returns
JSON string
A JSON envelope including ok, trusted, message, target, target_kind, target_path, and signing identity fields such as identifier, team_identifier, codesign_verify_ok, spctl_assess_ok, and gatekeeper_required. trusted is true only when codesign verification, the effective Gatekeeper check, and host expectations all pass.
Use Cases
Confirm the FileMaker host process is genuinely signed before running privileged steps.
Verify a helper tool or downloaded binary is notarized before invoking it.
Notes
macOS only. Calls from unsupported platforms return an error response.
macOS only. Other platforms return an unsupported message.
Unsigned or ad-hoc signed binaries return trusted:false without raising an error.
Starts an asynchronous ping against a host and returns right away with a job label you poll later.
The job sends 5 echo requests and runs in a background thread, so this call does not block FileMaker while the host responds. Captured output is held in the plugin's in-memory job map under the label you supply. Retrieve it with Inlay_CORE_GET_PING_RESULT.
Ping and trace jobs keep separate label namespaces, so the same label can name one of each. Re-running with a label that already has a ping job overwrites the previous result.
Declaration
Inlay_CORE_RUN_PING("wan-check";"example.com")
Parameters
Label
Required
caller-chosen non-empty job key used later by Inlay_CORE_GET_PING_RESULT. Leading and trailing whitespace is trimmed.
IPorDNS
Required
host to ping. Only letters, digits, dot, colon, hyphen, and underscore are allowed (covers IPv4, IPv6, and DNS names); anything else is rejected.
Returns
JSON string
On success returns {"ok":true,"status":"started","kind":"ping","label":...,"host":...}. If the ping process cannot be launched, returns {"ok":false,"status":"spawn_failed",...}. An empty label or an invalid host returns {"ok":false,"message":...}.
Use Cases
Check reachability of a FileMaker Server or hosted resource without freezing the UI.
Kick off several ping jobs under different labels, then poll each result.
Polls a ping job started with Inlay_CORE_RUN_PING and returns its current state and captured output.
The result status is "pending", "done", or "missing". While pending, the job's partial_stdout and partial_stderr grow as the ping process writes output, so repeated calls can show progress. Once the process exits the job flips to done and carries the full output plus timing and exit code.
Declaration
Inlay_CORE_GET_PING_RESULT("wan-check")
Parameters
Label
Required
the same label passed to Inlay_CORE_RUN_PING. Leading and trailing whitespace is trimmed.
Returns
JSON string
Pending: {"ok":true,"status":"pending","kind":"ping","label":...,"host":...,"started_at_ms":...,"partial_stdout":...,"partial_stderr":...}. Done: {"ok":true,"status":"done",...,"finished_at_ms":...,"elapsed_ms":...,"exit_code":...,"stdout":...,"stderr":...} where exit_code is null if the process produced no code. Missing: {"ok":false,"status":"missing",...,"message":...} when no ping job exists for that label. An empty label returns {"ok":false,"message":...}.
Use Cases
Drive a FileMaker poll loop or Install OnTimer script that calls this until status is "done".
Show live ping progress by displaying partial_stdout while the job is pending.
Notes
Ping and trace use separate label namespaces; this only reads ping jobs.
A done job stays readable until it is overwritten by a new run with the same label or FileMaker quits.
Starts an asynchronous traceroute against a host and returns right away with a job label you poll later.
The traceroute runs in a background thread and streams its output into the job entry as each hop is printed, so polling shows the route filling in line by line. Captured output is held in the plugin's in-memory job map under the label you supply. Retrieve it with Inlay_CORE_GET_TRACE.
Ping and trace jobs keep separate label namespaces, so the same label can name one of each. Re-running with a label that already has a trace job overwrites the previous result.
Declaration
Inlay_CORE_RUN_TRACE("route-check";"example.com")
Parameters
Label
Required
caller-chosen non-empty job key used later by Inlay_CORE_GET_TRACE. Leading and trailing whitespace is trimmed.
IPorDNS
Required
host to trace. Only letters, digits, dot, colon, hyphen, and underscore are allowed (covers IPv4, IPv6, and DNS names); anything else is rejected.
Returns
JSON string
On success returns {"ok":true,"status":"started","kind":"trace","label":...,"host":...}. If the traceroute process cannot be launched, returns {"ok":false,"status":"spawn_failed",...}. An empty label or invalid host returns {"ok":false,"message":...}. On platforms other than macOS and Windows it returns {"ok":false,"message":"trace not implemented on this platform yet"}.
Use Cases
Diagnose where connectivity to a FileMaker Server or hosted endpoint breaks down along the network path.
Capture a route snapshot into a found record for support tickets.
Notes
macOS runs /usr/sbin/traceroute -q 1 -w 1 -m 20 (one query per hop, 1s wait, max 20 hops); Windows runs tracert -h 20 -w 1000.
Traceroute can take many seconds; the job stays pending until the process exits, so poll Inlay_CORE_GET_TRACE.
The job lives only in plugin memory and is lost when FileMaker quits or the plugin reloads.
Polls a traceroute job started with Inlay_CORE_RUN_TRACE and returns its current state and captured output.
The result status is "pending", "done", or "missing". While pending, partial_stdout grows hop by hop as traceroute prints each line, so repeated calls reveal the route as it is discovered. Once the process exits the job flips to done and carries the full output plus timing and exit code.
Declaration
Inlay_CORE_GET_TRACE("route-check")
Parameters
Label
Required
the same label passed to Inlay_CORE_RUN_TRACE. Leading and trailing whitespace is trimmed.
Returns
JSON string
Pending: {"ok":true,"status":"pending","kind":"trace","label":...,"host":...,"started_at_ms":...,"partial_stdout":...,"partial_stderr":...}. Done: {"ok":true,"status":"done",...,"finished_at_ms":...,"elapsed_ms":...,"exit_code":...,"stdout":...,"stderr":...} where exit_code is null if the process produced no code. Missing: {"ok":false,"status":"missing",...,"message":...} when no trace job exists for that label. An empty label returns {"ok":false,"message":...}.
Use Cases
Drive a FileMaker poll loop or Install OnTimer script that calls this until status is "done".
Display the route as it builds by showing partial_stdout while the job is pending.
Notes
Ping and trace use separate label namespaces; this only reads trace jobs.
A done job stays readable until it is overwritten by a new run with the same label or FileMaker quits.
Lists every ping and traceroute job currently held in the plugin's in-memory state.
This is a diagnostic snapshot of the job map shared by Inlay_CORE_RUN_PING and Inlay_CORE_RUN_TRACE. Each entry reports byte counts rather than full output, so use it to see what jobs exist and their status, then call Inlay_CORE_GET_PING_RESULT or Inlay_CORE_GET_TRACE for the actual text.
Declaration
Inlay_CORE_LIST_JOBS
This function takes no parameters.
Returns
JSON string
{"ok":true,"count":N,"jobs":[...]} sorted by kind then label. Every entry carries kind ("ping" or "trace"), label, status, host, and started_at_ms. Pending entries also carry partial_stdout_bytes and partial_stderr_bytes. Done entries also carry finished_at_ms, elapsed_ms, exit_code (may be null), stdout_bytes, and stderr_bytes.
Use Cases
Confirm an Inlay_CORE_RUN_PING or Inlay_CORE_RUN_TRACE call actually registered a job.
Audit which diagnostic jobs are still pending versus done during a debugging session.
Notes
Output sizes are reported as byte counts only; fetch full text with the per-job GET functions.
The map lives only in plugin memory and is empty after FileMaker quits or the plugin reloads.