<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Syncplify Developers' Blog]]></title><description><![CDATA[Release notes and blog by the developers at Syncplify.]]></description><link>https://blog.syncplify.com</link><image><url>https://substackcdn.com/image/fetch/$s_!9Dt2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb33dc11f-1e7e-4d89-8614-c24873c70d3c_512x512.png</url><title>Syncplify Developers&apos; Blog</title><link>https://blog.syncplify.com</link></image><generator>Substack</generator><lastBuildDate>Fri, 10 Apr 2026 21:01:56 GMT</lastBuildDate><atom:link href="https://blog.syncplify.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Syncplify]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[syncplify@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[syncplify@substack.com]]></itunes:email><itunes:name><![CDATA[Syncplify]]></itunes:name></itunes:owner><itunes:author><![CDATA[Syncplify]]></itunes:author><googleplay:owner><![CDATA[syncplify@substack.com]]></googleplay:owner><googleplay:email><![CDATA[syncplify@substack.com]]></googleplay:email><googleplay:author><![CDATA[Syncplify]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[AFT! v4.0.0 Is Coming Soon!]]></title><description><![CDATA[First major AFT! release in four years!]]></description><link>https://blog.syncplify.com/p/aft-v400-is-coming-soon</link><guid isPermaLink="false">https://blog.syncplify.com/p/aft-v400-is-coming-soon</guid><dc:creator><![CDATA[Syncplify]]></dc:creator><pubDate>Thu, 09 Apr 2026 09:54:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Il1i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3283a05-59b9-40dc-a256-974ca844ed5c_1818x738.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Here&#8217;s a preliminary sneak-peek of the new AFT! v4.0.0 dashboard:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Il1i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3283a05-59b9-40dc-a256-974ca844ed5c_1818x738.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Il1i!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3283a05-59b9-40dc-a256-974ca844ed5c_1818x738.png 424w, https://substackcdn.com/image/fetch/$s_!Il1i!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3283a05-59b9-40dc-a256-974ca844ed5c_1818x738.png 848w, https://substackcdn.com/image/fetch/$s_!Il1i!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3283a05-59b9-40dc-a256-974ca844ed5c_1818x738.png 1272w, https://substackcdn.com/image/fetch/$s_!Il1i!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3283a05-59b9-40dc-a256-974ca844ed5c_1818x738.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Il1i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3283a05-59b9-40dc-a256-974ca844ed5c_1818x738.png" width="1456" height="591" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f3283a05-59b9-40dc-a256-974ca844ed5c_1818x738.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:591,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:99842,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.syncplify.com/i/193596225?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3283a05-59b9-40dc-a256-974ca844ed5c_1818x738.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Il1i!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3283a05-59b9-40dc-a256-974ca844ed5c_1818x738.png 424w, https://substackcdn.com/image/fetch/$s_!Il1i!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3283a05-59b9-40dc-a256-974ca844ed5c_1818x738.png 848w, https://substackcdn.com/image/fetch/$s_!Il1i!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3283a05-59b9-40dc-a256-974ca844ed5c_1818x738.png 1272w, https://substackcdn.com/image/fetch/$s_!Il1i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3283a05-59b9-40dc-a256-974ca844ed5c_1818x738.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Soon, soon, soon!</p>]]></content:encoded></item><item><title><![CDATA[21 New Functions In SyncJS Core]]></title><description><![CDATA[From HMAC signing to CSV parsing, and so much more!]]></description><link>https://blog.syncplify.com/p/21-new-functions-in-syncjs-core</link><guid isPermaLink="false">https://blog.syncplify.com/p/21-new-functions-in-syncjs-core</guid><dc:creator><![CDATA[Syncplify]]></dc:creator><pubDate>Wed, 08 Apr 2026 13:04:02 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/dc5f673c-6e5a-4db3-b400-f7daead8a3ac_683x175.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>SyncJS just got <strong>21 new core functions</strong>, available across Syncplify Server!, AFT!, and R2FS!. All of them. No flags, no tiers. If your product is up to date <em>(Server v7.1.1, R2FS! v2.0.0, and soon to be released AFT! v4.0.0)</em>, every function listed here is available in every script you write today.</p><p>Here is the complete addition:</p><p><strong>File operations</strong>: <code>GzipFile</code>, <code>GunzipFile</code>, <code>FileAgeSecs</code>, <code>FileSizeOf</code>, <code>WaitForFile</code>, <code>SplitFileByLines</code>, <code>SplitFileBySize</code></p><p><strong>Data and encoding</strong>: <code>ParseCSV</code>, <code>FormatCSV</code>, <code>ParseXML</code>, <code>Base64Encode</code>, <code>Base64Decode</code>, <code>HashString</code>, <code>FormatDateTime</code></p><p><strong>Cryptography</strong>: <code>HmacSign</code>, <code>HmacVerify</code>, <code>PGPSignFile</code>, <code>PGPVerifyFile</code></p><p><strong>Integration</strong>: <code>RunCapture</code>, <code>TcpConnect</code>, <code>SendToTeamsWebHook</code></p><h4>The three additions that change the most scripts</h4><p><strong>HMAC signing and verification</strong>. <code>HmacSign</code> and <code>HmacVerify</code> implement the pattern behind every major webhook security model: <em>GitHub, Stripe, Slack</em>, and virtually every cloud event system use HMAC-SHA256 to authenticate payloads. Until now, doing this from a SyncJS script meant shelling out to an external tool. That workaround is gone. Both functions support SHA-256 and SHA-512. <code>HmacVerify</code> uses constant-time comparison, so it is safe in authentication paths.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;javascript&quot;,&quot;nodeId&quot;:&quot;0c78f335-fe64-40c8-b6c8-6c5218628ae1&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-javascript">var key     = GetSecret("webhook-secret");
var sig     = HmacSign("sha256", key, payload);
var trusted = HmacVerify("sha256", key, payload, incomingSig);</code></pre></div><p><strong>Native CSV and XML parsing</strong>. The majority of real MFT scripts exist to read, transform, or route files based on their contents, not just their filenames. ParseCSV returns a two-dimensional array of strings. <code>ParseXML</code> returns a nested JavaScript object with a predictable structure: attributes under <code>_attrs</code>, text content under <code>_text</code>, repeated elements as arrays. Neither function requires a child process or an external dependency. The data is just there, in memory, ready to drive routing logic.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;javascript&quot;,&quot;nodeId&quot;:&quot;5382e77c-8918-4186-b1a9-2e4900e6069b&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-javascript">var rows = ParseCSV(ReadTextFile("/inbox/orders.csv"));
var doc  = ParseXML(ReadTextFile("/inbox/manifest.xml"));
Log("order count: " + rows.length + ", ship-to: " + doc.order._attrs.destination);</code></pre></div><p><strong>WaitForFile</strong>. If you have written a SyncJS script that waits for an upstream process to drop a trigger file, you have written the sleep/check/repeat loop manually. <code>WaitForFile</code> replaces it entirely. Pass a path, a timeout in milliseconds, and an optional poll interval. Get a boolean back.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;javascript&quot;,&quot;nodeId&quot;:&quot;7093aa43-8c68-48ea-94ac-4e8247418a91&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-javascript">if (!WaitForFile("/processing/trigger.flag", 30000)) {
  Log.Warn("trigger file did not arrive within 30 seconds");
  Exit(1);
}</code></pre></div><h4>The rest, in brief</h4><p><code>GzipFile</code> and <code>GunzipFile</code> compress and decompress single files in place or to a named destination. <code>SplitFileByLines</code> and <code>SplitFileBySize</code> partition large files into numbered chunks, the prerequisite step for any parallel-upload pattern. <code>FileAgeSecs</code> and <code>FileSizeOf</code> return exactly what the names say, useful for conditional logic without a full <code>StatFileSystemObject</code> call.</p><p><code>PGPSignFile</code> and <code>PGPVerifyFile</code> extend the existing <strong>PGP</strong> encrypt/decrypt pair with detached signature support. <code>HashString</code> brings string-level hashing to the same eight algorithms already supported by <code>HashFile</code>. <code>Base64Encode</code> and <code>Base64Decode</code> handle the encoding required by virtually every HTTP API.</p><p><code>RunCapture</code> turns the output of any OS command into a string your script can use directly. <code>TcpConnect</code> checks whether a host and port are reachable before committing to a full connection. <code>SendToTeamsWebHook</code> joins <em>Slack</em> and <em>Telegram</em> in the notification options. <code>FormatDateTime</code> formats timestamps using token-based patterns without requiring the standard library workarounds that JavaScript developers normally reach for.</p><h4>In conclusion</h4><p>Full documentation for every new function is in the <a href="https://docs.syncplify.com/v7/docs/scripting/">SyncJS scripting reference</a>. If you write scripts in VSCode, the <a href="https://blog.syncplify.com/p/develop-syncjs-scripts-in-vscode">Language Server extension</a> picks up all new symbols automatically after updating. No reinstall required.</p><p>And it doesn&#8217;t end here. SyncJS is becoming more and more central to the life and interoperation of all Syncplify software products, so we&#8217;re fully committed to its constant upkeep and improvement.</p>]]></content:encoded></item><item><title><![CDATA[Syncplify Server! v7.1.1 and R2FS! v2.0.1 released]]></title><description><![CDATA[Importance of this update: MINOR]]></description><link>https://blog.syncplify.com/p/syncplify-server-v711-and-r2fs-v201</link><guid isPermaLink="false">https://blog.syncplify.com/p/syncplify-server-v711-and-r2fs-v201</guid><dc:creator><![CDATA[Syncplify]]></dc:creator><pubDate>Wed, 08 Apr 2026 10:54:00 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/e06f0030-9ab2-42ae-b83a-3b3850470e96_2501x2500.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We are glad to announce that we have just released a new version of our flagship software product, Syncplify Server!</p><h4><strong>What&#8217;s changed in Server!?</strong></h4><ul><li><p>Bumped the scripting subsystem to SyncJS v4.1.2, which adds 21 brand new utility functions to the language</p></li><li><p>Fixed a bug in the Admin UI that prevented clearing the SMTP configuration</p></li><li><p>Improved UX of the WebClient! UI to more explicitly incorporate the new browser security restrictions with regards to OS interoperation with the file/directory selectors during uploads</p></li></ul><h4><strong>What&#8217;s changed in R2FS!?</strong></h4><ul><li><p>Bumped the scripting subsystem to SyncJS v4.1.2, which adds 21 brand new utility functions to the language (same as in Server!)</p></li></ul><p>Please, also read <a href="https://blog.syncplify.com/p/note-about-all-v6-upgrades">this note</a> which pertains to all updates/upgrades. And, as usual, you can <a href="https://syngo.to/download">download the most recent release from our website</a>.</p><p>Thank you all for trusting our software with your secure file transfers!</p>]]></content:encoded></item><item><title><![CDATA[Develop SyncJS scripts in VSCode (with or without AI)]]></title><description><![CDATA[SyncJS in Visual Studio Code: Language Server and AI Agent Support]]></description><link>https://blog.syncplify.com/p/develop-syncjs-scripts-in-vscode</link><guid isPermaLink="false">https://blog.syncplify.com/p/develop-syncjs-scripts-in-vscode</guid><dc:creator><![CDATA[Syncplify]]></dc:creator><pubDate>Tue, 07 Apr 2026 18:55:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Cu7n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b63e79-1363-45c2-afcb-8fc64f00b8ff_1894x907.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As SyncJS continues to expand across the Syncplify product family, now shipping in Syncplify Server! v7.1 and R2FS! v2.0, and arriving soon in its enhanced form in AFT! v4.0, one thing became clear: <strong>our customers needed proper tooling for the editors they already use</strong>.</p><p>Given that over 90% of developers work in VSCode or one of its derivatives, that was the obvious place to start.</p><p>SyncJS is 100% ECMA 5.1-compliant JavaScript at its core, but it also adds <strong>200+ functions, methods, structures, and symbols on top of the base language</strong>. Expecting every developer to memorize that extended API was never realistic.</p><p>So we built a VSCode extension that solves both problems at once: a full <em>Language Server</em> for inline documentation and auto-completion, and an <em>MCP (Model Context Protocol) server</em> so AI agents can write SyncJS scripts for you without hallucinating methods or structures that don&#8217;t exist.</p><p>Here&#8217;s how to get set up.</p><h4>1. Install the SyncJS extension</h4><p>Search for SyncJS in the VSCode Extension Marketplace and install it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Cu7n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b63e79-1363-45c2-afcb-8fc64f00b8ff_1894x907.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Cu7n!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b63e79-1363-45c2-afcb-8fc64f00b8ff_1894x907.png 424w, https://substackcdn.com/image/fetch/$s_!Cu7n!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b63e79-1363-45c2-afcb-8fc64f00b8ff_1894x907.png 848w, https://substackcdn.com/image/fetch/$s_!Cu7n!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b63e79-1363-45c2-afcb-8fc64f00b8ff_1894x907.png 1272w, https://substackcdn.com/image/fetch/$s_!Cu7n!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b63e79-1363-45c2-afcb-8fc64f00b8ff_1894x907.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Cu7n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b63e79-1363-45c2-afcb-8fc64f00b8ff_1894x907.png" width="1456" height="697" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e8b63e79-1363-45c2-afcb-8fc64f00b8ff_1894x907.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:697,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:351507,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.syncplify.com/i/193494538?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b63e79-1363-45c2-afcb-8fc64f00b8ff_1894x907.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Cu7n!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b63e79-1363-45c2-afcb-8fc64f00b8ff_1894x907.png 424w, https://substackcdn.com/image/fetch/$s_!Cu7n!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b63e79-1363-45c2-afcb-8fc64f00b8ff_1894x907.png 848w, https://substackcdn.com/image/fetch/$s_!Cu7n!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b63e79-1363-45c2-afcb-8fc64f00b8ff_1894x907.png 1272w, https://substackcdn.com/image/fetch/$s_!Cu7n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b63e79-1363-45c2-afcb-8fc64f00b8ff_1894x907.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>2. Register the MCP servers in your User profile</h4><p>Once installed, open the command palette with <code>Shift+Ctrl+P</code> and run: <strong>SyncJS: Register SyncJS MCP Servers in User Profile</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EesT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfd7906e-cf72-4320-8bc0-37945ab99d6c_610x89.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EesT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfd7906e-cf72-4320-8bc0-37945ab99d6c_610x89.png 424w, https://substackcdn.com/image/fetch/$s_!EesT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfd7906e-cf72-4320-8bc0-37945ab99d6c_610x89.png 848w, https://substackcdn.com/image/fetch/$s_!EesT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfd7906e-cf72-4320-8bc0-37945ab99d6c_610x89.png 1272w, https://substackcdn.com/image/fetch/$s_!EesT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfd7906e-cf72-4320-8bc0-37945ab99d6c_610x89.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EesT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfd7906e-cf72-4320-8bc0-37945ab99d6c_610x89.png" width="610" height="89" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dfd7906e-cf72-4320-8bc0-37945ab99d6c_610x89.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:89,&quot;width&quot;:610,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:12521,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.syncplify.com/i/193494538?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfd7906e-cf72-4320-8bc0-37945ab99d6c_610x89.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!EesT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfd7906e-cf72-4320-8bc0-37945ab99d6c_610x89.png 424w, https://substackcdn.com/image/fetch/$s_!EesT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfd7906e-cf72-4320-8bc0-37945ab99d6c_610x89.png 848w, https://substackcdn.com/image/fetch/$s_!EesT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfd7906e-cf72-4320-8bc0-37945ab99d6c_610x89.png 1272w, https://substackcdn.com/image/fetch/$s_!EesT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfd7906e-cf72-4320-8bc0-37945ab99d6c_610x89.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Reload your VSCode window when prompted for the change to take effect.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AEJ7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02f08c49-0b3c-49fa-93ba-e6b84d8c1ddc_455x128.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AEJ7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02f08c49-0b3c-49fa-93ba-e6b84d8c1ddc_455x128.png 424w, https://substackcdn.com/image/fetch/$s_!AEJ7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02f08c49-0b3c-49fa-93ba-e6b84d8c1ddc_455x128.png 848w, https://substackcdn.com/image/fetch/$s_!AEJ7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02f08c49-0b3c-49fa-93ba-e6b84d8c1ddc_455x128.png 1272w, https://substackcdn.com/image/fetch/$s_!AEJ7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02f08c49-0b3c-49fa-93ba-e6b84d8c1ddc_455x128.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AEJ7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02f08c49-0b3c-49fa-93ba-e6b84d8c1ddc_455x128.png" width="455" height="128" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/02f08c49-0b3c-49fa-93ba-e6b84d8c1ddc_455x128.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:128,&quot;width&quot;:455,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:14435,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.syncplify.com/i/193494538?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02f08c49-0b3c-49fa-93ba-e6b84d8c1ddc_455x128.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AEJ7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02f08c49-0b3c-49fa-93ba-e6b84d8c1ddc_455x128.png 424w, https://substackcdn.com/image/fetch/$s_!AEJ7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02f08c49-0b3c-49fa-93ba-e6b84d8c1ddc_455x128.png 848w, https://substackcdn.com/image/fetch/$s_!AEJ7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02f08c49-0b3c-49fa-93ba-e6b84d8c1ddc_455x128.png 1272w, https://substackcdn.com/image/fetch/$s_!AEJ7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02f08c49-0b3c-49fa-93ba-e6b84d8c1ddc_455x128.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4>3. Add a SyncJS MCP server to your project</h4><p>After reloading, open the command palette again and run <strong>MCP: List Servers</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RSl5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc093e7fe-e7a7-4f27-a3dd-52e874350741_609x89.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RSl5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc093e7fe-e7a7-4f27-a3dd-52e874350741_609x89.png 424w, https://substackcdn.com/image/fetch/$s_!RSl5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc093e7fe-e7a7-4f27-a3dd-52e874350741_609x89.png 848w, https://substackcdn.com/image/fetch/$s_!RSl5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc093e7fe-e7a7-4f27-a3dd-52e874350741_609x89.png 1272w, https://substackcdn.com/image/fetch/$s_!RSl5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc093e7fe-e7a7-4f27-a3dd-52e874350741_609x89.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RSl5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc093e7fe-e7a7-4f27-a3dd-52e874350741_609x89.png" width="609" height="89" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c093e7fe-e7a7-4f27-a3dd-52e874350741_609x89.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:89,&quot;width&quot;:609,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:10028,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.syncplify.com/i/193494538?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc093e7fe-e7a7-4f27-a3dd-52e874350741_609x89.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RSl5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc093e7fe-e7a7-4f27-a3dd-52e874350741_609x89.png 424w, https://substackcdn.com/image/fetch/$s_!RSl5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc093e7fe-e7a7-4f27-a3dd-52e874350741_609x89.png 848w, https://substackcdn.com/image/fetch/$s_!RSl5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc093e7fe-e7a7-4f27-a3dd-52e874350741_609x89.png 1272w, https://substackcdn.com/image/fetch/$s_!RSl5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc093e7fe-e7a7-4f27-a3dd-52e874350741_609x89.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Select the SyncJS flavor that matches your project: core SyncJS (symbols shared across all Syncplify products), or the extended symbol tables specific to Server! or AFT!.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5arn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd46ef262-260b-45d8-a5be-6335b2ca6b39_611x134.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5arn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd46ef262-260b-45d8-a5be-6335b2ca6b39_611x134.png 424w, https://substackcdn.com/image/fetch/$s_!5arn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd46ef262-260b-45d8-a5be-6335b2ca6b39_611x134.png 848w, https://substackcdn.com/image/fetch/$s_!5arn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd46ef262-260b-45d8-a5be-6335b2ca6b39_611x134.png 1272w, https://substackcdn.com/image/fetch/$s_!5arn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd46ef262-260b-45d8-a5be-6335b2ca6b39_611x134.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5arn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd46ef262-260b-45d8-a5be-6335b2ca6b39_611x134.png" width="611" height="134" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d46ef262-260b-45d8-a5be-6335b2ca6b39_611x134.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:134,&quot;width&quot;:611,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:14628,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.syncplify.com/i/193494538?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd46ef262-260b-45d8-a5be-6335b2ca6b39_611x134.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5arn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd46ef262-260b-45d8-a5be-6335b2ca6b39_611x134.png 424w, https://substackcdn.com/image/fetch/$s_!5arn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd46ef262-260b-45d8-a5be-6335b2ca6b39_611x134.png 848w, https://substackcdn.com/image/fetch/$s_!5arn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd46ef262-260b-45d8-a5be-6335b2ca6b39_611x134.png 1272w, https://substackcdn.com/image/fetch/$s_!5arn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd46ef262-260b-45d8-a5be-6335b2ca6b39_611x134.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4>4. Prompt your AI agent</h4><p>That&#8217;s it. Your AI agent now has precise, complete knowledge of the SyncJS language: its syntax, object model, and the full functional API. Write your prompt as you normally would.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oB68!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feac2e083-5253-4363-838a-15c81d6a4171_545x192.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oB68!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feac2e083-5253-4363-838a-15c81d6a4171_545x192.png 424w, https://substackcdn.com/image/fetch/$s_!oB68!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feac2e083-5253-4363-838a-15c81d6a4171_545x192.png 848w, https://substackcdn.com/image/fetch/$s_!oB68!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feac2e083-5253-4363-838a-15c81d6a4171_545x192.png 1272w, https://substackcdn.com/image/fetch/$s_!oB68!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feac2e083-5253-4363-838a-15c81d6a4171_545x192.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oB68!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feac2e083-5253-4363-838a-15c81d6a4171_545x192.png" width="545" height="192" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eac2e083-5253-4363-838a-15c81d6a4171_545x192.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:192,&quot;width&quot;:545,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:27392,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.syncplify.com/i/193494538?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feac2e083-5253-4363-838a-15c81d6a4171_545x192.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oB68!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feac2e083-5253-4363-838a-15c81d6a4171_545x192.png 424w, https://substackcdn.com/image/fetch/$s_!oB68!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feac2e083-5253-4363-838a-15c81d6a4171_545x192.png 848w, https://substackcdn.com/image/fetch/$s_!oB68!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feac2e083-5253-4363-838a-15c81d6a4171_545x192.png 1272w, https://substackcdn.com/image/fetch/$s_!oB68!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feac2e083-5253-4363-838a-15c81d6a4171_545x192.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4>5. Your SyncJS script is ready</h4><p>The agent produces a working SyncJS script. Review it, make any adjustments you want, then paste it directly into your Syncplify product&#8217;s web UI.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sV7s!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F575c83c0-4dca-4038-b460-4421f78870d0_1747x1027.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sV7s!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F575c83c0-4dca-4038-b460-4421f78870d0_1747x1027.png 424w, https://substackcdn.com/image/fetch/$s_!sV7s!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F575c83c0-4dca-4038-b460-4421f78870d0_1747x1027.png 848w, https://substackcdn.com/image/fetch/$s_!sV7s!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F575c83c0-4dca-4038-b460-4421f78870d0_1747x1027.png 1272w, https://substackcdn.com/image/fetch/$s_!sV7s!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F575c83c0-4dca-4038-b460-4421f78870d0_1747x1027.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sV7s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F575c83c0-4dca-4038-b460-4421f78870d0_1747x1027.png" width="1456" height="856" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/575c83c0-4dca-4038-b460-4421f78870d0_1747x1027.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:856,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:329339,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.syncplify.com/i/193494538?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F575c83c0-4dca-4038-b460-4421f78870d0_1747x1027.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sV7s!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F575c83c0-4dca-4038-b460-4421f78870d0_1747x1027.png 424w, https://substackcdn.com/image/fetch/$s_!sV7s!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F575c83c0-4dca-4038-b460-4421f78870d0_1747x1027.png 848w, https://substackcdn.com/image/fetch/$s_!sV7s!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F575c83c0-4dca-4038-b460-4421f78870d0_1747x1027.png 1272w, https://substackcdn.com/image/fetch/$s_!sV7s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F575c83c0-4dca-4038-b460-4421f78870d0_1747x1027.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The SyncJS VSCode extension is available today. Whether you prefer writing scripts by hand with full auto-completion and inline documentation, or delegating the first draft to an AI agent that actually knows the language, the tooling is there.</p><p>Install it, connect your agent, and let SyncJS do the heavy lifting across your entire Syncplify environment.</p>]]></content:encoded></item><item><title><![CDATA[Syncplify Server! v7.1.0 and R2FS! v2.0.0 released]]></title><description><![CDATA[Importance of this update: HIGH]]></description><link>https://blog.syncplify.com/p/syncplify-server-v710-and-r2fs-v200</link><guid isPermaLink="false">https://blog.syncplify.com/p/syncplify-server-v710-and-r2fs-v200</guid><dc:creator><![CDATA[Syncplify]]></dc:creator><pubDate>Tue, 07 Apr 2026 11:09:05 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/f54fbf07-f418-44fa-a95c-f80314b1abc3_2501x2500.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We are glad to announce that we have just released a new version of our flagship software product, Syncplify Server!</p><h4><strong>What&#8217;s changed in Server!?</strong></h4><ul><li><p>Extracted the SyncJS scripting language (Syncplify&#8217;s very own extended version of JavaScript built on top of the ECMA 5.1 standard with the addition of many dedicated functions, methods, and types) into an independent shared library so that it can be ported to R2FS! and AFT! as well with perfect consistency</p></li><li><p>Removed deprecated <code>ioutil</code> package (Go) and switched to the recommended alternatives (<code>io</code>, <code>os</code>, etc&#8230;)</p></li><li><p>Fixed a bug with the multiplexed session counter for SSH-based subsystems which could, in certain conditions, &#8220;forget&#8221; to decrement the number of total active sessions in the dashboard</p></li><li><p>Fixed several cosmetic (and one functional) bugs in the Admin UI</p></li></ul><h4><strong>What&#8217;s changed in R2FS!?</strong></h4><ul><li><p>Added full SyncJS scripting and event-handling (uses the same SyncJS extended version of JavaScript also available in the Server! software) - now you can run your SyncJS scripts on the storage side as well!</p></li><li><p>Added indexed/searchable VFS-level &#8220;op log&#8221; directly in R2FS!&#8217;s back-end database (does not substitute log files, which are still there for full auditing trail)</p></li></ul><p>Please, also read <a href="https://blog.syncplify.com/p/note-about-all-v6-upgrades">this note</a> which pertains to all updates/upgrades. And, as usual, you can <a href="https://syngo.to/download">download the most recent release from our website</a>.</p><p>Thank you all for trusting our software with your secure file transfers!</p>]]></content:encoded></item><item><title><![CDATA[A searchable op-log is also coming to R2FS! v2.0]]></title><description><![CDATA[Granular, integrated, indexed, searchable operation log for the security-conscious sysadmin]]></description><link>https://blog.syncplify.com/p/a-searchable-op-log-is-also-coming</link><guid isPermaLink="false">https://blog.syncplify.com/p/a-searchable-op-log-is-also-coming</guid><dc:creator><![CDATA[Syncplify]]></dc:creator><pubDate>Fri, 03 Apr 2026 19:44:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!__cs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F314a93c2-f579-4290-b6e4-b64cdd2583e5_1507x454.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The second major feature landing in R2FS! v2.0 is a <strong>fully indexed, searchable operation log</strong>, stored directly in R2FS!&#8217;s SyngoDB backend, and &#8220;querable&#8221; (if the word even exists) from the admin UI in seconds.</p><p>Every file operation is recorded with timestamp, operation type, VFS, user, path(s), bytes received and sent, duration, and error status. You can filter by time range, operation, user, VFS, or any combination thereof. Precisely the kind of granular, on-demand visibility that system administrators have always wanted when something needs investigating.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!__cs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F314a93c2-f579-4290-b6e4-b64cdd2583e5_1507x454.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!__cs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F314a93c2-f579-4290-b6e4-b64cdd2583e5_1507x454.png 424w, https://substackcdn.com/image/fetch/$s_!__cs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F314a93c2-f579-4290-b6e4-b64cdd2583e5_1507x454.png 848w, https://substackcdn.com/image/fetch/$s_!__cs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F314a93c2-f579-4290-b6e4-b64cdd2583e5_1507x454.png 1272w, https://substackcdn.com/image/fetch/$s_!__cs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F314a93c2-f579-4290-b6e4-b64cdd2583e5_1507x454.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!__cs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F314a93c2-f579-4290-b6e4-b64cdd2583e5_1507x454.png" width="1456" height="439" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/314a93c2-f579-4290-b6e4-b64cdd2583e5_1507x454.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:439,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:40618,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.syncplify.com/i/193107170?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F314a93c2-f579-4290-b6e4-b64cdd2583e5_1507x454.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!__cs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F314a93c2-f579-4290-b6e4-b64cdd2583e5_1507x454.png 424w, https://substackcdn.com/image/fetch/$s_!__cs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F314a93c2-f579-4290-b6e4-b64cdd2583e5_1507x454.png 848w, https://substackcdn.com/image/fetch/$s_!__cs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F314a93c2-f579-4290-b6e4-b64cdd2583e5_1507x454.png 1272w, https://substackcdn.com/image/fetch/$s_!__cs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F314a93c2-f579-4290-b6e4-b64cdd2583e5_1507x454.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A quick clarification, though, for the security-conscious reader: this is <strong>not a replacement for the digitally signed, tamper-evident log files</strong> you already rely on. Those aren&#8217;t going anywhere.</p><p>The operation log is a complementary tool, optimized for interactive exploration rather than compliance attestation. Think of the signed log files as your forensic record and the op-log as your operational sidekick, both live side by side, each doing what they are designed to do.</p><p>As with SyncJS support, we&#8217;re not ready to commit to a specific release date, but v2.0 is close. Maybe even closer than you think.</p>]]></content:encoded></item><item><title><![CDATA[SyncJS coming soon to R2FS!]]></title><description><![CDATA[Syncplify Server!'s scripting and event-handling subsystem is being ported to R2FS! as well...]]></description><link>https://blog.syncplify.com/p/syncjs-coming-soon-to-r2fs</link><guid isPermaLink="false">https://blog.syncplify.com/p/syncjs-coming-soon-to-r2fs</guid><dc:creator><![CDATA[Syncplify]]></dc:creator><pubDate>Fri, 03 Apr 2026 11:35:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!EJkQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F548cdca2-15a7-4fbe-ab53-bfc54186be3a_1526x881.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you&#8217;ve built automation workflows on Syncplify Server!, you already know <strong>how powerful SyncJS can be</strong>. Event hooks, deep per-session control, file-system ops, HTTP/S calls, database connectivity, message queues, PGP encryption, and more&#8230; all scriptable in Syncplify&#8217;s very own extended JavaScript flavor, and portable across your entire deployment. That scripting and event handling subsystem is one of the most distinctive and beloved features of Syncplify Server!, and we&#8217;ve heard loud and clear that R2FS! users want it too.</p><p>Well, <strong>starting with R2FS! v2.0, you will have it</strong>. When this release lands, you&#8217;ll be able to execute SyncJS scripts not just on the server side (as always), but directly on the storage side via the R2FS! storage connector.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EJkQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F548cdca2-15a7-4fbe-ab53-bfc54186be3a_1526x881.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EJkQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F548cdca2-15a7-4fbe-ab53-bfc54186be3a_1526x881.png 424w, https://substackcdn.com/image/fetch/$s_!EJkQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F548cdca2-15a7-4fbe-ab53-bfc54186be3a_1526x881.png 848w, https://substackcdn.com/image/fetch/$s_!EJkQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F548cdca2-15a7-4fbe-ab53-bfc54186be3a_1526x881.png 1272w, https://substackcdn.com/image/fetch/$s_!EJkQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F548cdca2-15a7-4fbe-ab53-bfc54186be3a_1526x881.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EJkQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F548cdca2-15a7-4fbe-ab53-bfc54186be3a_1526x881.png" width="1456" height="841" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/548cdca2-15a7-4fbe-ab53-bfc54186be3a_1526x881.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:841,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:61470,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.syncplify.com/i/193059992?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F548cdca2-15a7-4fbe-ab53-bfc54186be3a_1526x881.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!EJkQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F548cdca2-15a7-4fbe-ab53-bfc54186be3a_1526x881.png 424w, https://substackcdn.com/image/fetch/$s_!EJkQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F548cdca2-15a7-4fbe-ab53-bfc54186be3a_1526x881.png 848w, https://substackcdn.com/image/fetch/$s_!EJkQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F548cdca2-15a7-4fbe-ab53-bfc54186be3a_1526x881.png 1272w, https://substackcdn.com/image/fetch/$s_!EJkQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F548cdca2-15a7-4fbe-ab53-bfc54186be3a_1526x881.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>That means <strong>your event-driven logic can live where your data lives</strong>, opening up automation patterns that simply weren&#8217;t possible before. </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ayZQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d95eb77-88a7-4dcb-bbc7-be6596486d56_1527x302.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ayZQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d95eb77-88a7-4dcb-bbc7-be6596486d56_1527x302.png 424w, https://substackcdn.com/image/fetch/$s_!ayZQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d95eb77-88a7-4dcb-bbc7-be6596486d56_1527x302.png 848w, https://substackcdn.com/image/fetch/$s_!ayZQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d95eb77-88a7-4dcb-bbc7-be6596486d56_1527x302.png 1272w, https://substackcdn.com/image/fetch/$s_!ayZQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d95eb77-88a7-4dcb-bbc7-be6596486d56_1527x302.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ayZQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d95eb77-88a7-4dcb-bbc7-be6596486d56_1527x302.png" width="1456" height="288" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0d95eb77-88a7-4dcb-bbc7-be6596486d56_1527x302.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:288,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:29515,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.syncplify.com/i/193059992?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d95eb77-88a7-4dcb-bbc7-be6596486d56_1527x302.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ayZQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d95eb77-88a7-4dcb-bbc7-be6596486d56_1527x302.png 424w, https://substackcdn.com/image/fetch/$s_!ayZQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d95eb77-88a7-4dcb-bbc7-be6596486d56_1527x302.png 848w, https://substackcdn.com/image/fetch/$s_!ayZQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d95eb77-88a7-4dcb-bbc7-be6596486d56_1527x302.png 1272w, https://substackcdn.com/image/fetch/$s_!ayZQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d95eb77-88a7-4dcb-bbc7-be6596486d56_1527x302.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>And because SyncJS scripts are already fully portable between Syncplify Server! and R2FS!, any script you&#8217;ve written and tested today will run without modification tomorrow <em>(with the exception of server-only contexts that simply don&#8217;t exist in R2FS!, but that&#8217;s obvious)</em>.</p><p>We&#8217;re not ready to announce a specific release date yet, but R2FS! v2.0 is on the near horizon. Stay tuned.</p>]]></content:encoded></item><item><title><![CDATA[The Dirty Secret of Cloud MFT]]></title><description><![CDATA[Your vendor holds the keys to your data...]]></description><link>https://blog.syncplify.com/p/the-dirty-secret-of-cloud-mft</link><guid isPermaLink="false">https://blog.syncplify.com/p/the-dirty-secret-of-cloud-mft</guid><dc:creator><![CDATA[Syncplify]]></dc:creator><pubDate>Thu, 02 Apr 2026 13:03:30 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/cdd606d5-381b-48f1-9d43-102c7ffc28b0_5156x3437.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Let&#8217;s talk about something the managed file transfer industry would rather you not think about too carefully.</p><p>When you move your organization&#8217;s file transfer operations to a cloud MFT platform, you typically hand your data to a third party. That&#8217;s the obvious part, the part everyone understands and accepts as the <strong>trade-off for convenience and scalability</strong>. What&#8217;s less obvious, and far less discussed, is what happens to certain encryption keys.</p><p>Most cloud MFT platforms encrypt your data at rest. They&#8217;ll tell you this proudly, and technically, they&#8217;re telling the truth. What they&#8217;re less eager to explain is that in the overwhelming majority of cases, they also manage the encryption keys. Their infrastructure. Their key management system. Their access.</p><p>Which means, if you read between the lines: they can decrypt your data. Not because they want to, not because they&#8217;re malicious, but simply because the architecture permits it.</p><h4>Why This Matters More Than You Think</h4><p>Consider what that architectural reality means in practice.</p><p>It means that a sufficiently serious <strong>breach of your vendor&#8217;s infrastructure is also a breach of your data</strong>, regardless of how strong the encryption algorithm is. Encryption only protects data if the keys are out of reach. When the keys live alongside the data in the same vendor environment, you don&#8217;t have two locks on the door. You have one.</p><p>It means that a subpoena, a national security letter, or a government inquiry directed at your vendor potentially becomes your problem, even if your organization was never the target. Your data&#8217;s legal exposure is no longer purely a function of your own legal standing.</p><p>It gets worse: It means that <strong>a rogue insider at your vendor has a theoretical path to your most sensitive files</strong>. Again, not likely. But in regulated industries, &#8220;not likely&#8221; is not a compliance posture.</p><p>It means, bluntly, that you&#8217;ve outsourced not just the infrastructure but the trust model itself.</p><h4>The Industry Has Normalized Something It Shouldn&#8217;t Have</h4><p>The uncomfortable truth is that most organizations never ask these questions during vendor evaluation. &#8220;Do you encrypt data at rest?&#8221; gets a yes, the checkbox gets checked, and the conversation moves on. The far more important question, <strong>&#8220;Who holds the encryption keys, and what would it take for someone other than us to access them?&#8221;</strong>, rarely gets asked.</p><p>This isn&#8217;t a criticism of IT and security teams. The cloud MFT market has spent years (and a remarkable amount of dollars) conditioning buyers to treat server-side encryption as sufficient. But it isn&#8217;t. Not for organizations operating in regulated industries, not for organizations handling sensitive partner data, and not for any organization that takes data sovereignty seriously.</p><p>The standard should be simple: <strong>your data should be encrypted in a way that makes it technically impossible for anyone other than you to access it</strong>. Not policy-impossible. Not contractually-impossible. Technically impossible.</p><h4>What Good Actually Looks Like</h4><p>True data sovereignty in a cloud file transfer context requires one thing above all else: encryption keys that never leave your control, managed on infrastructure you own, in a network you control.</p><p>This means the encryption and decryption of your data at rest happens on your side of the boundary, not your vendor&#8217;s. It means your vendor&#8217;s cloud infrastructure acts as a secure, highly available relay, moving encrypted data it cannot read, between parties it authenticates but cannot impersonate. It means that <strong>even in the worst-case scenario, a complete compromise of the cloud layer yields nothing useful to an attacker, because the keys were never there</strong>.</p><p>This architecture exists. It&#8217;s not theoretical, it&#8217;s not exotic, and it doesn&#8217;t require sacrificing the operational benefits of a managed cloud service.</p><p>It does, however, require vendors who were willing to build it that way from the ground up, rather than retrofit the appearance of security onto a model that was never designed with true key separation in mind.</p><p>At Syncplify, we&#8217;ve always believed that the right answer to &#8220;who holds the keys?&#8221; is unambiguous: you do. Always. Without exception.</p><p>We&#8217;ll have more to say about how we&#8217;ve put that belief into practice. Stay tuned.</p>]]></content:encoded></item><item><title><![CDATA[Syncplify Server! v7.0.17 released]]></title><description><![CDATA[Importance of this update: NORMAL]]></description><link>https://blog.syncplify.com/p/syncplify-server-v7017-released</link><guid isPermaLink="false">https://blog.syncplify.com/p/syncplify-server-v7017-released</guid><dc:creator><![CDATA[Syncplify]]></dc:creator><pubDate>Wed, 01 Apr 2026 10:14:36 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/1570278c-1395-4db5-a32d-18fc352fc078_2501x2500.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We are glad to announce that we have just released a new version of our flagship software product, Syncplify Server!</p><h4><strong>What&#8217;s changed?</strong></h4><ul><li><p>Fixed a WebClient! UI bug that was recently introduced, which prevented multi-file/folder, nested, batched uploads, and improved the upload UX at the same time</p></li><li><p>Fixed 3 more accessibility issues in the WebClient! UI</p></li><li><p>Fixed a sanitization step in the Admin UI&#8217;s VFS page which, in some cases, would prevent saving the at-rest encryption passphrase for cloud-based VFS types (S3, Azure, GCP)</p></li><li><p>Used more efficient &#8220;scroller&#8221; based approach for configuration backup and restores, which improves the speed of these two operations by about 15%, and provides for more granular and graceful error handling</p></li></ul><p>Please, also read <a href="https://blog.syncplify.com/p/note-about-all-v6-upgrades">this note</a> which pertains to all updates/upgrades. And, as usual, you can <a href="https://syngo.to/download">download the most recent release from our website</a>.</p><p>Thank you all for trusting our software with your secure file transfers!</p>]]></content:encoded></item><item><title><![CDATA[Syncplify Server! NOT affected by AXIOS npm supply chain attack]]></title><description><![CDATA[Keeping up with our perfect security record...]]></description><link>https://blog.syncplify.com/p/syncplify-server-not-affected-by</link><guid isPermaLink="false">https://blog.syncplify.com/p/syncplify-server-not-affected-by</guid><dc:creator><![CDATA[Syncplify]]></dc:creator><pubDate>Tue, 31 Mar 2026 20:44:46 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/bbf82dd4-b56b-482d-a9a8-8510ed07992d_599x337.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>By now, most of the world has heard about what may be the most catastrophic supply chain attack ever recorded. If you haven&#8217;t, here are the details: <a href="https://www.malwarebytes.com/blog/news/2026/03/axios-supply-chain-attack-chops-away-at-npm-trust">https://www.malwarebytes.com/blog/news/2026/03/axios-supply-chain-attack-chops-away-at-npm-trust</a></p><p>Once again, Syncplify is happy to report that none of our products is affected. Like Heartbleed, like Terrapin, and now like this: Syncplify software is safe by design.</p>]]></content:encoded></item><item><title><![CDATA[Twelve Years. Zero CVEs.]]></title><description><![CDATA[And what that actually means....]]></description><link>https://blog.syncplify.com/p/twelve-years-zero-cves</link><guid isPermaLink="false">https://blog.syncplify.com/p/twelve-years-zero-cves</guid><dc:creator><![CDATA[Syncplify]]></dc:creator><pubDate>Tue, 31 Mar 2026 13:03:35 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/72053b69-6684-4bc2-b309-025fb9887684_5156x3437.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There is a question that does not come up often enough in enterprise file transfer evaluations.</p><p>Not &#8220;does it support SFTP?&#8221; Not &#8220;can it integrate with our storage?&#8221; Not even &#8220;how does it handle high concurrency?&#8221;</p><p>The question is: <strong>Has it ever been breached? Does it have a CVE record?</strong></p><p>That two-part question, asked seriously, changes the conversation entirely.</p><h4>What the Category Has Been Through</h4><p>Managed file transfer is not a quiet corner of enterprise software. Over the past several years, it has been one of the most actively targeted categories in the threat landscape. <strong>Vulnerabilities in widely deployed MFT platforms have been exploited at scale, leading to data breaches affecting hundreds of organizations at a time, across finance, healthcare, government, and critical infrastructure.</strong></p><p>Anyone who follows security news knows exactly which incidents we are referring to. And the organizations affected were not careless. Many had security teams, compliance programs, and vendor due diligence processes. They simply trusted platforms that turned out to have exploitable flaws.</p><p>In file transfer, the software itself is often the attack surface.</p><h4>What Zero CVEs Actually Means for a Compliance Buyer</h4><p>Syncplify Server! had its first public release in 2013. As of today, it has <strong>never had a single CVE entry in the NIST National Vulnerability Database, and it has never been the subject of a successful breach</strong>.</p><p>That is twelve years of continuous operation in one of the most hostile software categories in enterprise IT.</p><p>When your organization undergoes a SOC2 audit, an ISO 27001 review, a HIPAA assessment, or a regulatory examination, one of the most uncomfortable questions an auditor can ask is: <em>&#8220;Has any component of your file transfer infrastructure ever had a known exploitable vulnerability?&#8221;</em></p><p>With Syncplify Server!, the answer is simply no. No caveats, no remediation history, no patch timelines, no incident response documentation. Just no.</p><p>That is a different position to be in than most.</p><h4>Why the Architecture Matters More Than the Track Record</h4><p>A clean record is only as meaningful as the engineering decisions behind it.</p><p>Syncplify Server! was designed from the ground up with a narrow, well-defined scope. It does not carry decades of legacy protocol baggage. It does not have a sprawling plugin ecosystem that expands the attack surface. <strong>Every feature was added deliberately, with security properties considered as part of the design, not bolted on afterward.</strong></p><p>The reverse-connection storage model in R2FS!, the cryptographically signed audit logs added in v7.0.14, the SyncJS scripting sandbox: these are not marketing features. They are the visible surface of a design philosophy applied consistently since day one.</p><p>The CVE record is a consequence of that philosophy. Not a lucky outcome.</p><h4>For Organizations Where the Answer Matters</h4><p>If your organization operates in financial services, healthcare, life sciences, government, or any environment where the data moving through your file transfer infrastructure is regulated, sensitive, or irreplaceable, the security posture of the platform itself is not a secondary concern. It is a primary one.</p><p>In those environments, a twelve-year zero-CVE record is not a footnote.</p><p>The NIST NVD is public. The record speaks for itself. Anyone can independently verify the claims we made here above.</p>]]></content:encoded></item><item><title><![CDATA[Syncplify Server! v7.0.16 released]]></title><description><![CDATA[Importance of this update: NORMAL]]></description><link>https://blog.syncplify.com/p/syncplify-server-v7016-released</link><guid isPermaLink="false">https://blog.syncplify.com/p/syncplify-server-v7016-released</guid><dc:creator><![CDATA[Syncplify]]></dc:creator><pubDate>Tue, 31 Mar 2026 10:57:27 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/786adfb7-adba-4745-b592-d87eb6e02940_2501x2500.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We are happy to announce that we have just released a new version of our flagship software product, Syncplify Server!</p><h4><strong>What&#8217;s changed?</strong></h4><ul><li><p>Vastly improved tombstone management for the HA synchronization database, making the <em>sync</em> operation between HA nodes up to 10x faster</p></li><li><p>Fixed a glitch in the configuration of at-rest encryption that only affected Azure and GCP VFs types</p></li><li><p>Added &#8220;Secret&#8221; management to the Admin UI and <code>GetSecret</code> method to the scripting engine, to safely store encrypted secrets in Syncplify Server!&#8217;s database and use them from your event-handling scripts</p></li><li><p>Ported over all the &#8220;client objects&#8221; from AFT!, they are now all also available in Syncplify Server!&#8217;s scripting engine (reached 100% parity of features)</p></li><li><p>Resolved a few minor accessibility issues in the SuperAdmin, Admin, and WebClient! UIs</p></li><li><p>Updated OpenAPI definitions and software manual to reflect the new features and capabilities</p></li></ul><p>Please, also read <a href="https://blog.syncplify.com/p/note-about-all-v6-upgrades">this note</a> which pertains to all updates/upgrades. And, as usual, you can <a href="https://syngo.to/download">download the most recent release from our website</a>.</p><p>Thank you all for trusting our software with your secure file transfers!</p>]]></content:encoded></item><item><title><![CDATA[Syncplify Server! v7.0.15 released]]></title><description><![CDATA[Importance of this update: MINOR]]></description><link>https://blog.syncplify.com/p/syncplify-server-v7015-released</link><guid isPermaLink="false">https://blog.syncplify.com/p/syncplify-server-v7015-released</guid><dc:creator><![CDATA[Syncplify]]></dc:creator><pubDate>Thu, 26 Mar 2026 10:49:55 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/e0f58945-063b-4c84-9b38-fe59b469af4b_2501x2500.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We are happy to announce that we have just released a new version of our flagship software product, Syncplify Server!</p><h4><strong>What&#8217;s changed?</strong></h4><ul><li><p>Added the ability to specify a custom HELO/EHLO string in the SMTP configuration settings</p></li><li><p>Fixed a WebClient!-specific glitch that prevented users authenticated from LDAP groups from sharing files/folders, but only when the Home-VFS had dynamic parameters in its target configuration</p></li><li><p>Resolved a few minor accessibility issues in the SuperAdmin, Admin, and WebClient! UIs</p></li></ul><p>Please, also read <a href="https://blog.syncplify.com/p/note-about-all-v6-upgrades">this note</a> which pertains to all updates/upgrades. And, as usual, you can <a href="https://syngo.to/download">download the most recent release from our website</a>.</p><p>Thank you all for trusting our software with your secure file transfers!</p>]]></content:encoded></item><item><title><![CDATA[Digitally signed, forensically auditable logs!]]></title><description><![CDATA[Now available in Syncplify Server! v7.0.14]]></description><link>https://blog.syncplify.com/p/digitally-signed-forensically-auditable</link><guid isPermaLink="false">https://blog.syncplify.com/p/digitally-signed-forensically-auditable</guid><dc:creator><![CDATA[Syncplify]]></dc:creator><pubDate>Tue, 24 Mar 2026 16:30:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!i99N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4146818e-3a97-4bbe-93ec-7b6af5956ecf_1914x779.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Most file-transfer servers can produce logs.</p><p>For organizations operating in highly regulated markets, that is no longer enough.</p><p>When a security incident, compliance review, customer dispute, or forensic investigation happens, the key question is not simply whether an event was logged. The real question is whether the audit trail itself can still be trusted.</p><p>That is why Syncplify Server! v7.0.14 introduces <strong>cryptographically secure, digitally signed, forensically auditable logs</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WxaZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd84f8072-af50-4c4d-8b30-abc11abb3d4b_1640x783.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WxaZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd84f8072-af50-4c4d-8b30-abc11abb3d4b_1640x783.png 424w, https://substackcdn.com/image/fetch/$s_!WxaZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd84f8072-af50-4c4d-8b30-abc11abb3d4b_1640x783.png 848w, https://substackcdn.com/image/fetch/$s_!WxaZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd84f8072-af50-4c4d-8b30-abc11abb3d4b_1640x783.png 1272w, https://substackcdn.com/image/fetch/$s_!WxaZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd84f8072-af50-4c4d-8b30-abc11abb3d4b_1640x783.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WxaZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd84f8072-af50-4c4d-8b30-abc11abb3d4b_1640x783.png" width="1456" height="695" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d84f8072-af50-4c4d-8b30-abc11abb3d4b_1640x783.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:695,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:130138,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.syncplify.com/i/191805415?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd84f8072-af50-4c4d-8b30-abc11abb3d4b_1640x783.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WxaZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd84f8072-af50-4c4d-8b30-abc11abb3d4b_1640x783.png 424w, https://substackcdn.com/image/fetch/$s_!WxaZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd84f8072-af50-4c4d-8b30-abc11abb3d4b_1640x783.png 848w, https://substackcdn.com/image/fetch/$s_!WxaZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd84f8072-af50-4c4d-8b30-abc11abb3d4b_1640x783.png 1272w, https://substackcdn.com/image/fetch/$s_!WxaZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd84f8072-af50-4c4d-8b30-abc11abb3d4b_1640x783.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The new auditable log setting (highlighted by the red frame)</figcaption></figure></div><p>This feature is built for organizations where audit integrity is not optional. Financial services, healthcare, life sciences, government, and other regulated sectors need more than visibility. They need <strong>defensible records</strong>. They need tamper evidence. They need to know that if someone attempts to alter the history of a transfer after the fact, that alteration will not go unnoticed.</p><p>Plain logs are useful for troubleshooting. In high-accountability environments, though, they are not enough. They can record a story, but they do not necessarily prove that the story remained intact.</p><p>Digitally signed audit logs are designed to address that.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!i99N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4146818e-3a97-4bbe-93ec-7b6af5956ecf_1914x779.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!i99N!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4146818e-3a97-4bbe-93ec-7b6af5956ecf_1914x779.png 424w, https://substackcdn.com/image/fetch/$s_!i99N!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4146818e-3a97-4bbe-93ec-7b6af5956ecf_1914x779.png 848w, https://substackcdn.com/image/fetch/$s_!i99N!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4146818e-3a97-4bbe-93ec-7b6af5956ecf_1914x779.png 1272w, https://substackcdn.com/image/fetch/$s_!i99N!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4146818e-3a97-4bbe-93ec-7b6af5956ecf_1914x779.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!i99N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4146818e-3a97-4bbe-93ec-7b6af5956ecf_1914x779.png" width="1456" height="593" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4146818e-3a97-4bbe-93ec-7b6af5956ecf_1914x779.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:593,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:429655,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.syncplify.com/i/191805415?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4146818e-3a97-4bbe-93ec-7b6af5956ecf_1914x779.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!i99N!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4146818e-3a97-4bbe-93ec-7b6af5956ecf_1914x779.png 424w, https://substackcdn.com/image/fetch/$s_!i99N!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4146818e-3a97-4bbe-93ec-7b6af5956ecf_1914x779.png 848w, https://substackcdn.com/image/fetch/$s_!i99N!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4146818e-3a97-4bbe-93ec-7b6af5956ecf_1914x779.png 1272w, https://substackcdn.com/image/fetch/$s_!i99N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4146818e-3a97-4bbe-93ec-7b6af5956ecf_1914x779.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Actual v7.0.14 log: every line is signed (&#8220;sig&#8221;) and forensically verifiable</figcaption></figure></div><p>With v7.0.14, Syncplify Server! strengthens the integrity of the audit trail itself. That gives security, compliance, and executive leadership something stronger than &#8220;we captured the event.&#8221; It gives them a record for which integrity can be verified.</p><p>For CTOs, CIOs, CISOs, and other technical decision-makers, this matters for a very practical reason: file transfer systems often sit directly in the path of sensitive business processes. Financial records, healthcare data, regulated documents, legal archives, claims, reports, exports, and customer files all move through these systems. When they do, the surrounding audit trail can become just as important as the transfer itself.</p><p>And when scrutiny arrives, organizations are expected not only to have controls in place, but also to demonstrate that those controls were real, effective, and enforced. That is much easier to do when the integrity of the underlying logs does not depend on trust alone.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!urXT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e4c83a-9541-4747-9889-17ae1123b3c1_1015x673.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!urXT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e4c83a-9541-4747-9889-17ae1123b3c1_1015x673.png 424w, https://substackcdn.com/image/fetch/$s_!urXT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e4c83a-9541-4747-9889-17ae1123b3c1_1015x673.png 848w, https://substackcdn.com/image/fetch/$s_!urXT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e4c83a-9541-4747-9889-17ae1123b3c1_1015x673.png 1272w, https://substackcdn.com/image/fetch/$s_!urXT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e4c83a-9541-4747-9889-17ae1123b3c1_1015x673.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!urXT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e4c83a-9541-4747-9889-17ae1123b3c1_1015x673.png" width="1015" height="673" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c8e4c83a-9541-4747-9889-17ae1123b3c1_1015x673.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:673,&quot;width&quot;:1015,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:163189,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.syncplify.com/i/191805415?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e4c83a-9541-4747-9889-17ae1123b3c1_1015x673.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!urXT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e4c83a-9541-4747-9889-17ae1123b3c1_1015x673.png 424w, https://substackcdn.com/image/fetch/$s_!urXT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e4c83a-9541-4747-9889-17ae1123b3c1_1015x673.png 848w, https://substackcdn.com/image/fetch/$s_!urXT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e4c83a-9541-4747-9889-17ae1123b3c1_1015x673.png 1272w, https://substackcdn.com/image/fetch/$s_!urXT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8e4c83a-9541-4747-9889-17ae1123b3c1_1015x673.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The &#8220;logverify&#8221; app in action (log verified, chain intact)</figcaption></figure></div><p>If a regulator, auditor, customer, or incident response team asks whether the logs can be relied upon, &#8220;we have logs&#8221; is not the strongest possible answer.</p><p><strong>&#8220;We have logs whose integrity we can defend&#8221; is.</strong></p><p>That is the difference Syncplify Server! v7.0.14 is designed to make.</p><p>If your organization operates in a market where <strong>auditability is not optional</strong>, v7.0.14 is a release you will want to prioritize.</p>]]></content:encoded></item><item><title><![CDATA[Syncplify Server! v7.0.14 released]]></title><description><![CDATA[Importance of this update: HIGH]]></description><link>https://blog.syncplify.com/p/syncplify-server-v7014-released</link><guid isPermaLink="false">https://blog.syncplify.com/p/syncplify-server-v7014-released</guid><dc:creator><![CDATA[Syncplify]]></dc:creator><pubDate>Tue, 24 Mar 2026 15:36:59 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/7d710a62-306c-4dd8-9d4e-6fc1629ece8e_2501x2500.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We are happy to announce that we have just released a new version of our flagship software product, Syncplify Server!</p><h4><strong>What&#8217;s changed?</strong></h4><ul><li><p>Fixed the <em>SSSync</em> database collections for HA-nodes that were previously upgraded from an old Syncplify Server! version 6.x. If you have an instance of a high-availability set that was upgraded from v6.x, please, bear in mind:</p><ul><li><p>Upgrading to v7.0.14+ is <strong>absolutely necessary</strong> to resolve inter-node synchronization issues, and prevent future ones</p></li><li><p><strong>This upgrade may take a very long time (even &gt; 10 minutes in some cases), let the installer run, it&#8217;s not stuck, please be patient</strong></p></li></ul></li><li><p>Added (optional) <strong>cryptographically secure and auditable log file &#8220;rolling&#8221; digital signatures</strong>, forensically provable, ideal for customers working in highly regulated environments (dedicated blog post  coming soon on this topic)</p></li><li><p>Added the ability to optionally cycle (rotate) log files on a daily basis, in addition to the size-based rotation logic which is still present</p></li><li><p>Fixed the behavior of the LIST command in the FTP(E/S) protocol handler to correctly handle wildcard restrictions</p></li><li><p>Further refinement to the dereferencing of AD group users with regards to objects (directories and files) shared via WebClient! which now correctly honor parametric VFS configurations for this type of users</p></li><li><p>Upgraded the back-end SyngoDB to the most recent version which comes with significant performance improvements</p></li><li><p>Fixed a few minor glitches in the SuperAdmin and Admin UIs</p></li></ul><p>Please, also read <a href="https://blog.syncplify.com/p/note-about-all-v6-upgrades">this note</a> which pertains to all updates/upgrades. And, as usual, you can <a href="https://syngo.to/download">download the most recent release from our website</a>.</p><p>Thank you all for trusting our software with your secure file transfers!</p>]]></content:encoded></item><item><title><![CDATA[R2FS! Comparative Performance Test]]></title><description><![CDATA[Huge security boost, without the slowdown...]]></description><link>https://blog.syncplify.com/p/r2fs-comparative-performance-test</link><guid isPermaLink="false">https://blog.syncplify.com/p/r2fs-comparative-performance-test</guid><dc:creator><![CDATA[Syncplify]]></dc:creator><pubDate>Fri, 20 Mar 2026 11:59:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RsHw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ba996b-b9db-4efa-963f-c406d3773624_1843x546.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In a <a href="https://blog.syncplify.com/p/a-beautiful-zero-trust-file-pipeline">previous post</a> we showed a secure ingestion pipeline built with <strong>Syncplify Server! v7</strong> and <strong>R2FS!</strong>, where files are staged locally, scanned, and only then written to backend storage through a reverse connection.</p><p>That design keeps the storage subnet completely private (no inbound firewall rules, no NAT, no mounted shares) but it also raises an obvious question:</p><p><strong>How much performance do you lose?</strong></p><p>To find out, we ran a quick stress test using our internal multi-protocol testing tool called <strong>Grinder</strong>.</p><p>Same server, same network, same client, same settings; The only difference was the storage target.</p><p>On the left, files are written to the Syncplify Server!&#8217;s local disk.</p><p>On the right, the same workload is written to a NAS located in a private subnet, reached through R2FS!.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RsHw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ba996b-b9db-4efa-963f-c406d3773624_1843x546.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RsHw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ba996b-b9db-4efa-963f-c406d3773624_1843x546.png 424w, https://substackcdn.com/image/fetch/$s_!RsHw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ba996b-b9db-4efa-963f-c406d3773624_1843x546.png 848w, https://substackcdn.com/image/fetch/$s_!RsHw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ba996b-b9db-4efa-963f-c406d3773624_1843x546.png 1272w, https://substackcdn.com/image/fetch/$s_!RsHw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ba996b-b9db-4efa-963f-c406d3773624_1843x546.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RsHw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ba996b-b9db-4efa-963f-c406d3773624_1843x546.png" width="1456" height="431" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a6ba996b-b9db-4efa-963f-c406d3773624_1843x546.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:431,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:159669,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.syncplify.com/i/191572765?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ba996b-b9db-4efa-963f-c406d3773624_1843x546.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RsHw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ba996b-b9db-4efa-963f-c406d3773624_1843x546.png 424w, https://substackcdn.com/image/fetch/$s_!RsHw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ba996b-b9db-4efa-963f-c406d3773624_1843x546.png 848w, https://substackcdn.com/image/fetch/$s_!RsHw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ba996b-b9db-4efa-963f-c406d3773624_1843x546.png 1272w, https://substackcdn.com/image/fetch/$s_!RsHw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ba996b-b9db-4efa-963f-c406d3773624_1843x546.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Direct disk VFS on the left, R2FS!-managed storage on the right</figcaption></figure></div><p>The local disk test reached about 130 MB/s.</p><p>Through R2FS!, with two extra network hops, encryption, and a reverse tunnel, the transfer rate was still around 120 MB/s. That&#8217;s only a 7.7% performance penalty!</p><p>That&#8217;s the key takeaway.</p><p>When adding R2FS! into the mix, the performance impact is surprisingly small! Small enough, in fact, that in most real-life deployments the added isolation (security) is easily worth it.</p><p>Remember that in this setup <strong>the storage system never accepts inbound connections at all</strong>. The R2FS! agent connects outbound to Syncplify Server!, which means the backend can stay behind a strict firewall while still being exposed as a VFS on the server.</p><p>You get segmentation, scanning, and controlled access, without turning your storage network into part of the DMZ. And all this without sacrificing performance.</p><p>For completeness: yes, the stress tool shown in the screenshot is ours.</p><p>We built <strong>Grinder</strong> in-house to test Syncplify Server! and R2FS! under high concurrency across SFTP, HTTPS, and FTP/FTPS, and it&#8217;s what we use internally to validate designs like this.</p><p>R2FS! was designed to improve security, not speed, but it&#8217;s nice to see that you don&#8217;t have to give up much performance to get it.</p>]]></content:encoded></item><item><title><![CDATA[A Beautiful Zero-Trust File Pipeline]]></title><description><![CDATA[(with Syncplify Server! v7 and R2FS! v1)]]></description><link>https://blog.syncplify.com/p/a-beautiful-zero-trust-file-pipeline</link><guid isPermaLink="false">https://blog.syncplify.com/p/a-beautiful-zero-trust-file-pipeline</guid><dc:creator><![CDATA[Syncplify]]></dc:creator><pubDate>Tue, 17 Mar 2026 21:37:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!NkUt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4928ac93-5a7a-48a8-86e7-ec2ce4a5a9c2_1280x628.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every once in a while, a customer deployment comes along that makes us stop and say:</p><blockquote><p>&#8220;Yes. This is exactly what these features were built for.&#8221;</p></blockquote><p>Recently, one of our enterprise customers shared a planned architecture for a secure file-transfer workflow using <strong>Syncplify Server! v7</strong> together with <strong>Syncplify R2FS!</strong>, and we were genuinely impressed by how clean, safe, and flexible the design is.</p><p>With their permission (and with all identifying details removed), we&#8217;re sharing this use-case because it perfectly demonstrates how Syncplify&#8217;s VFS, Virtual Folders, SyncJS, and R2FS! can be combined to build a <strong>zero-trust ingestion pipeline</strong> without any extra middleware... and <strong>without exposing internal storage to the network</strong>.</p><h2>The Problem</h2><p>The customer needed to solve a very common (yet very tricky!) requirement:</p><ul><li><p>External clients must upload files</p></li><li><p>Files must be scanned before reaching internal storage</p></li><li><p>Internal storage must never be exposed directly</p></li><li><p>Outbound files must still be accessible immediately</p></li><li><p>Upload workflows may use temp files, renames, or staging folders</p></li><li><p>The storage subnet must not accept inbound connections</p></li><li><p>No NAT or port-forwarding to internal storage should be required</p></li></ul><p>In other words: Allow file transfers, but never trust them, and <strong>never expose the backend</strong>.</p><h2>The Key Idea</h2><p>Instead of letting users write directly to backend storage, the customer designed a pipeline where:</p><ol><li><p>Files land on the Syncplify Server! local disk</p></li><li><p>A script scans them</p></li><li><p>Only clean files are moved to backend storage via R2FS!</p></li><li><p>Backend storage is exposed back to the user as read-only</p></li></ol><p>This turns Syncplify Server! into a <strong>security gate</strong>, and R2FS! into a <strong>secure outbound bridge</strong> to internal storage.</p><p>The crucial detail here is that <strong>R2FS! connects outbound from the storage side</strong>, meaning:</p><ul><li><p>No inbound firewall rules are required</p></li><li><p>No NAT is required</p></li><li><p>No port forwarding to the storage network</p></li><li><p>The storage subnet remains completely private</p></li></ul><p>This is the main reason R2FS! exists.</p><p>You can read more about this architecture here:<br><a href="https://www.syncplify.com/syncplifyr2fs">https://www.syncplify.com/syncplifyr2fs</a></p><h2>High-Level Architecture</h2><p>At a high level, the system works like this:</p><ul><li><p>Users upload into a staging area on Syncplify Server!</p></li><li><p>Event handlers trigger scanning</p></li><li><p>Clean files are copied to an R2FS! VFS</p></li><li><p>R2FS! delivers them to internal storage through an outbound-only connection</p></li><li><p>Internal storage is exposed back to the user as outbound folder</p></li></ul><p>The most important rule in this design is: No file can ever reach internal storage unless the script allows it, and the storage network never accepts inbound connections.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NkUt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4928ac93-5a7a-48a8-86e7-ec2ce4a5a9c2_1280x628.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NkUt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4928ac93-5a7a-48a8-86e7-ec2ce4a5a9c2_1280x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!NkUt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4928ac93-5a7a-48a8-86e7-ec2ce4a5a9c2_1280x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!NkUt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4928ac93-5a7a-48a8-86e7-ec2ce4a5a9c2_1280x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!NkUt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4928ac93-5a7a-48a8-86e7-ec2ce4a5a9c2_1280x628.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NkUt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4928ac93-5a7a-48a8-86e7-ec2ce4a5a9c2_1280x628.jpeg" width="1280" height="628" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4928ac93-5a7a-48a8-86e7-ec2ce4a5a9c2_1280x628.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:628,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:67082,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.syncplify.com/i/191306377?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4928ac93-5a7a-48a8-86e7-ec2ce4a5a9c2_1280x628.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NkUt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4928ac93-5a7a-48a8-86e7-ec2ce4a5a9c2_1280x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!NkUt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4928ac93-5a7a-48a8-86e7-ec2ce4a5a9c2_1280x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!NkUt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4928ac93-5a7a-48a8-86e7-ec2ce4a5a9c2_1280x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!NkUt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4928ac93-5a7a-48a8-86e7-ec2ce4a5a9c2_1280x628.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Why R2FS! Is Critical Here</h2><p>In a traditional setup, the Syncplify host would need direct access to backend storage via:</p><ul><li><p>SMB/CIFS</p></li><li><p>NFS</p></li><li><p>mounted disk</p></li><li><p>VPN</p></li><li><p>port forwarding</p></li><li><p>firewall rules</p></li></ul><p>All of these increase the attack surface.</p><p>With <strong>Syncplify R2FS!</strong>, the model is reversed.</p><p>The storage system connects outbound to Syncplify Server!, not the other way around.</p><p>This provides several major security benefits:</p><ul><li><p>No inbound connectivity to the storage subnet</p></li><li><p>No NAT rules required</p></li><li><p>No port forwarding required</p></li><li><p>Storage can sit behind a strict firewall</p></li><li><p>Backend can even be in a different network zone</p></li><li><p>Syncplify Server! never needs direct file-system access to the actual data storage</p></li></ul><p>This makes R2FS! ideal for:</p><ul><li><p>DMZ-to-internal storage bridges</p></li><li><p>zero-trust architectures</p></li><li><p>segmented networks</p></li><li><p>high-security environments</p></li></ul><p>Exactly the scenario this customer implemented.</p><h2>Using Virtual Folders to Separate Inbound and Outbound</h2><p>The user&#8217;s home directory is built using:</p><ul><li><p>Local disk VFS for inbound files</p></li><li><p>R2FS! VFS injected as a virtual folder for outbound files</p></li></ul><p>This ensures:</p><ul><li><p>Uploads go only to staging</p></li><li><p>Internal storage is read-only for the user</p></li><li><p>Backend storage is never written directly</p></li></ul><p>Because virtual folders currently mount entire VFS objects, the customer created two VFS per customer:</p><ul><li><p>one for inbound staging</p></li><li><p>one for outbound R2FS!</p></li></ul><p>This is only a convenience limitation, not a functional one, and the design remains very clean.</p><h2>Handling Real-World Upload Workflows</h2><p>Real clients rarely upload files in one step.</p><p>Common patterns include:</p><ul><li><p>.tmp during upload</p></li><li><p>write -&gt; rename</p></li><li><p>upload to /temp</p></li><li><p>move after complete</p></li></ul><p>If scanning runs too early, the file is incomplete.<br>If scanning runs too late, unsafe data could pass through.</p><p>The solution was to trigger the script on:</p><ul><li><p>AfterFileUpload</p></li><li><p>AfterFileRename</p></li></ul><p>and ignore temporary files.</p><p>Example logic:</p><ul><li><p>Ignore .tmp</p></li><li><p>Ignore /temp/</p></li><li><p>Scan only finalized files</p></li></ul><p>This ensures scanning runs exactly once, at the right time.</p><h2>SyncJS Automation + External Scanner</h2><p>The entire secure move to backend storage is handled with SyncJS, including calling an external scanning tool.</p><p>Example script:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;javascript&quot;,&quot;nodeId&quot;:&quot;a771866a-60c0-4763-b03a-ac4dc8b3e1b4&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-javascript">var originVfs = GetCurrentVFS();

if (originVfs == null) {
  Exit();
}

var fname = Session.GetRelPath();

// ignore temp files

if (fname.endsWith(&#8221;.tmp&#8221;) || fname.indexOf(&#8221;/temp/&#8221;) &gt;= 0) {
  Exit();
}

// run external scanner (example)

var scan = Run(&#8221;powershell.exe&#8221;, &#8220;-File C: \\scripts\\ scan.ps1\&#8221;&#8220; + fname + &#8220;\&#8221;&#8220;);

if (scan.ExitCode != 0) {
  Log(&#8221;Scan failed, file not accepted&#8221;);
  Exit();
}

var recipientVfs = new VirtualFSByName(&#8221;r2fs_vfs1&#8221;);

if (recipientVfs != null) {
  var resp = originVfs.CopyToVFS(fname, recipientVfs, fname);
  if (resp.Ok()) {
    Log(&#8221;File copied to R2FS VFS&#8221;);
  } else {
    Log(&#8221;Error: &#8220;+resp.ErrorMsg());
  }
}</code></pre></div><p>This script:</p><ul><li><p>avoids uploads that are not yet complete</p></li><li><p>runs an external scan</p></li><li><p>copies only clean files</p></li><li><p>sends them to the R2FS! VFS</p></li><li><p>lets R2FS! deliver them to internal storage</p></li></ul><p>No middleware required.</p><h2>Security Properties of This Design</h2><p>This architecture guarantees:</p><ul><li><p>No un-scanned file reaches backend storage</p></li><li><p>Internal storage never accepts inbound connections</p></li><li><p>No NAT or port forwarding required</p></li><li><p>Syncplify is the only exposed service</p></li><li><p>Backend stays isolated</p></li><li><p>Any scanner can be used</p></li><li><p>Upload workflows remain compatible</p></li><li><p>Outbound files are immediately visible</p></li></ul><p>This is effectively a <strong>zero-trust file gateway built entirely with Syncplify software</strong>.</p><h2>Where This Pattern Works Best</h2><p>This architecture is ideal for:</p><ul><li><p>Media ingest pipelines</p></li><li><p>Broadcast / MAM systems</p></li><li><p>Financial data exchange</p></li><li><p>Healthcare file intake</p></li><li><p>Government secure transfers</p></li><li><p>Segmented enterprise networks</p></li><li><p>Air-gapped storage environments</p></li><li><p>Zero-trust infrastructure</p></li></ul><h2>Final Thoughts</h2><p>We love seeing customers use Syncplify products this way.</p><p>This deployment combines:</p><ul><li><p>Virtual File Systems</p></li><li><p>Virtual folders</p></li><li><p>SyncJS scripting</p></li><li><p>Event handlers</p></li><li><p>External scanning</p></li><li><p>R2FS! outbound storage bridge</p></li></ul><p>to create a secure, elegant, and fully automated file pipeline, without adding extra servers, without opening firewall holes, and without exposing internal storage.</p><p>Exactly the kind of architecture these features were designed for.</p>]]></content:encoded></item><item><title><![CDATA[Syncplify Server! v7.0.13 released]]></title><description><![CDATA[Importance of this update: NORMAL]]></description><link>https://blog.syncplify.com/p/syncplify-server-v7013-released</link><guid isPermaLink="false">https://blog.syncplify.com/p/syncplify-server-v7013-released</guid><dc:creator><![CDATA[Syncplify]]></dc:creator><pubDate>Sat, 14 Mar 2026 16:13:17 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/da9921c6-d1d3-495d-9bfc-d404343ebdb4_2501x2500.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We are happy to announce that we have just released a new version of our flagship software product, Syncplify Server!</p><h4><strong>What&#8217;s changed?</strong></h4><ul><li><p>Vastly improved the dereferencing of AD user account data for &#8220;LDAP Group&#8221; accounts, for which the maximum number of concurrent connections per user will now take into account the actual UPN of the user in the group in which they have been authenticated</p></li><li><p>Fixed three minor/cosmetic bugs in the WebClient! UI (these bugs did not affect its functionality, nevertheless we keep trying to improve all aspects of our UIs and we act upon our customers&#8217; reports)</p></li></ul><p>Please, also read <a href="https://blog.syncplify.com/p/note-about-all-v6-upgrades">this note</a> which pertains to all updates/upgrades. And, as usual, you can <a href="https://syngo.to/download">download the most recent release from our website</a>.</p><p>Thank you all for trusting our software with your secure file transfers!</p>]]></content:encoded></item><item><title><![CDATA[Syncplify R2FS! v1.0.2 released]]></title><description><![CDATA[Importance of this update: MINOR]]></description><link>https://blog.syncplify.com/p/syncplify-r2fs-v102-released</link><guid isPermaLink="false">https://blog.syncplify.com/p/syncplify-r2fs-v102-released</guid><dc:creator><![CDATA[Syncplify]]></dc:creator><pubDate>Wed, 11 Mar 2026 17:21:47 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/47409422-e61e-4ef7-819d-19db44e55f3f_2501x2534.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We are happy to announce that we have just released a new version of our reverse-remote file system add-on for Syncplify Server!: R2FS!</p><h4><strong>What&#8217;s changed?</strong></h4><ul><li><p>Improved support for directory-symlinks on the storage server side: dereferencing (and therefore STAT support) is now 100% automatic and handled by R2FS! internally and seamlessly.</p></li></ul><p>As usual, you can <a href="https://syngo.to/download">download the most recent release from our website</a>.</p><p>Thank you all for trusting our software with your secure file transfers!</p>]]></content:encoded></item><item><title><![CDATA[Syncplify Server! v7.0.12 released]]></title><description><![CDATA[Importance of this update: CRITICAL (but only for high-availability deployments)]]></description><link>https://blog.syncplify.com/p/syncplify-server-v7012-released</link><guid isPermaLink="false">https://blog.syncplify.com/p/syncplify-server-v7012-released</guid><dc:creator><![CDATA[Syncplify]]></dc:creator><pubDate>Wed, 11 Mar 2026 17:18:34 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/9dd5cf86-6e67-4f85-bd64-e6675b6d1ca9_2501x2500.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We are happy to announce that we have just released a new version of our flagship software product, Syncplify Server!</p><h4><strong>What&#8217;s changed?</strong></h4><ul><li><p>Fixed a critical bug related to lock-synchronization that affected the Windows version of our Web/REST service, exclusively limited to the high-availability (HA) subsystem - customers running Syncplify Server! in stand-alone or single-node deployments can safely skip this update.</p></li></ul><p>Please, also read <a href="https://blog.syncplify.com/p/note-about-all-v6-upgrades">this note</a> which pertains to all updates/upgrades. And, as usual, you can <a href="https://syngo.to/download">download the most recent release from our website</a>.</p><p>Thank you all for trusting our software with your secure file transfers!</p>]]></content:encoded></item></channel></rss>