<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>XOAP Docs Archive | XOAP</title>
	<atom:link href="https://xoap.io/docs/feed/" rel="self" type="application/rss+xml" />
	<link>https://xoap.io/docs/</link>
	<description>Platform for IT infrastructure and workplace automation</description>
	<lastBuildDate>Tue, 31 Mar 2026 11:00:54 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://xoap.io/wp-content/uploads/2023/11/cropped-favicon-32x32.png</url>
	<title>XOAP Docs Archive | XOAP</title>
	<link>https://xoap.io/docs/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>2026 March updates</title>
		<link>https://xoap.io/docs/2026-march-updates/</link>
					<comments>https://xoap.io/docs/2026-march-updates/#respond</comments>
		
		<dc:creator><![CDATA[Stella]]></dc:creator>
		<pubDate>Mon, 30 Mar 2026 09:15:02 +0000</pubDate>
				<guid isPermaLink="false">https://xoap.io/?post_type=docs&#038;p=31062</guid>

					<description><![CDATA[<p>This release focuses on expanding platform connectivity, strengthening the XOAP Connector lifecycle, and advancing configuration management and image workflows. Key highlights include Azure Managed Identity support for image builds, connector log streaming, a redesigned getting started experience, new pricing and bundle management, and significant backend refactoring for scalability. Configuration Management The configuration wizard has been [&#8230;]</p>
<p>The post <a href="https://xoap.io/docs/2026-march-updates/">2026 March updates</a> appeared first on <a href="https://xoap.io">XOAP</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-08f878cd wp-block-group-is-layout-flex">
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>This release focuses on expanding platform connectivity, strengthening the XOAP Connector lifecycle, and advancing configuration management and image workflows. Key highlights include Azure Managed Identity support for image builds, connector log streaming, a redesigned getting started experience, new pricing and bundle management, and significant backend refactoring for scalability.</p>
</blockquote>



<h2 class="wp-block-heading" style="font-size:38px">Configuration Management</h2>



<p>The configuration wizard has been refactored for improved usability and maintainability. Work is ongoing on styling, resource form handling, and navigation confirmation dialogs to deliver a more consistent experience.</p>



<p>A new search functionality has been added to the resource list within Configuration Management, making it easier to locate specific resources in larger environments.</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="1920" height="1049" src="https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-1-scaled.webp" alt="" class="wp-image-31065" srcset="https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-1-scaled.webp 1920w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-1-300x164.webp 300w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-1-1024x559.webp 1024w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-1-768x419.webp 768w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-1-1536x839.png 1536w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-1-2048x1118.png 2048w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-1-18x10.png 18w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<p>Compilation statuses are now surfaced directly in configuration views, and the save dialog has been updated to reflect current state more clearly.</p>



<p>Configuration version assignment has been re-implemented, resolving issues with downloading specific configuration versions.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1920" height="1049" src="https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-2-scaled.webp" alt="" class="wp-image-31066" srcset="https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-2-scaled.webp 1920w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-2-300x164.webp 300w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-2-1024x559.webp 1024w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-2-768x419.webp 768w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-2-1536x839.webp 1536w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-2-18x10.webp 18w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<p>Custom version support has also been added to the configuration wizard.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1920" height="1049" src="https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-3-scaled.webp" alt="" class="wp-image-31068" srcset="https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-3-scaled.webp 1920w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-3-300x164.webp 300w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-3-1024x559.webp 1024w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-3-768x419.webp 768w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-3-1536x839.webp 1536w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-3-18x10.webp 18w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<p>Bug fixes:</p>



<p>• Fixed password field appearing in clear text in configuration forms<br>• Fixed failed installations not being recorded in compliance history<br>• Resolved configuration group performance issues</p>



<h2 class="wp-block-heading" style="font-size:38px">Connections</h2>



<h3 class="wp-block-heading" style="font-size:28px">Azure Managed Identity Connection</h3>



<p>A new Azure connection selector has been added, supporting Managed Identities, Service Providers and Application Registrations. This complements the Azure image build improvements and eliminates the need for Public IPs on provisioned VMs.<br><br>By specifying the Application Registration, you can run a Scripted Action against a connection using Microsoft Graph API scripts. No Azure subscription is needed here. <em>Please note: This connection type does not support image management.</em></p>



<figure class="wp-block-image size-full"><img decoding="async" src="https://xoap.io/wp-content/uploads/2026/03/application-registration.png" alt="" class="wp-image-31087"/></figure>



<p>The Connections slide-out has been redesigned to include the Connector selector directly, streamlining the setup flow.</p>



<p>Bug fixes:</p>



<p>• Fixed frontend issues following API changes when creating and editing connections<br>• Adjusted run statuses to align with updated backend response format</p>



<h2 class="wp-block-heading" style="font-size:38px">Image Management</h2>



<h3 class="wp-block-heading" style="font-size:28px">Azure Image Build support</h3>



<p>The XOAP Connector now supports Azure image builds with Managed Identities, enabling full cloud-based image workflows. The connector uses an Azure Managed Identity within the subscription to create required resources and communicate securely with the XOAP backend, removing the requirement for Public IPs.</p>



<h3 class="wp-block-heading" style="font-size:28px">Operating system deprecation status</h3>



<p>A deprecation status for Operating Systems has been implemented, providing clearer lifecycle visibility across image and provisioning workflows.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1920" height="1049" src="https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-5-scaled.webp" alt="" class="wp-image-31071" srcset="https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-5-scaled.webp 1920w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-5-300x164.webp 300w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-5-1024x559.webp 1024w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-5-768x419.webp 768w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-5-1536x839.webp 1536w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-5-18x10.webp 18w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<p>Details view with deprecation status, date and days left.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1920" height="1049" src="https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-6-scaled.webp" alt="" class="wp-image-31072" srcset="https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-6-scaled.webp 1920w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-6-300x164.webp 300w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-6-1024x559.webp 1024w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-6-768x419.webp 768w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-6-1536x839.webp 1536w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-6-18x10.webp 18w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<p>Bug fixes:</p>



<p>• Fixed graphQL query adjustment for image definitions in image management.<br>• Fixed OS details table alignment and layout issues<br>• Fixed OS autounattend version refresh behavior when files change</p>



<h2 class="wp-block-heading" style="font-size:38px">Connector</h2>



<h3 class="wp-block-heading" style="font-size:28px">Log streaming</h3>



<p>The XOAP Connector now supports real-time log streaming, providing immediate visibility into connector activity without requiring manual log retrieval.</p>



<h3 class="wp-block-heading" style="font-size:28px">Connector re-packaging</h3>



<p>XOAP Connector packages inside the Workspaces and requirements have been re-packaged using PSADT 4.1.8, improving deployment reliability and compatibility.</p>



<h3 class="wp-block-heading" style="font-size:28px">Scripted Actions on Connector</h3>



<p>Scripted actions can now be executed directly on the connector, extending automation capabilities at the connector level.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1920" height="1049" src="https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-7-scaled.webp" alt="" class="wp-image-31074" srcset="https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-7-scaled.webp 1920w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-7-300x164.webp 300w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-7-1024x559.webp 1024w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-7-768x419.webp 768w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-7-1536x839.webp 1536w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-7-18x10.webp 18w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<h3 class="wp-block-heading" style="font-size:28px">Installation Tasks &amp; Agent Log Cleaner</h3>



<p>Connector installation tasks have been refined, and an agent log cleaner job has been implemented to manage log retention and reduce disk usage automatically.</p>



<p>Bug Fixes:<br>• Fixed Scripted Action logs for Connector scripts in Platform Management<br>• Resolved active runs showing incorrect status (failed) in inventory</p>



<h2 class="wp-block-heading" style="font-size:38px">Inventory</h2>



<h3 class="wp-block-heading" style="font-size:28px">PowerShell 7 support</h3>



<p>The Inventory module has been updated to support PowerShell 7 (previously limited to PowerShell Core 5.1), aligning with current platform requirements.</p>



<h2 class="wp-block-heading" style="font-size:38px">Getting Started</h2>



<p>A new central Getting Started area has been implemented in the platform shell, providing a guided onboarding experience for new users. The landing page has been redesigned and an initial layout has been defined with example flows to help users get up and running faster.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1920" height="1049" src="https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-8-scaled.webp" alt="" class="wp-image-31075" srcset="https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-8-scaled.webp 1920w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-8-300x164.webp 300w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-8-1024x559.webp 1024w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-8-768x419.webp 768w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-8-1536x839.webp 1536w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-8-18x10.webp 18w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<h3 class="wp-block-heading" style="font-size:28px">Getting Started guide for cloud images</h3>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1920" height="1049" src="https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-9-scaled.webp" alt="" class="wp-image-31077" srcset="https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-9-scaled.webp 1920w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-9-300x164.webp 300w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-9-1024x559.webp 1024w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-9-768x419.webp 768w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-9-1536x839.png 1536w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-9-2048x1118.png 2048w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-9-18x10.png 18w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<h2 class="wp-block-heading" style="font-size:38px">Documentation</h2>



<h3 class="wp-block-heading" style="font-size:28px">Documentation slide-outs</h3>



<p>In-app documentation has been extended across additional areas. Documentation is structured into:<br>• <strong>Quick guide </strong>— for fast, task-oriented help<br>•<strong> Technical documentation</strong> — for deeper, implementation-focused guidance</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1920" height="1049" src="https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-10-scaled.webp" alt="" class="wp-image-31079" srcset="https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-10-scaled.webp 1920w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-10-300x164.webp 300w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-10-1024x559.webp 1024w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-10-768x419.webp 768w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-10-1536x839.webp 1536w, https://xoap.io/wp-content/uploads/2026/03/changelog-march-2026-10-18x10.webp 18w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>
</div>
<p>The post <a href="https://xoap.io/docs/2026-march-updates/">2026 March updates</a> appeared first on <a href="https://xoap.io">XOAP</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://xoap.io/docs/2026-march-updates/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Use case: B3S/BSI Technical control mapping</title>
		<link>https://xoap.io/docs/b3s-bsi-technical-control-mapping/</link>
					<comments>https://xoap.io/docs/b3s-bsi-technical-control-mapping/#respond</comments>
		
		<dc:creator><![CDATA[Stella]]></dc:creator>
		<pubDate>Thu, 19 Feb 2026 12:49:28 +0000</pubDate>
				<guid isPermaLink="false">https://xoap.io/?post_type=docs&#038;p=29613</guid>

					<description><![CDATA[<p>XOAP automation BSI Module&#160; Control ID&#160; DetailedTechnical&#160;Requirement&#160; XOAP Automation&#160;Method&#160; SYS.1.1&#160; A1, A7, A12&#160; General Client/Server&#160;Hardening&#160; Automated removal of pre-installed bloatware; Disabling unencrypted services (Telnet, HTTP).&#160; SYS.1.1&#160; A14, A22&#160; Registry &#38; Policy Lockdown&#160; Enforcement of &#8220;No-Run&#8221; policies for unauthorized paths; Disabling LLMNR, NetBIOS over TCP/IP.&#160; SYS.1.2.2&#160; A8, A11&#160; Windows 10/11 Security&#160; Automated configuration of BitLocker (TPM); [&#8230;]</p>
<p>The post <a href="https://xoap.io/docs/b3s-bsi-technical-control-mapping/">Use case: B3S/BSI Technical control mapping</a> appeared first on <a href="https://xoap.io">XOAP</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading" style="font-size:38px">XOAP automation</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>BSI Module</strong>&nbsp;</td><td><strong>Control ID</strong>&nbsp;</td><td><strong>DetailedTechnical&nbsp;Requirement</strong>&nbsp;</td><td><strong>XOAP Automation&nbsp;Method</strong>&nbsp;</td></tr><tr><td><strong>SYS.1.1</strong>&nbsp;</td><td>A1, A7, A12&nbsp;</td><td><strong>General Client/Server&nbsp;Hardening</strong>&nbsp;</td><td>Automated removal of pre-installed bloatware; Disabling unencrypted services (Telnet, HTTP).&nbsp;</td></tr><tr><td><strong>SYS.1.1</strong>&nbsp;</td><td>A14, A22&nbsp;</td><td><strong>Registry &amp; Policy Lockdown</strong>&nbsp;</td><td>Enforcement of &#8220;No-Run&#8221; policies for unauthorized paths; Disabling LLMNR, NetBIOS over TCP/IP.&nbsp;</td></tr><tr><td><strong>SYS.1.2.2</strong>&nbsp;</td><td>A8, A11&nbsp;</td><td><strong>Windows 10/11 Security</strong>&nbsp;</td><td>Automated configuration of BitLocker (TPM); SmartScreen enforcement; Disabling Cortana/Telemetry.&nbsp;</td></tr><tr><td><strong>SYS.1.3</strong>&nbsp;</td><td>A1, A5&nbsp;</td><td><strong>Server&nbsp;Configuration</strong>&nbsp;</td><td>Deployment of secure baseline templates; Automated removal of SMBv1 and outdated PowerShell versions.&nbsp;</td></tr><tr><td><strong>OPS.1.1.4</strong>&nbsp;</td><td>A1, A3, A6&nbsp;</td><td><strong>Vulnerability&nbsp;&amp;&nbsp;Patching</strong>&nbsp;</td><td>Scheduled scanning and silent deployment of MS Security Updates and 120+ 3rd-party apps (e.g., Citrix, Java).&nbsp;</td></tr><tr><td><strong>ORP.4</strong>&nbsp;</td><td>A2, A7, A14&nbsp;</td><td><strong>Identity Management (IAM)</strong>&nbsp;</td><td>Forced MFA configuration for local/admin accounts; Automated screen lock (15 min) and login retry limits.&nbsp;</td></tr><tr><td><strong>APP.1.1</strong>&nbsp;</td><td>A2, A4&nbsp;</td><td><strong>ApplicationLifecycle</strong>&nbsp;</td><td>Automated installation and self-healing of core hospital software (HIS, PACS) to ensure version consistency.&nbsp;</td></tr><tr><td><strong>NET.1.1</strong>&nbsp;</td><td>A10, A11&nbsp;</td><td><strong>Local&nbsp;Firewall (Micro-segmentation)</strong>&nbsp;</td><td>Scripted rules for Windows Firewall to isolate VDI/Endpoints from direct Server subnet access.&nbsp;</td></tr><tr><td><strong>DER.1</strong>&nbsp;</td><td>A1, A2, A4&nbsp;</td><td><strong>Event&nbsp;Logging(SzA)</strong>&nbsp;</td><td>Automated setup of Event Forwarding (WEF) and configuration of advanced audit policies (Process Creation, File Access).&nbsp;</td></tr><tr><td><strong>CON.1</strong>&nbsp;</td><td>A3&nbsp;</td><td><strong>CryptographicProtection</strong>&nbsp;</td><td>System-wide enforcement of TLS 1.3 and disabling of weak ciphers (RC4, 3DES, MD5).&nbsp;</td></tr><tr><td><strong>INF.2</strong>&nbsp;</td><td>A1&nbsp;</td><td><strong>Device Control</strong>&nbsp;</td><td>Policy-based disabling of USB Mass Storage, FireWire, and Thunderbolt ports on public terminals.&nbsp;</td></tr><tr><td><strong>APP.1.4</strong>&nbsp;</td><td>A2, A5&nbsp;</td><td><strong>Browser Security</strong>&nbsp;</td><td>Hardening of MS Edge/Chrome (disabling sync, forcing safe browsing, extension allowlisting).&nbsp;</td></tr></tbody></table></figure>



<p></p>
<p>The post <a href="https://xoap.io/docs/b3s-bsi-technical-control-mapping/">Use case: B3S/BSI Technical control mapping</a> appeared first on <a href="https://xoap.io">XOAP</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://xoap.io/docs/b3s-bsi-technical-control-mapping/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Standardizing on premises OS images</title>
		<link>https://xoap.io/docs/standardizing-on-premises-os-images/</link>
					<comments>https://xoap.io/docs/standardizing-on-premises-os-images/#respond</comments>
		
		<dc:creator><![CDATA[Stella]]></dc:creator>
		<pubDate>Wed, 11 Feb 2026 10:02:25 +0000</pubDate>
				<guid isPermaLink="false">https://xoap.io/?post_type=docs&#038;p=29358</guid>

					<description><![CDATA[<p>1. Overview This guide walks you through the&#160;end‑to‑end process of standardizing on-premises operating system images with XOAP.&#160;The goal is to help you build&#160;repeatable, compliant, and provider‑agnostic base images&#160;that can be used consistently across on-premises deployments on either VMware vSphere, Nutanix or XenServer.&#160; What Are Standardized on-premises OS Images?&#160; Standardized Cloud OS Images are&#160;centrally defined, versioned, [&#8230;]</p>
<p>The post <a href="https://xoap.io/docs/standardizing-on-premises-os-images/">Standardizing on premises OS images</a> appeared first on <a href="https://xoap.io">XOAP</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-08f878cd wp-block-group-is-layout-flex">
<h2 class="wp-block-heading overview-flow" style="font-size:38px">1. Overview</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>This guide walks you through the&nbsp;<strong>end‑to‑end process of standardizing on-premises operating system images with XOAP.&nbsp;</strong>The goal is to help you build&nbsp;<strong>repeatable, compliant, and provider‑agnostic base images</strong>&nbsp;that can be used consistently across on-premises deployments on either VMware vSphere, Nutanix or XenServer.&nbsp;</p>
</blockquote>



<figure class="wp-block-image size-full"><img decoding="async" src="https://xoap.io/wp-content/uploads/2026/02/connect-azure-tenant-image-management-xoap.svg" alt="" class="wp-image-29435"/></figure>



<h3 class="wp-block-heading" style="font-size:28px">What Are Standardized on-premises OS Images?&nbsp;</h3>



<p>Standardized Cloud OS Images are&nbsp;<strong>centrally defined, versioned, and automated operating system images&nbsp;that:&nbsp;</strong></p>



<ul class="wp-block-list">
<li>Follow a common baseline (security, hardening, tooling)&nbsp;</li>



<li>Are built in a reproducible way&nbsp;</li>



<li>Can be reused across multiple environments and providers&nbsp;</li>



<li>Serve as the foundation for higher‑level automation (platform management)&nbsp;</li>
</ul>



<p>XOAP acts as the&nbsp;<strong>control plane</strong>&nbsp;that defines&nbsp;what&nbsp;an image should look like and&nbsp;how&nbsp;it is built, while the actual build execution happens inside the target environment.&nbsp;</p>



<h3 class="wp-block-heading" style="font-size:28px">What is the difference between images being created in the cloud and on-premises</h3>



<p>Creating images in the cloud and on-premises follows the same high-level goal—producing a reusable, standardized machine image—but differs significantly in implementation details.&nbsp;&nbsp;&nbsp;</p>



<p>In on-premises environments, image creation typically relies on full OS installers and requires an explicit&nbsp;<strong>autounattend.xml</strong>&nbsp;for Windows to automate setup steps such as disk partitioning, locale, users, and initial configuration; additional scripts are needed to configure&nbsp;<strong>WinRM</strong>, open or adjust the&nbsp;<strong>Windows Firewall</strong>, and install the appropriate&nbsp;<strong>hypervisor tools</strong>&nbsp;(for example, VMware Tools or XenServer guest tools) to ensure manageability and performance.&nbsp;&nbsp;</p>



<p>In cloud environments, many of these steps are partially abstracted by the platform through metadata services and pre-configured base images, but customization scripts are still required to align with enterprise standards. </p>



<p>For&nbsp;<strong>Linux</strong>, both cloud and on-premises image builds require unattended installation mechanisms (for example&nbsp;<strong>Kickstart</strong>,&nbsp;<strong>Preseed</strong>, or&nbsp;<strong>Cloud-Init</strong>) along with post-install scripts to configure SSH access, firewall rules, networking, time synchronization, and to install the relevant hypervisor or cloud-agent packages, ensuring the image integrates cleanly with the target runtime platform.&nbsp;</p>



<h3 class="wp-block-heading" style="font-size:28px">High‑Level Architecture – How It Works&nbsp;</h3>



<p>At a high level, the process looks like this:&nbsp;</p>



<ol class="wp-block-list">
<li>XOAP defines operating systems, builders, and image definitions&nbsp;</li>



<li>An on‑premises&nbsp;<strong>Connector</strong>&nbsp;executes builds locally&nbsp;</li>



<li>Images are created using native provider tooling&nbsp;</li>



<li>Results are tracked, versioned, and reused&nbsp;</li>
</ol>



<p>Key design principles:&nbsp;</p>



<ul class="wp-block-list">
<li><strong>No public inbound access required</strong>&nbsp;for XOAP&nbsp;</li>



<li><strong>Least</strong><strong>‑</strong><strong>privilege access</strong>&nbsp;using native identity concepts&nbsp;</li>



<li><strong>Separation of control plane and execution plane</strong>&nbsp;</li>
</ul>



<h3 class="wp-block-heading" style="font-size:28px">Short Overview of the End‑to‑End Flow&nbsp;</h3>



<ul class="wp-block-list">
<li>Prepare prerequisites&nbsp;</li>



<li>Deploy a Connector&nbsp;</li>



<li>Add an on-premises Connection&nbsp;</li>



<li>Add and manage Operating Systems&nbsp;</li>



<li>Configure Builders&nbsp;</li>



<li>Create Image Definitions&nbsp;</li>



<li>Run Image Builds&nbsp;</li>



<li>Validate the created images&nbsp;</li>



<li>Troubleshoot if required&nbsp;</li>



<li>Next steps and extensions&nbsp;</li>
</ul>



<h2 class="wp-block-heading prerequisites-on-premises prerequisites-title" style="font-size:38px">2. Prerequisites</h2>



<p>Before you start, ensure the following prerequisites are met:&nbsp;</p>



<h3 class="wp-block-heading" style="font-size:28px">General</h3>



<ul class="wp-block-list">
<li>An active XOAP Workspace&nbsp;</li>



<li>Access to at least one supported on-premises virtualization platform&nbsp;</li>



<li>Permissions to create images and identities in the target environment (solution specific)&nbsp;</li>



<li>An Linux or Windows VM, to install the XOAP Connector which acts a s a proxy&nbsp;</li>



<li>If a proxy is used for internet connection, proxy credentials are needed for the Connector&nbsp;</li>



<li>Connector has access to the created images with required ports (WinRM 8595, 8596)&nbsp;</li>



<li>An ISO on the datastore of the desired platform&nbsp;</li>



<li>The SHA256 hash of the iso&nbsp;</li>
</ul>



<h3 class="wp-block-heading tabs-title" style="font-size:28px">Cloud‑Specific&nbsp;</h3>



<h4 class="wp-block-heading tab" style="font-size:28px">vSphere&nbsp;&nbsp;</h4>



<pre class="wp-block-code"><code>Required privileges at vCenter level (minimum set): 

    •   Datastore 
    •   Allocate space 
    •   Browse datastore 
    •   Low level file operations 
    •   Network 
    •   Assign network 
    •   Resource 
    •   Assign virtual machine to resource pool 
    •   Virtual Machine → Inventory 
    •   Create new 
    •   Register 
    •   Remove 
    •   Virtual Machine → Configuration 
    •   Add new disk 
    •   Add or remove device 
    •   Change CPU count 
    •   Change memory 
    •   Settings 
    •   Virtual Machine → Interaction 
    •   Power on 
    •   Power off 
    •   Reset 
    •   Virtual Machine → Provisioning 
    •   Allow disk access 
    •   Allow read-only disk access 
    •   vApp 
    •   Import 

Best practices: 
    •   Create a dedicated vCenter role for Packer/XOAP 
    •   Assign the role at Datacenter or Folder level 
    •   Use a service account, not a personal user </code></pre>



<h4 class="wp-block-heading tab" style="font-size:28px">Nutanix&nbsp;</h4>



<pre class="wp-block-code"><code>Required roles / permissions: 
    •   Ability to create, update, and delete VMs 
    •   Image upload and management permissions 
    •   Network assignment permissions 
    •   Disk attach/detach permissions 

Recommended built-in roles: 
    •   Infrastructure Admin (broad, easiest) 
    •   Or a custom role with: 
    •   VM Create / Delete 
    •   Image Create / Update 
    •   Network View / Attach 

Best practices: 
    •   Use a service account in Prism Central 
    •   Scope permissions to a specific project if possible</code></pre>



<h4 class="wp-block-heading tab" style="font-size:28px">XenServer</h4>



<pre class="wp-block-code"><code>Required permissions: 
    •   Pool‑admin or equivalent custom role with: 
    •   VM create / destroy 
    •   Attach / detach disks 
    •   Power operations 
    •   ISO SR access 

Key requirements: 
    •   Access to an ISO SR containing the installation media 
    •   Permission to create templates or base VMs 

Best practices: 
    •   Use a dedicated automation user
    •   Avoid using the built‑in root account </code></pre>



<h3 class="wp-block-heading" style="font-size:28px">2.1&nbsp;Install&nbsp;XOAP&nbsp;Connector&nbsp;</h3>



<p>For on-premises&nbsp;scenarios XOAP uses a&nbsp;<strong>Connector</strong>&nbsp;that runs inside the target environment.&nbsp;</p>



<p>Key&nbsp;requirements for the Connector to work with our backend:&nbsp;</p>



<ul class="wp-block-list">
<li>Outbound‑only communication to XOAP (api.xoap.io) via 443&nbsp;</li>



<li>No inbound firewall rules required&nbsp;</li>



<li>For Windows systems, please run PowerShell as an Administrator.&nbsp;</li>



<li>For Linux systems, please execute the commands with sudo to ensure proper permissions.&nbsp;</li>
</ul>



<p>The Connector can be installed on Windows and Linux devices. The process can be started by clicking on &#8220;+&nbsp; Add Device&#8221; button in the Inventory area of your XOAP Workspace.&nbsp;</p>



<ol class="wp-block-list">
<li>Download the correct installer to the device that has network access to your vCenter.&nbsp;&nbsp;</li>



<li>Create a new API key by selecting + Create API key (or select existing). Under API token type select XOAP Connector&nbsp;</li>



<li>On the device, navigate to the location where the installer was downloaded and run the command with the added flag &#8211;imageManagement&nbsp;&nbsp;</li>
</ol>



<p><em>Example:&nbsp;&nbsp;.\XOAP.Connector.Installer.exe &#8211;install &#8211;apiKey PLEASE_SELECT_API_KEY &#8211;workspace YOUR_WORKSPACE_ID &#8211;imageManagement</em></p>



<h3 class="wp-block-heading" style="font-size:28px">2.2&nbsp;Verify Registration&nbsp;</h3>



<p><strong><em>Please note that following these steps will temporarily navigate you away from the Get Started module, but you can return at any time to pick up where you left off</em></strong></p>



<p>After installing the XOAP Connector, you need to verify that it is successfully communicating with the XOAP platform.</p>



<p><strong>Steps to verify:</strong>&nbsp;</p>



<ol class="wp-block-list">
<li>In the left-hand navigation menu, expand the&nbsp;<strong>Inventory</strong>&nbsp;module and click on&nbsp;<strong>Devices</strong>.&nbsp;</li>



<li>Locate the machine where you installed the Connector by looking for its hostname in the&nbsp;<strong>Device Name</strong>&nbsp;column.&nbsp;</li>



<li>Check the&nbsp;<strong>Is Online</strong>&nbsp;column next to your device. The status should display as&nbsp;<strong>Connected</strong>, confirming that the Connector is successfully installed and communicating with the platform.&nbsp;<em>(Note: If it shows &#8220;Disconnected&#8221;, ensure the machine is powered on, has internet access, and the XOAP service is running).</em>&nbsp;</li>
</ol>



<h2 class="wp-block-heading connection-on-premises main-title" style="font-size:38px">3. Add a Connection&nbsp;</h2>



<p>XOAP&nbsp;<strong>Connections</strong>&nbsp;store the credentials and endpoints XOAP needs to integrate with external systems (for example, cloud providers and on-prem virtualization platforms). These connections are then used&nbsp;by other XOAP features.&nbsp;</p>



<h3 class="wp-block-heading tabs-title" style="font-size:28px">Add connection Cloud-specific&nbsp;</h3>



<h4 class="wp-block-heading tab" style="font-size:28px">Nutanix</h4>



<pre class="wp-block-code"><code>Fields you provide:&nbsp;

  •   <strong>Connection name </strong>– Friendly name used in XOAP to reference this connection.&nbsp;
  •   <strong>Connector</strong> -&nbsp;The device where the XOAP Connector is installed, acting as a bridge between the XOAP platform        and your environment.&nbsp;
  •   <strong>Nutanix Username </strong>– The account XOAP uses to authenticate to Nutanix (typically Prism).&nbsp;
  •   <strong>Nutanix Password</strong> -&nbsp;The password for the Nutanix account.&nbsp;
  •   <strong>Endpoint </strong>– The Prism endpoint (hostname/IP + port if applicable) that XOAP connects to.&nbsp;&nbsp;
  •   <strong>Cluster name</strong> -&nbsp;The Nutanix cluster identifier/name within Prism where operations will be performed.&nbsp;&nbsp;
  •   <strong>Insecure (toggle) </strong>– Allows connecting without strict TLS validation (use only when required in lab/PoC scenarios).&nbsp;
  •   <strong>Description (optional) </strong> -&nbsp;Free-text note to document purpose/owner of the connection.&nbsp;
  •   <strong>Tags (optional)</strong> -&nbsp;Labels to help you find, filter, and govern connections (max 5 per object).&nbsp;&nbsp;</code></pre>



<h4 class="wp-block-heading tab" style="font-size:28px">vCenter</h4>



<pre class="wp-block-code"><code>Fields you provide:&nbsp;

  •   <strong>Connection name </strong>– Friendly name used in XOAP to reference this connection.&nbsp;
  •   <strong>Connector</strong> -&nbsp;The device where the XOAP Connector is installed, acting as a bridge between the XOAP platform and your environment.&nbsp;
  •   <strong>vCenter Server </strong>– The vCenter hostname or IP address XOAP will connect to.&nbsp;&nbsp;
  •   <strong>Username</strong> -&nbsp;The vCenter user (or SSO identity) used for authentication.&nbsp;&nbsp;
  •   <strong>Password </strong>– The password for the specified vCenter user.&nbsp;&nbsp;&nbsp;
  •   <strong>Datacenter</strong> -&nbsp;The vSphere <em>Datacenter</em> inventory object that contains the clusters/hosts/datastores you want to target.&nbsp;&nbsp;&nbsp;
  •   <strong>Cluster</strong> – The vSphere cluster under the selected datacenter that groups hosts and provides shared resource management (DRS/HA if enabled).
  •   <strong>Host </strong>– A specific ESXi host to target (often used when selecting an exact host instead of scheduling via cluster/rules).&nbsp;
  •   <strong>Resource pool </strong>– The resource pool within the cluster/host that defines CPU/RAM shares/limits/reservations for deployed VMs.&nbsp;&nbsp;
  •   <strong>Datastore</strong> -&nbsp;The storage location where VM files (VMDKs/config) will be placed.&nbsp;
  •   <strong>Folder</strong> -&nbsp;The vCenter VM folder used to organize where the VM object appears in the inventory.&nbsp;&nbsp;&nbsp;
  •   <strong>Insecure (toggle)</strong> -&nbsp;Allows connecting without strict TLS validation (use only when required in lab/PoC scenarios).&nbsp;
  •   <strong>Description (optional) </strong> -&nbsp;Free-text note to document purpose/owner of the connection.&nbsp;
  •   <strong>Tags (optional)</strong> -&nbsp;Labels to help you find, filter, and govern connections (max 5 per object).&nbsp;&nbsp;</code></pre>



<p><em>Important behavior:&nbsp;</em></p>



<ul class="wp-block-list">
<li><em>Case-sensitive fields: vCenter inventory object names (Datacenter/Cluster/Host/Resource pool/Datastore/Folder) are case sensitive. Enter them exactly as defined in vCenter.&nbsp;</em></li>
</ul>



<h4 class="wp-block-heading tab" style="font-size:28px">XenServer</h4>



<pre class="wp-block-code"><code>We're getting this ready for you</code></pre>



<h2 class="wp-block-heading os-on-premises main-title" style="font-size:38px">4. Add Operating Systems&nbsp;</h2>



<p>In XOAP, the Operating System represents the base image that will be used as the foundation for your custom virtual machine image.&nbsp;&nbsp;<br>On-premises operating systems are generic for all types of on-premises hypervisors.&nbsp;</p>



<p>Examples:&nbsp;</p>



<ul class="wp-block-list">
<li>Windows 11 Enterprise&nbsp;</li>



<li>Windows Server 2025&nbsp;</li>



<li>Ubuntu LTS&nbsp;</li>



<li>RHEL&nbsp;</li>
</ul>



<p>You can add a New Operating System by clicking &#8220;+&nbsp;&nbsp;Add Base Image&#8221; in right upper corner.&nbsp;</p>



<p>When adding an On-Premises Operating System in XOAP you define:&nbsp;</p>



<ul class="wp-block-list">
<li><strong>Name</strong> – Name of your Operating System. You can define the name by your own naming convention&nbsp;</li>



<li><strong>ISO File Name</strong> – provide the name of your ISO file which will be used as base Operating System for your Image Definition&nbsp;Example:&nbsp;<em>SERVER_EVAL_x64FRE_en-us.iso</em>&nbsp;</li>



<li><strong>ISO Path</strong> – full location to the your ISO file&nbsp;Example:&nbsp;<em>[datastore01] ISO/</em>&nbsp;</li>



<li><strong>ISO Checksum</strong> – checksum of your ISO as additional security feature&nbsp;</li>
</ul>



<h3 class="wp-block-heading tabs-title" style="font-size:28px">OS specific</h3>



<h4 class="wp-block-heading tab">For Windows&nbsp;</h4>



<pre class="wp-block-code"><code>  •   <strong>Autounattend </strong>– file which is used to modify windows settings during Setup. This file must be uploaded to XOAP resource area.&nbsp;You can select one from pre-uploaded autoanattend.xml files if they fit you&nbsp;
  •   <strong>Setup Files</strong> -&nbsp;defines which extra files XOAP mounts into the virtual machine during operating system installation.</code></pre>



<h4 class="wp-block-heading tab">For Linux&nbsp;</h4>



<pre class="wp-block-code"><code>We're getting this ready for you</code></pre>



<p>Important:&nbsp;</p>



<ul class="wp-block-list">
<li>Use Get-FileHash in PowerShell to generate the checksum for the ISO file:&nbsp;Get-FileHash -Path “<a href="http://fileserver/isos/Windows11_24H2.iso" target="_blank" rel="noreferrer noopener">\fileserver\isos\Windows11_24H2.iso</a>” -Algorithm SHA256. Copy the returned Hash value into the ISO Checksum field in XOAP.&nbsp;</li>



<li>Setup files&nbsp;files are typically used by the unattend.xml to install drivers, tools, or to run custom PowerShell scripts during or immediately after the first boot.&nbsp;For this use case, we provide some template files like:
<ul class="wp-block-list">
<li>windows-init.ps1&nbsp;&#8211;&nbsp;Enables Windows Remote Management on Windows builds.&nbsp;Needed to sucesfully finish creation of template VM on your vCenter&nbsp;</li>
</ul>
</li>
</ul>



<h2 class="wp-block-heading builder-configuration-on-premises main-title" style="font-size:38px">5. Add Builder Configuration&nbsp;</h2>



<p>The&nbsp;Builder Configuration&nbsp;defines&nbsp;<strong>where and how</strong>&nbsp;an image is created, based on the selected platform or cloud provider (for example, AWS, Azure, Google Cloud, or VMware). During builder configuration, you also choose the&nbsp;<strong>Connection</strong>&nbsp;used for your cloud or on-premises environment.&nbsp;</p>



<p>A Builder configuration typically includes:&nbsp;</p>



<ul class="wp-block-list">
<li>Target platform (Nutanix, vSphere or XenServer.)&nbsp;</li>



<li>CPU and RAM configuration&nbsp;</li>



<li>Networking and storage configuration&nbsp;</li>



<li>Temporary build resources&nbsp;</li>
</ul>



<p>Builders abstract provider differences while keeping builds transparent and auditable.&nbsp;</p>



<p>To create new builder click on &#8220;+ Builder Configuration&#8221; and select wanted hypervisor&nbsp;.</p>



<h3 class="wp-block-heading tabs-title" style="font-size:28px">Add a builder configuration Cloud specific</h3>



<h4 class="wp-block-heading tab" style="font-size:28px">Nutanix</h4>



<pre class="wp-block-code"><code>General Details:&nbsp;

  •   <strong>Name </strong>– Friendly name used in XOAP to reference this builder configuration.&nbsp;&nbsp;
  •   <strong>Select Type</strong> -&nbsp;The target platform for the builder (set to Nutanix in this context).&nbsp;
  •   <strong>OS Type </strong>– The operating system type of the virtual machine being built.&nbsp;&nbsp;
  •   <strong>Connection</strong> -&nbsp;The pre-configured Nutanix connection XOAP uses to authenticate and interact with your Nutanix cluster.&nbsp;&nbsp;
  •   <strong>Subnet name </strong>– The name of the Nutanix network/subnet the virtual machine will connect to during the build process.&nbsp;
  •  <strong> Description (optional)</strong> -&nbsp;Free-text note to document the purpose, owner, or specifics of this builder configuration.&nbsp;&nbsp;
  •   <strong>Tags (optional)</strong> -&nbsp;Labels to help you find, filter, and govern builder configurations.&nbsp;&nbsp;&nbsp;</code></pre>



<pre class="wp-block-code"><code>Environment Configuration:&nbsp;

  •   <strong>CPU</strong> – The number of virtual CPUs allocated to the virtual machine during the build.&nbsp;&nbsp;&nbsp;
  •   <strong>Memory GB</strong> -&nbsp;The amount of memory allocated to the virtual machine, specified in gigabytes.&nbsp;&nbsp;
  •   <strong>CD-files</strong> – A list of files to be uploaded and attached to the virtual machine as a CD-ROM. You can separate multiple files by pressing enter or using a comma.&nbsp;&nbsp;&nbsp;
  •   <strong>Boot type</strong> -&nbsp;The firmware boot configuration used for the virtual machine (e.g.,&nbsp;legacy&nbsp;or&nbsp;uefi).&nbsp;
  •   <strong>Boot priority </strong>– The boot device order/priority (e.g., setting it to boot from CD-ROM first, then disk).&nbsp;
  •   <strong>Disk size (GB)</strong> -&nbsp;The total capacity of the primary virtual hard disk to be created, specified in gigabytes.&nbsp;
  •   <strong>GPU</strong> -&nbsp;Optional GPU configuration to attach a virtual graphics processing unit (vGPU) to the VM during the build.&nbsp;</code></pre>



<pre class="wp-block-code"><code>Output Configuration / All OS

  •   <strong>Image export (toggle)</strong> – When enabled, exports the resulting built virtual machine into a finalized Nutanix image.&nbsp;&nbsp;&nbsp;&nbsp;
  •   <strong>Disable sysprep at the end (toggle)</strong> -&nbsp;When enabled, skips the standard Sysprep (System Preparation) process at the end of a Windows build. Use this only if you are handling generalization via custom scripts.&nbsp;
  •   <strong>Shutdown command&nbsp;</strong> – The specific command used to gracefully shut down the guest operating system once provisioning is complete.&nbsp;&nbsp;&nbsp;
  •   <strong>Shutdown timeout<strong><strong>&nbsp;</strong></strong></strong> -&nbsp;The maximum amount of time to wait for the virtual machine to shut down gracefully before forcing a power off or failing the build.&nbsp;&nbsp;&nbsp;</code></pre>



<h4 class="wp-block-heading tab" style="font-size:28px">vSphere</h4>



<pre class="wp-block-code"><code>Fields you provide:

General Details

  •   <strong>Name</strong> – Friendly name used in XOAP to reference this builder configuration.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  •   <strong>Select Type</strong> -&nbsp;The target platform for the builder (set to vSphere in this context).&nbsp;&nbsp;
  •   <strong>Connection&nbsp;</strong>– The pre-configured vSphere connection XOAP uses to authenticate and interact with your vCenter/ESXi environment.&nbsp;&nbsp;&nbsp;&nbsp;
  •   <strong>Disk size (GB)</strong> -&nbsp;The total capacity of the primary virtual hard disk to be created, specified in gigabytes.&nbsp;&nbsp;&nbsp;
  •   <strong>HW Version</strong> – The VMware hardware version for the virtual machine (e.g., 19, 20).&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  •   <strong>Guest OS Type</strong> -&nbsp;The VMware internal ID for the guest operating system (e.g.,&nbsp;windows9Server64Guest,&nbsp;ubuntu64Guest). This ensures vSphere applies the correct default optimizations for the OS.&nbsp;&nbsp;
  •   <strong>Network&nbsp;</strong>– The vSphere network or port group the virtual machine will connect to during the build process.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  •   <strong>Network card</strong> -&nbsp;The type of virtual network adapter to attach to the VM (e.g.,&nbsp;vmxnet3,&nbsp;e1000).&nbsp;
  •   <strong>Export to Content library destination (toggle)</strong> – When enabled, exports the resulting built artifact directly into a specified vSphere Content Library.&nbsp;
  •   <strong>Convert to template (toggle)</strong> -&nbsp;TWhen enabled, automatically converts the built virtual machine into a VMware template once the provisioning is complete.&nbsp;
  •   <strong>Tags (optional)</strong> – Labels to help you find, filter, and govern builder configurations.&nbsp;
  •   <strong>Description (optional)<strong><strong>&nbsp;</strong></strong></strong>-&nbsp;Free-text note to document the purpose, owner, or specifics of this builder configuration.&nbsp;&nbsp;
  •   <strong>Firmware</strong> -&nbsp;The firmware type used to boot the virtual machine (e.g.,&nbsp;bios&nbsp;or&nbsp;efi).&nbsp;
  •   <strong>CPUs</strong> – The number of virtual CPU cores allocated to the virtual machine during the build.&nbsp;
  •   <strong>RAM (GB)</strong> -&nbsp;The amount of memory allocated to the virtual machine, specified in gigabytes.
  •   <strong>CD-ROM type</strong> – The virtual controller type used for the CD-ROM drive (e.g.,&nbsp;sata,&nbsp;ide).&nbsp;
  •   <strong>Disk controller type<strong><strong>&nbsp;</strong></strong></strong>-&nbsp;The type of storage controller to use for the virtual disk (e.g.,&nbsp;pvscsi,&nbsp;lsilogic,&nbsp;sata).&nbsp;
  •   <strong>Disk thin provisioned (toggle)</strong> -&nbsp;When enabled, the virtual disk will be thin-provisioned, meaning it only consumes physical storage space as data is actually written to it.&nbsp;
  •  <strong> Storage</strong> – The target vSphere datastore or datastore cluster where the virtual machine files and disks will be stored.&nbsp;</code></pre>



<pre class="wp-block-code"><code>Flag Configuration:

  •   <strong>VBS enabled (toggle)</strong> – Enables Virtualization-Based Security (VBS) on the virtual machine. Note: This typically requires EFI firmware, Secure Boot, and specific hardware versions.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  •   <strong>VVTD enabled (toggle)</strong> -&nbsp;Enables VMware Virtual I/O Technology (Intel VT-d) on the virtual machine, allowing direct access to hardware devices.&nbsp;&nbsp;&nbsp;</code></pre>



<pre class="wp-block-code"><code>Content Library Configuration&nbsp;-&nbsp;(These fields appear when "Export to Content library destination" is enabled)&nbsp;

  •   <strong>Library</strong> – The name of the target vSphere Content Library where the finalized image or template will be stored.&nbsp;
  •   <strong>Cluster</strong> -&nbsp;The ESXi cluster associated with the Content Library export or where the temporary staging occurs.&nbsp;&nbsp;
  •   <strong>Folder</strong> – The vCenter virtual machine folder where the temporary VM is placed during the build and export process.&nbsp;
  •   <strong>Datastore</strong> -&nbsp;The specific vSphere datastore used for staging the export files or backing the Content Library item.
  •   <strong>Destroy (toggle)</strong> -&nbsp;When enabled, automatically deletes the original built virtual machine from your vCenter inventory after it has been successfully exported to the Content Library.&nbsp;
  •   <strong>OVF (toggle)</strong> – When enabled, exports the artifact as an OVF (Open Virtualization Format) package. If disabled, it typically exports as an OVA (single-file) format.&nbsp;
  •   <strong>Skip import (toggle)</strong> -&nbsp;When enabled, the build process runs but skips the final step of actually importing the artifact into the Content Library. This is primarily used for testing or debugging the build process without uploading the final image.&nbsp;</code></pre>



<h4 class="wp-block-heading tab" style="font-size:28px">XenServer</h4>



<pre class="wp-block-code"><code>We're getting this ready for you</code></pre>



<h2 class="wp-block-heading image-definition-on-premises main-title" style="font-size:38px">6.  Add Image Definition&nbsp;</h2>



<p>An&nbsp;<strong>Image Definition</strong>&nbsp;ties everything together.&nbsp;</p>



<p>It references:&nbsp;</p>



<ul class="wp-block-list">
<li>Platform&nbsp;</li>



<li>Builder Configuration&nbsp;</li>



<li>Operating System&nbsp;</li>



<li>Provisioning steps (scripts, actions, hardening), we call it&nbsp;<strong>Provisioner Role.</strong>&nbsp;</li>
</ul>



<p>You will have at least 2 Provisoner Roles in your workspace. One ready for Windows devices and 2nd for linux.</p>



<p>To create and run New Image Definition click on button in right upper corner &#8220;+ New Image Definition&#8221; and fill next form:</p>



<ul class="wp-block-list">
<li>Assign a name and description to the image definition&nbsp;</li>



<li><em>[optional]</em>&nbsp;Select tags for categorization or filtering&nbsp;</li>



<li>Choose the builder provider and specific builder configuration&nbsp;</li>



<li><em>[optional]&nbsp;</em>Pick a base operating system image&nbsp;</li>



<li>Link the appropriate provisioner role (which includes all scripts, tasks, and configurations)&nbsp;</li>



<li>Define a XOAP Connector device for on-premises Image definitions&nbsp;</li>



<li><em>[optional]</em>&nbsp;Schedule Image Definition Run&nbsp;</li>
</ul>



<p>You can save Image definition and run it later from&nbsp;<strong>Image Definition&nbsp;</strong>area under&nbsp;<strong>Image Management</strong>&nbsp;module, or click&nbsp;<strong>Save &amp; Run&nbsp;</strong>&nbsp;to run it during creation.&nbsp;</p>



<p>Each run results in a&nbsp;new, versioned image artifact.&nbsp;</p>



<ol class="wp-block-list">
<li>Trigger a run manually or via schedule&nbsp;</li>



<li>XOAP hands off execution to the Connector&nbsp;</li>



<li>Build progress and logs are tracked centrally&nbsp;</li>
</ol>



<p>Each run results in a&nbsp;new, versioned image artifact.&nbsp;</p>



<h3 class="wp-block-heading" style="font-size:28px">6.1&nbsp;Verify the Created Image&nbsp;&nbsp;</h3>



<p>After a successful build:&nbsp;</p>



<ul class="wp-block-list">
<li>Validate the image&nbsp;</li>



<li>Confirm naming and version metadata&nbsp;</li>
</ul>



<p>XOAP keeps a record of:&nbsp;</p>



<ul class="wp-block-list">
<li>Logs&nbsp;</li>



<li>Resulting image IDs&nbsp;</li>
</ul>



<h3 class="wp-block-heading tabs-title" style="font-size:28px">Validate Image Definition </h3>



<h4 class="wp-block-heading tab">Nutanix</h4>



<pre class="wp-block-code"><code>To confirm your image was successfully created and finalized in your Nutanix environment (especially if you enabled the Image export toggle), you will need to check the Prism web console: 

Checking the Nutanix Image Service: 

  •   Log in to your <strong>Nutanix Prism</strong> console (Prism Element or Prism Central, depending on your target connection). 
  •  Navigate to the <strong>Images</strong> dashboard: 
     In Prism Central: Go to the hamburger menu &gt; <strong>Compute &amp; Storage &gt; Images. </strong>
     In Prism Element: Click the gear icon (Settings) and select <strong>Image Configuration</strong>, or use the main drop-down menu to go to <strong>Virtual Infrastructure &gt; Images.</strong> 
  •  Search the list for the name you specified in your XOAP image definition. 
  •  Verify that the image state is active/active and that its type matches what you expect (e.g., Disk Image), making it ready for deploying new virtual machines. </code></pre>



<h4 class="wp-block-heading tab">vSphere</h4>



<pre class="wp-block-code"><code>After a successful build, you can verify the creation of your image or template directly within your VMware vCenter environment. The location depends on the specific settings you chose in the <strong>vSphere Builder </strong>Configuration: 

<strong>If exported to a Content Library: </strong>

  •  Log in to your <strong>vSphere Client. </strong>
  •  Navigate to the main menu and select<strong> Content Libraries. </strong>
  •  Click on the specific Library you selected in your XOAP configuration. 
  •  Browse the <strong>OVF &amp; OVA Templates</strong> tab to find your newly exported image. 

<strong>If converted to a standard vSphere Template:</strong> 

  •  Log in to your <strong>vSphere Client. </strong>
  •  Navigate to the <strong>VMs and Templates</strong> inventory view. 
  •  Expand your vCenter tree to locate the specific Datacenter and <strong>Folder</strong> where the build took place. 
  •  Look for the name you assigned to the image. It should have the standard vSphere template icon (a virtual machine icon with a small paper symbol). </code></pre>



<h4 class="wp-block-heading tab">XenServer</h4>



<pre class="wp-block-code"><code>We're getting this ready for you</code></pre>



<h3 class="wp-block-heading" style="font-size:28px">Summary&nbsp;</h3>



<p>By following this flow, you establish a&nbsp;<strong>clean, auditable, and scalable image pipeline</strong>:&nbsp;</p>



<ul class="wp-block-list">
<li>One control plane (XOAP)&nbsp;</li>



<li>Multiple execution environments&nbsp;</li>



<li>Consistent OS baselines&nbsp;</li>



<li>Cloud and on‑prem parity&nbsp;</li>
</ul>



<p>This forms the foundation for enterprise‑grade automation and compliance‑driven infrastructure.&nbsp;</p>



<h3 class="wp-block-heading troubleshooting-next-steps" style="font-size:28px">Troubleshooting&nbsp;</h3>



<p>If a build fails:&nbsp;</p>



<ul class="wp-block-list">
<li>Review build logs in XOAP&nbsp;</li>



<li>Check Connector health and permissions&nbsp;</li>



<li>Validate cloud quotas and limits&nbsp;</li>



<li>Confirm network reachability inside the target environment&nbsp;</li>
</ul>



<p>Most issues are related to:&nbsp;</p>



<ul class="wp-block-list">
<li>Missing permissions&nbsp;</li>



<li>Network misconfiguration or port restrictions&nbsp;</li>



<li>Provider‑side quota limits&nbsp;</li>
</ul>



<h2 class="wp-block-heading next-steps" style="font-size:38px">Next steps</h2>



<p>Once your first standardized image is working, typical next steps include:&nbsp;</p>



<h3 class="wp-block-heading scripts-next-steps" style="font-size:28px">Add Your Own Scripts, Applications and Configurations&nbsp;</h3>



<ul class="wp-block-list">
<li>Extend provisioners with custom scripts&nbsp;</li>



<li>Integrate security baselines&nbsp;</li>



<li>Install enterprise tooling&nbsp;</li>
</ul>



<p>Check our repo at&nbsp;<a href="https://xoap.io/image-management-templates" target="_blank" rel="noreferrer noopener">https://xoap.io/image-management-templates</a>&nbsp;</p>



<h3 class="wp-block-heading roles-next-steps" style="font-size:28px">Reuse existing Roles in the cloud&nbsp;</h3>



<ul class="wp-block-list">
<li>Apply the same provisioning roles to cloud images&nbsp;</li>



<li>Achieve consistency across hybrid environments&nbsp;</li>
</ul>



<h3 class="wp-block-heading automation-next-steps" style="font-size:28px">Build Higher‑Level Automation&nbsp;</h3>



<ul class="wp-block-list">
<li>Application packaging&nbsp;</li>



<li>Stacks and roles&nbsp;</li>



<li>Continuous image updates&nbsp;</li>
</ul>
</div>



<p></p>
<p>The post <a href="https://xoap.io/docs/standardizing-on-premises-os-images/">Standardizing on premises OS images</a> appeared first on <a href="https://xoap.io">XOAP</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://xoap.io/docs/standardizing-on-premises-os-images/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>2026 January updates</title>
		<link>https://xoap.io/docs/2026-january-updates/</link>
					<comments>https://xoap.io/docs/2026-january-updates/#respond</comments>
		
		<dc:creator><![CDATA[Stella]]></dc:creator>
		<pubDate>Mon, 02 Feb 2026 14:46:04 +0000</pubDate>
				<guid isPermaLink="false">https://xoap.io/?post_type=docs&#038;p=29302</guid>

					<description><![CDATA[<p>This release focuses on improving efficiency, scalability, and operational clarity across the platform. Key highlights include enhanced bulk operations, extended Azure integration using Managed Identities, a clearer Provisioner integration, and significant improvements to the XOAP Connector installation and lifecycle management. General This section introduces usability and productivity improvements that apply across multiple areas of the [&#8230;]</p>
<p>The post <a href="https://xoap.io/docs/2026-january-updates/">2026 January updates</a> appeared first on <a href="https://xoap.io">XOAP</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-08f878cd wp-block-group-is-layout-flex">
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>This release focuses on improving efficiency, scalability, and operational clarity across the platform.</p>



<p>Key highlights include enhanced bulk operations, extended Azure integration using Managed Identities, a clearer Provisioner integration, and significant improvements to the XOAP Connector installation and lifecycle management.</p>
</blockquote>



<h2 class="wp-block-heading" style="font-size:38px">General</h2>



<p>This section introduces usability and productivity improvements that apply across multiple areas of the platform, with a strong focus on working with larger datasets.</p>



<h3 class="wp-block-heading" style="font-size:28px">Data tables</h3>



<p>Data tables have been enhanced to better support bulk operations and day-to-day administrative workflows.</p>



<h3 class="wp-block-heading" style="font-size:28px">Bulk Tag Editing</h3>



<p>You can now edit tags for multiple resources in a single operation, reducing repetitive manual effort.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-1-1024x517.png" alt="" class="wp-image-29303"/></figure>



<h3 class="wp-block-heading" style="font-size:28px">Bulk Downloads</h3>



<p>Multiple resources can now be downloaded at once.</p>



<p>Note: Ensure that your browser allows multiple simultaneous downloads.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-2-1024x517.png" alt="" class="wp-image-29304"/></figure>



<h3 class="wp-block-heading" style="font-size:28px">Bulk Exports</h3>



<p>Export data for all or selected resources to <strong>.csv</strong> or <strong>.xlsx</strong> formats for further processing or reporting.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-3-1024x517.png" alt="" class="wp-image-29305"/></figure>



<h3 class="wp-block-heading" style="font-size:28px">Bulk Delete</h3>



<p>Multiple resources can now be deleted in a single action, simplifying cleanup and lifecycle management.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-4-1024x517.png" alt="" class="wp-image-29307"/></figure>



<h2 class="wp-block-heading" style="font-size:38px">Image Management</h2>



<p>This release significantly improves Azure-based image workflows by removing networking constraints and strengthening security.</p>



<h3 class="wp-block-heading" style="font-size:28px">Azure Managed Identity Support</h3>



<p>The XOAP Connector can now be used with <strong>Azure Managed Images</strong> and <strong>Azure Gallery Image Definition</strong> runs.</p>



<p>This eliminates the need for Public IPs on provisioned VMs. Instead, the XOAP Connector VM uses an <strong>Azure Managed Identity</strong> within the subscription to:</p>



<ul class="wp-block-list">
<li>Create all required Azure resources</li>



<li>Securely communicate with the XOAP backend</li>



<li>Align image builds with enterprise security and compliance requirements</li>
</ul>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-5-1024x517.png" alt="" class="wp-image-29310"/></figure>



<h3 class="wp-block-heading" style="font-size:28px">NEW &#8211; Provisioners overview and details</h3>



<p>Gain visibility into configured provisioners and inspect their configuration and status.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-6-1024x517.png" alt="" class="wp-image-29313"/></figure>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-7-1024x517.png" alt="" class="wp-image-29314"/></figure>



<h3 class="wp-block-heading" style="font-size:28px">NEW &#8211; Provisioners Groups overview and details</h3>



<p>Organize provisioners into logical groups to better reflect environments or responsibilities.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-8-1024x517.png" alt="" class="wp-image-29317"/></figure>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-9-1024x517.png" alt="" class="wp-image-29318"/></figure>



<h3 class="wp-block-heading" style="font-size:28px">NEW &#8211; Provisioners Roles overview and details</h3>



<p>Clearly define and review provisioning roles to support structured and secure execution models.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-10-1024x517.png" alt="" class="wp-image-29320"/></figure>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-11-1024x517.png" alt="" class="wp-image-29321"/></figure>



<h3 class="wp-block-heading" style="font-size:28px">NEW &#8211; Operating Systems overview and details</h3>



<p>Centralized visibility and management of supported operating systems used across image and provisioning workflows.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-12-1024x517.png" alt="" class="wp-image-29324"/></figure>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-13-1024x517.png" alt="" class="wp-image-29325"/></figure>



<h2 class="wp-block-heading" style="font-size:38px">Documentation slide-outs</h2>



<p>The documentation experience has been redesigned to improve accessibility and usability.</p>



<p>Documentation is now structured into:</p>



<ul class="wp-block-list">
<li><strong>Quick Guide</strong> – for fast, task-oriented help</li>



<li><strong>Technical Documentation</strong> – for deeper, implementation-focused guidance</li>
</ul>



<p>This allows users to quickly find the level of detail they need.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-14-1024x517.png" alt="" class="wp-image-29328"/></figure>



<h3 class="wp-block-heading" style="font-size:38px">Tags</h3>



<p>Tag handling has been refined to make metadata management faster and more intuitive.</p>



<h3 class="wp-block-heading" style="font-size:28px">Inline Tag removal</h3>



<p>Tags can now be removed directly within tag input fields without additional actions.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="517" src="https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-15-1024x517.png" alt="" class="wp-image-29330" srcset="https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-15-1024x517.png 1024w, https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-15-300x152.webp 300w, https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-15-768x388.png 768w, https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-15-1536x776.png 1536w, https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-15-2048x1034.png 2048w, https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-15-18x9.png 18w, https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-15.webp 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading" style="font-size:38px">Inventory</h2>



<p>Inventory management has been extended to support more flexible onboarding scenarios.</p>



<h3 class="wp-block-heading" style="font-size:38px">Add Device</h3>



<p>Devices can now be manually added to the inventory, enabling better alignment with existing environments.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-16-1024x517.png" alt="" class="wp-image-29331"/></figure>



<h2 class="wp-block-heading" style="font-size:38px">XOAP Connector</h2>



<h3 class="wp-block-heading" style="font-size:28px">Installer and Connector</h3>



<p>The XOAP Connector has been split into two components to:</p>



<ul class="wp-block-list">
<li>Improve update handling</li>



<li>Clearly separate installation and runtime responsibilities</li>
</ul>



<p><strong>Default installation path on Windows:</strong></p>



<p><code>C:\Program Files\XOAP</code></p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-17-1024x589.png" alt="" class="wp-image-29332"/></figure>



<h3 class="wp-block-heading" style="font-size:28px">Command-line parameters</h3>



<p>The installer now provides a built-in help function to discover supported command-line parameters.</p>



<p><code>PS C:\Program Files\XOAP\Installer&gt; .\XOAP.Connector.Installer.exe --help</code></p>



<h3 class="wp-block-heading" style="font-size:28px">Windows Service</h3>



<p>The XOAP Connector for Windows now runs as a <strong>native Windows Service</strong>, improving reliability and manageability.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-18-1024x589.png" alt="" class="wp-image-29334"/></figure>



<h3 class="wp-block-heading" style="font-size:28px">Event log integration</h3>



<p>The XOAP Connector for Windows now writes operational logs directly to the <strong>Windows Event Log</strong>, enabling easier troubleshooting and monitoring.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-19-1024x589.png" alt="" class="wp-image-29337"/></figure>



<p>Additional log files and temporary files for Image Definition runs are stored in:</p>



<p><code>C:\ProgramData\XOAP</code></p>



<h3 class="wp-block-heading" style="font-size:28px">Updating the Connector</h3>



<p>The XOAP Connector can now be updated in place using the installer.</p>



<p><code>PS C:\Program Files\XOAP\Installer&gt; .\XOAP.Connector.Installer.exe --update</code></p>



<p>This updates the installer and connector components to the latest available version.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-20-1024x589.png" alt="" class="wp-image-29339"/></figure>



<h3 class="wp-block-heading" style="font-size:28px">Proxy configuration</h3>



<p>Proxy settings for the XOAP Connector can be centrally configured using the following file:</p>



<p><code>C:\Program Files\XOAP\Connector\config.yml</code></p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2026/02/changelog-jan-2026-21-1024x589.png" alt="" class="wp-image-29340"/></figure>
</div>
<p>The post <a href="https://xoap.io/docs/2026-january-updates/">2026 January updates</a> appeared first on <a href="https://xoap.io">XOAP</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://xoap.io/docs/2026-january-updates/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Commands library</title>
		<link>https://xoap.io/docs/commands-library/</link>
					<comments>https://xoap.io/docs/commands-library/#respond</comments>
		
		<dc:creator><![CDATA[Stella]]></dc:creator>
		<pubDate>Tue, 27 Jan 2026 12:34:17 +0000</pubDate>
				<guid isPermaLink="false">https://xoap.io/?post_type=docs&#038;p=29226</guid>

					<description><![CDATA[<p>Quick guide Commands Library is a centralized repository for reusable commands that can be executed on managed devices. It lets you standardize common operational tasks (e.g., troubleshooting, data collection, quick checks) by storing commands in one place and reusing them across the environment. Commands can be created for different runtimes such as PowerShell, PowerShell Core, [&#8230;]</p>
<p>The post <a href="https://xoap.io/docs/commands-library/">Commands library</a> appeared first on <a href="https://xoap.io">XOAP</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-08f878cd wp-block-group-is-layout-flex">
<h2 class="wp-block-heading" style="font-size:38px">Quick guide</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>Commands Library</strong> is a centralized repository for reusable commands that can be executed on managed devices. It lets you standardize common operational tasks (e.g., troubleshooting, data collection, quick checks) by storing commands in one place and reusing them across the environment. Commands can be created for different runtimes such as <strong>PowerShell</strong>, <strong>PowerShell Core</strong>, <strong>Bash/Shell</strong>, or <strong>CMD</strong>.</p>
</blockquote>



<h3 class="wp-block-heading" style="font-size:28px">Add a new Command</h3>



<ol class="wp-block-list">
<li>Click <strong>+ Add Command</strong>.</li>



<li>Enter a <strong>Command name</strong>.</li>



<li>Select the <strong>Type</strong> (e.g., PowerShell Core, PowerShell, Bash/Shell, CMD).</li>



<li>(Optional) Add <strong>Tags</strong> and a <strong>Description</strong>.</li>



<li>Paste or write the <strong>Command</strong> content.</li>



<li>Click <strong>Add</strong> to create the command.</li>
</ol>



<h3 class="wp-block-heading" style="font-size:28px">Edit a Command</h3>



<ol class="wp-block-list">
<li>Open the command (e.g., via the <strong>Details</strong> / eye icon).</li>



<li>In the <strong>Current version</strong> panel, click <strong>Edit</strong>.</li>



<li>Update the command content and/or metadata as needed.</li>



<li>Save the changes (a new version is created).</li>
</ol>



<h3 class="wp-block-heading" style="font-size:28px">Delete a Command</h3>



<ol class="wp-block-list">
<li>Click the <strong>Delete</strong> (trash) icon next to the command.</li>



<li>Confirm deletion.</li>
</ol>



<h3 class="wp-block-heading" style="font-size:28px">Additional useful information</h3>



<h4 class="wp-block-heading" style="font-size:21px">OS compatibility</h4>



<p>Some command types are OS-specific. Use <strong>Tags</strong> (e.g., windows, linux) and/or naming conventions to clearly indicate the target platform.</p>



<h4 class="wp-block-heading" style="font-size:21px">Prefer non-interactive commands</h4>



<p>Avoid prompts and UI interactions; commands should run unattended.</p>



<h4 class="wp-block-heading">Keep output readable</h4>



<p>Return clear, structured output (and include error handling) to simplify troubleshooting and auditing.</p>



<h2 class="wp-block-heading" style="font-size:38px">Technical documentation</h2>



<p>The <strong>Commands Library</strong> is XOAP’s centralized store for <strong>versioned and reusable commands </strong>that can be executed on managed devices through the XOAP Inventory/Connector execution layer. It is designed for operational tasks such as troubleshooting, validation checks, log collection, and lightweight remediation actions.</p>



<p>A command in the library is defined by:</p>



<ul class="wp-block-list">
<li><strong>Metadata</strong> (name, description, tags)</li>



<li><strong>Runtime type</strong> (PowerShell, PowerShell Core, Bash/Shell, CMD)</li>



<li><strong>Command body</strong> (the actual script/command text)</li>



<li><strong>Version information</strong> (version number and message)</li>
</ul>



<p>Commands are executed on devices that have the <strong>XOAP Connector</strong> installed.</p>



<h3 class="wp-block-heading" style="font-size:28px">Command Types (Runtime)</h3>



<p>When you create a command, you select a <strong>Type</strong> that defines the interpreter/runtime used on the device:</p>



<ul class="wp-block-list">
<li><strong>PowerShell<br></strong>Runs using Windows PowerShell (typically 5.1 on Windows).</li>



<li><strong>PowerShell Core<br></strong>Runs using PowerShell 7+ (cross-platform when available).</li>



<li><strong>Bash/Shell<br></strong>Runs using a shell on Linux/macOS (typically /bin/bash or /bin/sh, depending on the device).</li>



<li><strong>CMD<br></strong>Runs using Windows Command Prompt (cmd.exe).</li>
</ul>



<h3 class="wp-block-heading" style="font-size:28px">Versioning behavior</h3>



<p>Commands are <strong>versioned artifacts</strong>. Any change to the command definition (especially the command body) should be treated as a new version so you can:</p>



<ul class="wp-block-list">
<li>Track who changed what and why</li>



<li>Roll forward safely</li>



<li>Keep operational actions reproducible across environments</li>
</ul>



<p><strong>Best practice:</strong> Use short, meaningful version messages (e.g., “Add service filter”, “Fix path quoting”, “Support PS7”).</p>



<h3 class="wp-block-heading" style="font-size:28px">Fields and what they mean</h3>



<p>In the <strong>Add Command</strong> dialog:</p>



<ul class="wp-block-list">
<li><strong>Command name<br></strong>Unique, human-readable identifier. Use a consistent naming scheme like:<br>windows-check-service-status / linux-journalctl-last-50</li>



<li><strong>Type<br></strong>The runtime/interpreter used to execute the command on the target device.</li>



<li><strong>Tags<br></strong>Used for filtering and organization (OS, purpose, team, environment).</li>



<li><strong>Description (optional)<br></strong>Short explanation of intent, expected output, and any prerequisites.</li>



<li><strong>Command<br></strong>The script/command content. This should be non-interactive and safe to run repeatedly.</li>
</ul>



<h3 class="wp-block-heading" style="font-size:28px">Execution model and output</h3>



<p>Commands are&nbsp; executed remotely and return:</p>



<ul class="wp-block-list">
<li><strong>Exit code</strong> (success/failure)</li>



<li><strong>Standard output</strong> (results)</li>



<li><strong>Standard error</strong> (errors)</li>
</ul>



<h3 class="wp-block-heading" style="font-size:28px">Recommended patterns</h3>



<ul class="wp-block-list">
<li>Return <strong>human-readable output</strong> plus simple structured output where possible (key/value lines).</li>



<li>Use explicit exit codes:
<ul class="wp-block-list">
<li>0 = success</li>



<li>non-zero = failure or partial failure</li>
</ul>
</li>



<li>Write errors to stderr and keep stdout for normal results.</li>
</ul>



<h3 class="wp-block-heading" style="font-size:28px">Operational and security considerations</h3>



<h4 class="wp-block-heading" style="font-size:21px">Non-interactive only</h4>



<ul class="wp-block-list">
<li>Avoid prompts (Read-Host, pause, interactive confirmation).</li>



<li>Assume the command runs unattended.</li>
</ul>



<h4 class="wp-block-heading" style="font-size:21px">Idempotency</h4>



<ul class="wp-block-list">
<li>Prefer commands that can be run multiple times without harmful side effects.</li>



<li>For remediation-type commands, check current state before changing it.</li>
</ul>



<h4 class="wp-block-heading" style="font-size:21px">Logging</h4>



<ul class="wp-block-list">
<li>For troubleshooting commands, include contextual details (hostname, timestamp, relevant versions).</li>
</ul>



<h3 class="wp-block-heading" style="font-size:28px">Best practices for building a maintainable library</h3>



<ul class="wp-block-list">
<li><strong>Naming convention: </strong>os-purpose-action (e.g., windows-inventory-installed-software)</li>



<li><strong>Tagging:</strong> OS + team + category (e.g., windows, security, troubleshooting)</li>



<li><strong>Small scope:</strong> One command = one purpose. Avoid “do everything” scripts.</li>



<li><strong>Document prerequisites:</strong> Required tools, modules, permissions, or paths.</li>



<li><strong>Test on pilots:</strong> Validate on a small set of devices before broad use.</li>



<li><strong>Prefer PowerShell Core for cross-platform:</strong> If your fleet supports it, it simplifies reuse.</li>
</ul>



<h3 class="wp-block-heading" style="font-size:28px">Examples (simple, safe commands)</h3>



<h4 class="wp-block-heading" style="font-size:21px">PowerShell (Windows) – list a service state</h4>



<p>Get-Service -Name &#8220;WinRM&#8221; | Select-Object Name, Status, StartType</p>



<h4 class="wp-block-heading" style="font-size:21px">PowerShell (Windows) – last 50 event log errors (System)</h4>



<p>Get-WinEvent -LogName System -MaxEvents 50 |<br>&nbsp; Where-Object { $_.LevelDisplayName -in &#8220;Error&#8221;,&#8221;Critical&#8221; } |<br>&nbsp; Select-Object TimeCreated, Id, ProviderName, Message</p>



<h4 class="wp-block-heading" style="font-size:21px">CMD (Windows) – basic network info</h4>



<p>ipconfig /all</p>



<h4 class="wp-block-heading" style="font-size:21px">Bash (Linux) – disk usage summary</h4>



<p>df -h</p>



<h4 class="wp-block-heading" style="font-size:21px">Troubleshooting</h4>



<p>If a command fails to run or returns unexpected output, the most common causes are:</p>



<ul class="wp-block-list">
<li>Wrong <strong>Type</strong> selected (e.g., Bash command on Windows)</li>



<li>Runtime not installed (e.g., PowerShell 7 missing for “PowerShell Core” commands)</li>



<li>OS differences (paths, tools, service managers)</li>



<li>Command is interactive or expects a TTY</li>
</ul>



<p><strong>Recommendation:</strong> Start with read-only diagnostics commands, then add remediation actions only after validation and clear approvals.</p>
</div>
<p>The post <a href="https://xoap.io/docs/commands-library/">Commands library</a> appeared first on <a href="https://xoap.io">XOAP</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://xoap.io/docs/commands-library/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Prerequisites</title>
		<link>https://xoap.io/docs/prerequisites/</link>
					<comments>https://xoap.io/docs/prerequisites/#respond</comments>
		
		<dc:creator><![CDATA[Stella]]></dc:creator>
		<pubDate>Tue, 20 Jan 2026 14:07:47 +0000</pubDate>
				<guid isPermaLink="false">https://xoap.io/?post_type=docs&#038;p=29006</guid>

					<description><![CDATA[<p>Image Management To get started with Image Management, there is only one prerequisite: a working connection to your environment. Configure your connection by navigating to Connections, then clicking the Add new connection button in the upper-right corner. In the slide-out panel, select the connection Type and Provider. Fill in the remaining required information and click [&#8230;]</p>
<p>The post <a href="https://xoap.io/docs/prerequisites/">Prerequisites</a> appeared first on <a href="https://xoap.io">XOAP</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-08f878cd wp-block-group-is-layout-flex">
<h2 class="wp-block-heading" style="font-size:38px">Image Management</h2>



<p>To get started with Image Management, there is only one prerequisite: a working connection to your environment. Configure your connection by navigating to <strong>Connections</strong>, then clicking the <strong>Add new connection</strong> button in the upper-right corner.</p>



<p>In the slide-out panel, select the connection <strong>Type</strong> and <strong>Provider</strong>. Fill in the remaining required information and click <strong>Confirm</strong> to save your connection.</p>



<p>If you need assistance with configuring your access credentials, please refer to the <a href="https://xoap.io/docs/connect-your-infrastructure/" target="_blank" rel="noreferrer noopener">Connect your infrastructure documentation</a>.</p>



<p>In the following sections, you will find more information about the required permissions for your infrastructure. Please note that these are the <strong>minimum permissions</strong> needed to create <strong>Image Definitions</strong>.</p>



<p>If you plan to use the same connection for <strong>Scripted Actions</strong>, the required permissions may vary depending on the specific use case.</p>



<h3 class="wp-block-heading" style="font-size:28px">AWS</h3>



<p>To create a customized image, a <strong>default VPC must be available</strong> in the AWS account you&#8217;re using.</p>



<p>Additionally, you need to assign appropriate <strong>IAM permissions</strong> to the user specified in the connection. At a minimum, the following permissions are required:</p>



<pre class="wp-block-code"><code>#Codeblock

{
  "Version": "2012-10-17",
  "Statement": &#91;
    {
      "Effect": "Allow",
      "Action": &#91;
        "ec2:AttachVolume",
        "ec2:AuthorizeSecurityGroupIngress",
        "ec2:CopyImage",
        "ec2:CreateImage",
        "ec2:CreateKeyPair",
        "ec2:CreateSecurityGroup",
        "ec2:CreateSnapshot",
        "ec2:CreateTags",
        "ec2:CreateVolume",
        "ec2:DeleteKeyPair",
        "ec2:DeleteSecurityGroup",
        "ec2:DeleteSnapshot",
        "ec2:DeleteVolume",
        "ec2:DeregisterImage",
        "ec2:DescribeImageAttribute",
        "ec2:DescribeImages",
        "ec2:DescribeInstances",
        "ec2:DescribeInstanceStatus",
        "ec2:DescribeRegions",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSnapshots",
        "ec2:DescribeSubnets",
        "ec2:DescribeTags",
        "ec2:DescribeVolumes",
        "ec2:DetachVolume",
        "ec2:GetPasswordData",
        "ec2:ModifyImageAttribute",
        "ec2:ModifyInstanceAttribute",
        "ec2:ModifySnapshotAttribute",
        "ec2:RegisterImage",
        "ec2:RunInstances",
        "ec2:StopInstances",
        "ec2:TerminateInstances"
      ],
      "Resource": "*"
    }
  ]
}

#EndOfCodeblock</code></pre>



<p>Read more about the required permissions <a href="https://developer.hashicorp.com/packer/integrations/hashicorp/amazon" target="_blank" rel="noreferrer noopener">here</a>.</p>



<h3 class="wp-block-heading" style="font-size:28px">Azure</h3>



<p>To create images on Azure, ensure the following prerequisite is met: you must create a <strong>Service Principal</strong> with Contributor role access to your Azure subscription. Use the Azure CLI to generate the Service Principal.</p>



<h4 class="wp-block-heading" style="font-size:21px">Command format</h4>



<pre class="wp-block-code"><code>#Codeblock
az ad sp create-for-rbac \
  --name &#91;ServicePrincipalName] \
  --role Contributor \
  --scopes /subscriptions/&#91;SubscriptionId] \
  --years 1
#EndOfCodeblock</code></pre>



<h4 class="wp-block-heading" style="font-size:21px">Command example</h4>



<pre class="wp-block-code"><code>#Codeblock

az ad sp create-for-rbac \
  --name xoap-image-principal \
  --role Contributor \
  --scopes /subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
  --years 1

#EndOfCodeblock</code></pre>



<h4 class="wp-block-heading" style="font-size:21px">Command output</h4>



<pre class="wp-block-code"><code>#Codeblock

{
  "appId": "&#91;ClientId (Guid)]",
  "displayName": "xoap-image-principal",
  "name": "http://xoap-image-principal",
  "password": "&#91;ClientSecret]",
  "tenant": "&#91;TenantId (Guid)]"
}

#EndOfCodeblock</code></pre>



<p>Using this output, you can now configure your connection in XOAP:</p>



<ul class="wp-block-list">
<li><strong>Subscription ID:</strong> xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</li>



<li><strong>Tenant ID: </strong>[TenantId (GUID)]</li>



<li><strong>Client ID: </strong>[appId]</li>



<li><strong>Client Secret: </strong>[password]</li>
</ul>



<p>Read more about the required permissions <a href="https://developer.hashicorp.com/packer/integrations/hashicorp/azure" target="_blank" rel="noreferrer noopener">here</a>.</p>



<h3 class="wp-block-heading" style="font-size:28px">Google</h3>



<p>The file you&#8217;re required to upload is a<strong> Google Cloud Service Account key file</strong> in <strong>JSON</strong> format. You can generate and <strong>download</strong> it like this:</p>



<ol class="wp-block-list">
<li>Open <strong>Google Cloud Console</strong>: <a href="https://console.cloud.google.com/iam-admin/serviceaccounts" target="_blank" rel="noreferrer noopener">https://console.cloud.google.com/iam-admin/serviceaccounts</a>.</li>



<li>Select your <strong>project</strong> from the top-left dropdown.</li>



<li>Create or select a service account: If you don’t have one yet, click <strong>&#8220;Create Service Account&#8221;</strong> under <strong>&#8220;IAM&amp;Admin&#8221;</strong> menu. Give it a name and optional description.</li>



<li>Assign the required roles (see below for full list).</li>



<li>After creating or selecting a service account:
<ul class="wp-block-list">
<li>Click the ⋮ (three dots) next to the service account name<strong> </strong>→ <strong>Manage Keys</strong></li>



<li>Under the <strong>&#8220;Keys&#8221;</strong> section, click Add Key → <strong>Create new key</strong></li>



<li>Choose <strong>JSON</strong>, then click <strong>Create</strong></li>
</ul>
</li>



<li>The file will download automatically – this is the file you need to upload into XOAP to authenticate with Google Cloud.</li>
</ol>



<h4 class="wp-block-heading" style="font-size:21px">Required IAM Roles for Packer to build Images</h4>



<p>To allow the service account to build custom images with Packer, you need to assign at least these roles:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td class="has-text-align-left" data-align="left"><strong>Role Name</strong></td><td class="has-text-align-left" data-align="left"><strong>Role ID</strong></td><td class="has-text-align-left" data-align="left"><strong>Purpose</strong></td></tr><tr><td class="has-text-align-left" data-align="left"><strong>Compute Instance Admin (v1)</strong></td><td class="has-text-align-left" data-align="left">roles/compute.instanceAdmin.v1</td><td class="has-text-align-left" data-align="left">Required to create, configure, and delete instances, disks, and snapshots</td></tr><tr><td class="has-text-align-left" data-align="left"><strong>Service Account User</strong></td><td class="has-text-align-left" data-align="left">roles/iam.serviceAccountUser</td><td class="has-text-align-left" data-align="left">Allows using the service account to launch instances</td></tr><tr><td class="has-text-align-left" data-align="left"><strong>Storage Admin (optional)</strong></td><td class="has-text-align-left" data-align="left">roles/storage.admin</td><td class="has-text-align-left" data-align="left">Required if storing images or artifacts in Cloud Storage</td></tr><tr><td class="has-text-align-left" data-align="left"><strong>IAP Tunnel Resource Accessor (optional)</strong></td><td class="has-text-align-left" data-align="left">roles/iap.tunnelResourceAccessor</td><td class="has-text-align-left" data-align="left">Needed only if using IAP to tunnel SSH</td></tr><tr><td class="has-text-align-left" data-align="left"><strong>Compute Network User (Shared VPC only)</strong></td><td class="has-text-align-left" data-align="left">roles/compute.networkUser</td><td class="has-text-align-left" data-align="left">Required if you&#8217;re using a Shared VPC network</td></tr></tbody></table></figure>



<p>Read more about the required permissions <a href="https://developer.hashicorp.com/packer/integrations/hashicorp/googlecompute" target="_blank" rel="noreferrer noopener">here</a>.</p>



<h3 class="wp-block-heading" style="font-size:28px">vSphere</h3>



<p>To integrate XOAP with <strong>VMware vSphere</strong> for image builds, create a <strong>custom vSphere role</strong> that includes only the privileges required for XOAP to perform its operations. Assign this role to a dedicated service account to ensure XOAP has least-privilege access to the vSphere infrastructure.</p>



<h4 class="wp-block-heading" style="font-size:21px">Required privileges</h4>



<p>Clone the default <strong>Read-Only</strong> vSphere role and add the following privileges:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td class="has-text-align-left" data-align="left"><strong>Category</strong></td><td><strong>Privilege</strong></td><td><strong>Reference</strong></td></tr><tr><td class="has-text-align-left" data-align="left">Content Library</td><td>Add library item</td><td>ContentLibrary.AddLibraryItem</td></tr><tr><td class="has-text-align-left" data-align="left">Content Library</td><td>Update Library Item</td><td>ContentLibrary.UpdateLibraryItem</td></tr><tr><td class="has-text-align-left" data-align="left">Cryptographic Operations</td><td>Direct Access (Required for cache upload.)</td><td>Cryptographer.Access</td></tr><tr><td class="has-text-align-left" data-align="left">Cryptographic Operations</td><td>Encrypt (Required for vTPM.)</td><td>Cryptographer.Encrypt</td></tr><tr><td class="has-text-align-left" data-align="left">Datastore</td><td>Allocate space</td><td>Datastore.AllocateSpace</td></tr><tr><td class="has-text-align-left" data-align="left">Datastore</td><td>Browse datastore</td><td>Datastore.Browse</td></tr><tr><td class="has-text-align-left" data-align="left">Datastore</td><td>Low level file operations</td><td>Datastore.FileManagement</td></tr><tr><td class="has-text-align-left" data-align="left">Host</td><td>Configuration &gt; System Management</td><td>Host.Config.SystemManagement</td></tr><tr><td class="has-text-align-left" data-align="left">Network</td><td>Assign network</td><td>Network.Assign</td></tr><tr><td class="has-text-align-left" data-align="left">Resource</td><td>Assign virtual machine to resource pool</td><td>Resource.AssignVMToPool</td></tr><tr><td class="has-text-align-left" data-align="left">vApp</td><td>Export</td><td>vApp.Export</td></tr><tr><td class="has-text-align-left" data-align="left">Virtual Machine</td><td>Configuration &gt; Add new disk</td><td>VirtualMachine.Config.AddNewDisk</td></tr><tr><td class="has-text-align-left" data-align="left">Virtual Machine</td><td>Configuration &gt; Add or remove device</td><td>VirtualMachine.Config.AddRemoveDevice</td></tr><tr><td class="has-text-align-left" data-align="left">Virtual Machine</td><td>Configuration &gt; Advanced configuration</td><td>VirtualMachine.Config.AdvancedConfig</td></tr><tr><td class="has-text-align-left" data-align="left">Virtual Machine</td><td>Configuration &gt; Change CPU count</td><td>VirtualMachine.Config.CPUCount</td></tr><tr><td class="has-text-align-left" data-align="left">Virtual Machine</td><td>Configuration &gt; Change memory</td><td>VirtualMachine.Config.Memory</td></tr><tr><td class="has-text-align-left" data-align="left">Virtual Machine</td><td>Configuration &gt; Change settings</td><td>VirtualMachine.Config.Settings</td></tr><tr><td class="has-text-align-left" data-align="left">Virtual Machine</td><td>Configuration &gt; Change Resource</td><td>VirtualMachine.Config.Resource</td></tr><tr><td class="has-text-align-left" data-align="left">Virtual Machine</td><td>Configuration &gt; Modify device settings</td><td>VirtualMachine.Config.EditDevice</td></tr><tr><td class="has-text-align-left" data-align="left">Virtual Machine</td><td>Configuration &gt; Set annotation</td><td>VirtualMachine.Config.Annotation</td></tr><tr><td class="has-text-align-left" data-align="left">Virtual Machine</td><td>Edit Inventory &gt; Create from existing</td><td>VirtualMachine.Inventory.CreateFromExisting</td></tr><tr><td class="has-text-align-left" data-align="left">Virtual Machine</td><td>Edit Inventory &gt; Create new</td><td>VirtualMachine.Inventory.Create</td></tr><tr><td class="has-text-align-left" data-align="left">Virtual Machine</td><td>Edit Inventory &gt; Remove</td><td>VirtualMachine.Inventory.Delete</td></tr><tr><td class="has-text-align-left" data-align="left">Virtual Machine</td><td>Interaction &gt; Configure CD media</td><td>VirtualMachine.Interact.SetCDMedia</td></tr><tr><td class="has-text-align-left" data-align="left">Virtual Machine</td><td>Interaction &gt; Configure floppy media</td><td>VirtualMachine.Interact.SetFloppyMedia</td></tr><tr><td class="has-text-align-left" data-align="left">Virtual Machine</td><td>Interaction &gt; Connect devices</td><td>VirtualMachine.Interact.DeviceConnection</td></tr><tr><td class="has-text-align-left" data-align="left">Virtual Machine</td><td>Interaction &gt; Inject USB HID scan codes</td><td>VirtualMachine.Interact.PutUsbScanCodes</td></tr><tr><td class="has-text-align-left" data-align="left">Virtual Machine</td><td>Interaction &gt; Power off</td><td>VirtualMachine.Interact.PowerOff</td></tr><tr><td class="has-text-align-left" data-align="left">Virtual Machine</td><td>Interaction &gt; Power on</td><td>VirtualMachine.Interact.PowerOn</td></tr><tr><td class="has-text-align-left" data-align="left">Virtual Machine</td><td>Provisioning &gt; Create template from virtual machine</td><td>VirtualMachine.Provisioning.CreateTemplateFromVM</td></tr><tr><td class="has-text-align-left" data-align="left">Virtual Machine</td><td>Provisioning &gt; Mark as template</td><td>VirtualMachine.Provisioning.MarkAsTemplate</td></tr><tr><td class="has-text-align-left" data-align="left">Virtual Machine</td><td>Provisioning &gt; Mark as virtual machine</td><td>VirtualMachine.Provisioning.MarkAsVM</td></tr><tr><td class="has-text-align-left" data-align="left">Virtual Machine</td><td>State &gt; Create snapshot</td><td>VirtualMachine.State.CreateSnapshot</td></tr></tbody></table></figure>



<h2 class="wp-block-heading" style="font-size:38px">Configuration Management</h2>



<h3 class="wp-block-heading" style="font-size:28px">PowerShell</h3>



<p>All nodes that will be used to author or receive configurations are running <strong>WMF version 5.1 or later</strong>. Authoring nodes that are used to write configurations locally need to have internet connectivity to download new DSC-related resources.</p>



<h3 class="wp-block-heading" style="font-size:28px">Remote management</h3>



<p>WS-Management (WS-MAN) traffic is permitted on the network. It will be enabled by default on nodes that have <strong>PowerShell version 5</strong> installed, but you must ensure it’s not being blocked by firewalls or other network elements. Read further for more information.</p>



<h3 class="wp-block-heading" style="font-size:28px">Communication with our backend</h3>



<p>In order to communicate with our backend, the following ports need to be open: <strong>https://api.xoap.io</strong> on port <strong>443</strong>. </p>



<h3 class="wp-block-heading" style="font-size:28px">Proxy configuration for nodes</h3>



<p>To force PowerShell DSC nodes to use a proxy server to communicate with the cloud-hosted backend, some adjustments to the node configuration must be made before registering the node. DSC does not communicate in a user context and therefore uses the SYSTEM context.</p>



<p>For DSC to connect successfully and register the node, adjust the following lines inside the machine.config in your <strong>.NET installation directory</strong>.</p>



<p>You should find the file in these locations:</p>



<pre class="wp-block-code"><code>32-bit
**%windir%\Microsoft.NET\Framework\&#91;version]\config\machine.config**
64-bit
**%windir%\Microsoft.NET\Framework64\&#91;version]\config\machine.config**
&#91;version] should be equal to v1.0.3705, v1.1.4322, v2.0.50727 or v4.0.30319. v3.0 and v3.5 just contain additional assemblies to v2.0.50727 so there should be no config\machine.config. v4.5.x and v4.6.x are stored inside v4.0.30319.
Then add the following lines:
&lt;defaultProxy&gt;  &lt;proxy autoDetect="false" bypassonlocal="false" proxyaddress="http://127.0.0.1:8888" /&gt; &lt;/defaultProxy&gt;&lt;/system.net&gt;
</code></pre>



<h3 class="wp-block-heading" style="font-size:28px">Firewalls</h3>



<p>SSL decryption can get you into trouble when clients inside your corporate network try to communicate with the cloud backend.</p>



<h3 class="wp-block-heading" style="font-size:28px">DEP</h3>



<p>We’ve seen some Virus Scanners with DEP enabled to prevent users from logging into the cloud backend successfully.</p>



<h3 class="wp-block-heading" style="font-size:28px">TLS</h3>



<p>Enable <strong>TLS 1.2 </strong>wherever possible. Not doing so will keep Configurations Management from working successfully.</p>



<p>Set it via PowerShell:</p>



<pre class="wp-block-code"><code>Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWordSet-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWordSet-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v2.0.50727' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord&#91;System.Net.ServicePointManager]::SecurityProtocol = &#91;System.Net.SecurityProtocolType]::Tls12</code></pre>



<h2 class="wp-block-heading" style="font-size:38px">Application Management</h2>



<p>To use Application Management you need to have network access to <strong>api.xoap.io</strong> over port <strong>443</strong> and custom packages must be provided as a <strong>ZIP</strong> archive prior to upload.</p>



<p>Within your XOAP workspace, you can already find a wide selection of:</p>



<ul class="wp-block-list">
<li>Applications</li>



<li>Application Groups</li>



<li>Application Roles</li>
</ul>



<p>This means you&#8217;re ready to begin installing applications immediately.</p>



<h3 class="wp-block-heading" style="font-size:28px">Creating packages</h3>



<p>XOAP’s Application Management supports PSADT packages in both v3 and v4 formats. Our current Package Wizard supports package creation in v3 format. If you plan to create your own application packages, we recommend installing it on your packaging machine. The easiest way to do this is directly from your XOAP Workspace. </p>



<ol class="wp-block-list">
<li>Navigate to Application Management → <strong>Application Roles</strong></li>



<li>Locate the Role: <strong>PSADT Packaging Baseline</strong></li>



<li>Open the three-dot menu next to the role and choose <strong>Copy installation command</strong></li>



<li>On the machine where you want to install the wizard, <strong>open PowerShell as Administrator</strong>. Paste and execute the copied command.</li>
</ol>



<p>Alternatively, you can download the installation script or copy the installation command, copy it manually to the target system, and then run it through PowerShell as Administrator.</p>



<p>Once completed, the Package Wizard will be fully installed and configured. You can find the shortcut on your desktop.</p>



<h2 class="wp-block-heading" style="font-size:38px">Platform Management</h2>



<p>There are no deployed agents required to use Platform Management — the logic runs directly on XOAP’s <strong>cloud runners</strong> or through your <strong>established infrastructure </strong>connections.</p>



<p>Within the Scripted Actions library, you can already find a selection of:</p>



<ul class="wp-block-list">
<li>Template scripts: pre-built scripts for common tasks (like AVD management or Azure automation)</li>



<li>Resources: a library where your custom scripts are stored</li>
</ul>



<p>This means you can start automating immediately using existing templates.</p>



<h3 class="wp-block-heading" style="font-size:28px">Supported formats</h3>



<p>Platform Management supports standard <strong>PowerShell (.ps1)</strong>, <strong>Azure CLI</strong>, <strong>Google CLI </strong>and <strong>AWS CLI </strong>scripts. The only prerequisite for using your own automation is that the script file must be uploaded to the <strong>Resources</strong> area or imported directly during action creation.</p>



<h3 class="wp-block-heading" style="font-size:28px">Establishing connections</h3>



<p>To execute any script, the platform requires <strong>a valid Connection</strong> to your infrastructure. It is recommended setting up your Connections to cloud providers (Azure, AWS, Google) or on-premises systems (VMware, Nutanix) before creating complex workflows.</p>



<p>You can easily set this up from your XOAP workspace:</p>



<ul class="wp-block-list">
<li>Navigate to <strong>Connections</strong> (in the main menu)</li>



<li>Click <strong>+ New connection</strong></li>



<li>Select your <strong>provider</strong> (Azure, AWS, Google, or other) and follow the authentication prompts</li>
</ul>



<p><strong>Note:</strong> The Scripted Action wizard also allows you to add a new connection during the <strong>Target</strong> selection step.</p>
</div>
<p>The post <a href="https://xoap.io/docs/prerequisites/">Prerequisites</a> appeared first on <a href="https://xoap.io">XOAP</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://xoap.io/docs/prerequisites/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>2025 November updates</title>
		<link>https://xoap.io/docs/2025-november-updates/</link>
					<comments>https://xoap.io/docs/2025-november-updates/#respond</comments>
		
		<dc:creator><![CDATA[Stella]]></dc:creator>
		<pubDate>Tue, 09 Dec 2025 09:57:01 +0000</pubDate>
				<guid isPermaLink="false">https://xoap.io/?post_type=docs&#038;p=27634</guid>

					<description><![CDATA[<p>This release delivers a range of improvements and new capabilities across XOAP, with a strong focus on usability, extensibility, and operational efficiency. Key highlights include enhanced version transparency, the introduction of the new Inventory as a central management hub for devices, expanded command and application management features, and significant updates to the XOAP Connector. General [&#8230;]</p>
<p>The post <a href="https://xoap.io/docs/2025-november-updates/">2025 November updates</a> appeared first on <a href="https://xoap.io">XOAP</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-08f878cd wp-block-group-is-layout-flex">
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>This release delivers a range of improvements and new capabilities across XOAP, with a strong focus on usability, extensibility, and operational efficiency.</p>



<p>Key highlights include enhanced version transparency, the introduction of the new Inventory as a central management hub for devices, expanded command and application management features, and significant updates to the XOAP Connector.</p>
</blockquote>



<h2 class="wp-block-heading" style="font-size:38px">General</h2>



<h3 class="wp-block-heading" style="font-size:28px">Version descriptions</h3>



<p>We added version descriptions to all version drop-downs for better identification specific version changes.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-1-1024x518.png" alt="" class="wp-image-27698" /></figure>



<h2 class="wp-block-heading" style="font-size:38px">Inventory</h2>



<p>Our new Inventory is the new home for all Devices registered with an XOAP Connector. It enables running operational tasks from a central management interface, independent of the location your Devices are located.</p>



<h3 class="wp-block-heading" style="font-size:28px">Commands Library</h3>



<p>You can store commands for later use and edit them the same way we support editing resources, including versioning, access to previous versions and download of the commands.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="518" src="https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-2-1024x518.webp" alt="" class="wp-image-27700" srcset="https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-2-1024x518.webp 1024w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-2-300x152.webp 300w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-2-768x388.webp 768w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-2-1536x776.webp 1536w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-2.webp 1920w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-2-18x9.webp 18w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Running a saved command:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="518" src="https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-3-1024x518.webp" alt="" class="wp-image-27701" srcset="https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-3-1024x518.webp 1024w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-3-300x152.webp 300w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-3-768x388.webp 768w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-3-1536x776.webp 1536w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-3.webp 1920w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-3-18x9.webp 18w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading" style="font-size:38px">Application Management</h2>



<h2 class="wp-block-heading" style="font-size:28px">PSADT v4 Support</h2>



<p>We added support for the latest PSADT v4 packages. You can now upload and deploy your v4 packages in the same way as you did with v3.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="518" src="https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-4-1024x518.webp" alt="" class="wp-image-27702" srcset="https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-4-1024x518.webp 1024w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-4-300x152.webp 300w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-4-768x388.webp 768w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-4-1536x776.webp 1536w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-4.webp 1920w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-4-18x9.webp 18w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading" style="font-size:28px">Extended support for BYO PSADT packages (v3 and v4)</h3>



<p>As XOAP is using some custom functions to identify correct installation on nodes with PSADT script extensions, we are now adding those extensions automatically during PSADT upload. The same applies to some of the parameters we are using for extended functionality.</p>



<p>This enables customers to upload almost all of their previously created PSADT v3 and v4 packages without prior adjustments, as long as they comply with the PSADT standards.</p>



<h4 class="wp-block-heading" style="font-size:21px">Extension scripts</h4>



<p>We are adding two functions as extensions during application upload:</p>



<h5 class="wp-block-heading" style="font-size:16px">Post-installation</h5>



<p><code>Register-Installation</code></p>



<p>Writes the application parameters into the registry (SOFTWARE/PSADT) to identify applications that were installed.</p>



<h5 class="wp-block-heading" style="font-size:16px">Post-uninstallation</h5>



<p><code>UnRegister-Installation</code></p>



<p>Adds specific registry information to the packages which gives XOAP the opportunity to identify if the package was uninstalled.</p>



<h4 class="wp-block-heading" style="font-size:21px">Adding parameters</h4>



<p>We are using some special parameters for additional functionality inside of XOAP. Therefore we are adding some specific parameters to the installation scripts during upload, if they are not present inside the packages:</p>



<p>PackageType = &#8216;Application&#8217;</p>



<p>TargetOS = &#8216;Any&#8217;</p>



<p>PackageName = &#8216;APP_IgorPavlov_7ZipZS_2501_Any_x86_EN&#8217;</p>



<p>The PackageName parameter is dynamically created based on the application parameters inside the package.</p>



<p><em>The currently available XOAP PSADT Package Wizard is not supporting v4 packages and we are not planning to implement it there.</em></p>



<h2 class="wp-block-heading" style="font-size:38px">Group details page</h2>



<p>Added additional information in Group details page: Deploy Type and Deploy mode.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="518" src="https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-5-1024x518.webp" alt="" class="wp-image-27703" srcset="https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-5-1024x518.webp 1024w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-5-300x152.webp 300w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-5-768x388.webp 768w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-5-1536x776.webp 1536w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-5.webp 1920w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-5-18x9.webp 18w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading" style="font-size:38px">Connections</h2>



<p>We added a test connection capability for Azure, AWS and Google which makes verification of added connections an easy step.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="518" src="https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-6-1024x518.webp" alt="" class="wp-image-27704" srcset="https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-6-1024x518.webp 1024w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-6-300x152.webp 300w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-6-768x388.webp 768w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-6-1536x776.webp 1536w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-6.webp 1920w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-6-18x9.webp 18w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading" style="font-size:38px">XOAP Connector</h2>



<h3 class="wp-block-heading" style="font-size:28px">Automatic Connector update during installation</h3>



<p>We added a switch to the installation of the Connector, which automatically fetches the latest version from our GitHub repository located at: <a href="https://github.com/xoap-io/xoap-connector">https://github.com/xoap-io/xoap-connector</a>.</p>



<h3 class="wp-block-heading" style="font-size:28px">Installation sources and command line parameters</h3>



<p>We added more information regarding the direct installation of the XOAP Connector from GitHub.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="518" src="https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-7-1024x518.webp" alt="" class="wp-image-27705" srcset="https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-7-1024x518.webp 1024w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-7-300x152.webp 300w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-7-768x388.webp 768w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-7-1536x776.webp 1536w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-7.webp 1920w, https://xoap.io/wp-content/uploads/2025/12/changelog-nov-2025-7-18x9.webp 18w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading" style="font-size:28px">XOAP Connector command line parameters</h3>



<p>This is a list of currently available command line parameters:</p>



<h4 class="wp-block-heading" style="font-size:21px">Mandatory</h4>



<p>-i (&#8211;install), installs the Connector</p>



<p>-a (&#8211;apiKey), specifies the APIKey to connect to the XOAP Workspace</p>



<p>-w (&#8211;workspace), specifies the XOAP Workspace ID, the Connector should connect to</p>



<h4 class="wp-block-heading" style="font-size:21px">Optional</h4>



<p>-m (&#8211;imageManagement), additionally installs packer on Windows and supported Linux distributions</p>



<p>-u (&#8211;update), fetches the latest available Connector binaries from GitHub</p>



<p>-p (&#8211;path), default value &#8220;C:Program FilesXOAPConnector&#8221;, &#8220;/opt/XOAP/Connector&#8221; on Linux and Mac</p>



<p>-?,&nbsp; Shows available parameters</p>



<h3 class="wp-block-heading" style="font-size:28px">Preview of Linux Agent</h3>



<p>List of tested distributions:</p>



<ul class="wp-block-list">
<li>Ubuntu 24.04, 22.04</li>



<li>Rocky 10 Linux</li>



<li>Alma Linux</li>



<li>Fedora 43 Linux</li>
</ul>
</div>
<p>The post <a href="https://xoap.io/docs/2025-november-updates/">2025 November updates</a> appeared first on <a href="https://xoap.io">XOAP</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://xoap.io/docs/2025-november-updates/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>What you can do with GraphQL</title>
		<link>https://xoap.io/docs/what-you-can-do-with-graphql/</link>
					<comments>https://xoap.io/docs/what-you-can-do-with-graphql/#respond</comments>
		
		<dc:creator><![CDATA[Dora]]></dc:creator>
		<pubDate>Tue, 25 Nov 2025 12:43:11 +0000</pubDate>
				<guid isPermaLink="false">https://xoap.io/?post_type=docs&#038;p=27229</guid>

					<description><![CDATA[<p>Once the GraphQL schema is successfully loaded and an API connection is established, you can execute various queries to retrieve data from your environment. One practical use case is retrieving a full list of installed applications across all managed systems. This list includes applications installed via XOAP or by other means. Get a list of [&#8230;]</p>
<p>The post <a href="https://xoap.io/docs/what-you-can-do-with-graphql/">What you can do with GraphQL</a> appeared first on <a href="https://xoap.io">XOAP</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Once the <strong><a href="https://xoap.io/docs/graphql-ui/" target="_blank" rel="noreferrer noopener">GraphQL schema</a></strong> is successfully loaded and an <strong><a href="https://xoap.io/docs/api-access-documentation-swagger/" target="_blank" rel="noreferrer noopener">API connection</a></strong> is established, you can <strong>execute various queries to retrieve data from your environment</strong>. One practical use case is retrieving <strong>a</strong> <strong>full list of installed applications </strong>across all managed systems. This list includes applications installed via XOAP or by other means.</p>



<h2 class="wp-block-heading">Get a list of all applications installed on your nodes</h2>



<p>The following GraphQL query returns a<strong> list of all applications</strong> installed across all nodes (systems) in your environment:</p>



<pre class="wp-block-code"><code><code>query NodesWithSoftware($skip: Int = 0, $take: Int = 500) {
  configMngt_Nodes(skip: $skip, take: $take) {
    totalCount
    pageInfo { hasNextPage }
    items {
      id
      nodeName
      lastSystem {
        software {
          displayName
          displayVersion
          publisher
        }
      }
    }
  }}</code></code></pre>



<figure class="wp-block-image size-full"><img decoding="async" src="https://xoap.io/wp-content/uploads/2025/11/graphql-what-you-can-do-xoap-example.png" alt="GraphQL | XOAP | What you can do | Example | Get a list of all installed applications on your systems" class="wp-image-27230"/></figure>



<p><strong>Notes:</strong> <br>• If you are managing more than 500 nodes, increase the value of <code>$take</code> accordingly. <br>• Pagination is supported using <code>skip</code> and <code>hasNextPage</code>.</p>



<h2 class="wp-block-heading">Get a list of all applications available in XOAP&#8217;s Application Management module</h2>



<p>This is useful for <strong>reporting</strong>, <strong>validation</strong>, or automation tasks involving <strong>application definitions</strong>. You can use the following GraphQL query for this:</p>



<pre class="wp-block-code"><code>query ListAllApplications($skip: Int = 0, $take: Int = 100) {
  appMngt_Applications(skip: $skip, take: $take) {
    totalCount
    pageInfo { hasNextPage }
    items {
      id
      name
      vendor
      version
      packageName
      operatingSystem
      architecture
      language
      createdAt
      updatedAt
    }
  }
}</code></pre>



<p>This query also returns the <strong>metadata</strong> for all applications, including details like vendor, version, target OS, and architecture.</p>



<figure class="wp-block-image size-full"><img decoding="async" src="https://xoap.io/wp-content/uploads/2025/11/graphql-what-you-can-do-xoap-example-2.png" alt="GraphQL | XOAP | What you can do | Example | Get a list of all applications available in Application Management" class="wp-image-27231"/></figure>



<p><strong>Notes:</strong> <br>• You can increase the <code>$take</code> value if more than 100 applications are expected. <br>• Use the <code>hasNextPage</code> field to implement pagination if needed.</p>



<h2 class="wp-block-heading">Get a list of all systems from a specific hardware manufacturer</h2>



<p>This query allows you to retrieve all nodes from a specific manufacturer (<strong>e.g., Lenovo</strong>) registered within your XOAP workspace. <br><br>This can be useful for<strong> inventory audits</strong>, <strong>hardware lifecycle management</strong>, or <strong>vendor-specific patching and compliance activities</strong>. Use the following GraphQL query:</p>



<pre class="wp-block-code"><code><code>query LenovoFlatNodes($skip: Int = 0, $take: Int = 5) {
  configMngt_FlatNodes(
    skip: $skip
    take: $take
    where: { csManufacturer: { eq: "LENOVO" } }
    order: &#91;{ nodeName: ASC }]
  ) {
    totalCount
    pageInfo { hasNextPage }
    items {
      id
      nodeName
      csManufacturer
      csModel
      osName
      osVersion
    }
  }
}</code></code></pre>



<figure class="wp-block-image size-full"><img decoding="async" src="https://xoap.io/wp-content/uploads/2025/11/graphql-what-you-can-do-xoap-example-3.png" alt="GraphQL | XOAP | What you can do | Example | Get a list of all systems from a specific hardware manufacturer" class="wp-image-27233"/></figure>



<p><strong>Notes: </strong><br>• Manufacturer Name is case-sensitive. <br>• To filter for a different vendor (e.g., HP, DELL), change the value of <code>csManufacturer: { eq: "..." }</code> accordingly. <br>• Increase the <code>$take</code> value to retrieve more records or implement pagination using the <code>hasNextPage</code> field. <br>• This example sorts results by <code>nodeName</code> in ascending order.</p>



<h2 class="wp-block-heading">How to know what you can query</h2>



<p>XOAP collects a vast amount of data from your nodes, along with additional metadata from your workspace. With such a large data set, it can be difficult to determine which fields are available for querying.</p>



<p>The most effective way to explore available query options is by reviewing the <strong>SDL (Schema Definition Language)</strong>. The SDL provides a complete overview of all objects, fields, and types that can be queried via GraphQL.</p>



<p><strong>By inspecting the SDL, you can:</strong></p>



<ul class="wp-block-list">
<li>Discover all available data structures</li>



<li>Identify relationships between entities</li>



<li>Understand the full potential of GraphQL queries within XOAP</li>
</ul>



<p>This approach ensures you&#8217;re not limited by predefined queries and can fully leverage the data collected in your environment.</p>



<figure class="wp-block-image size-full"><img decoding="async" src="https://xoap.io/wp-content/uploads/2025/11/graphql-what-you-can-do-xoap-example-4.png" alt="GraphQL | XOAP | What you can do | Example | How to know what you can query" class="wp-image-27235"/></figure>



<h2 class="wp-block-heading">Need more queries or want to add your own?</h2>



<p>The <a href="https://github.com/xoap-io/queries" target="_blank" rel="noreferrer noopener">github.com/xoap-io/queries</a> repository is your <strong>go‑to collection of reusable GraphQL queries</strong> tailored for hardware and application management within XOAP and related platforms. <br><br><strong>How to use it:</strong><br><br>1. Navigate to the <code>applications/</code> or <code>hardware/</code> folders.<br>2. Copy the relevant <code>.graphql</code> file into your API or GraphQL client.<br>3. Adjust parameters as needed to fit your environment.</p>



<p><em>Under the MIT License and with zero stars or forks so far, this project is still blossoming. We highly welcome your contributions—whether it’s by submitting issues, enhancing queries, or opening pull requests to enrich this shared resource. Let’s grow together! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2b50.png" alt="⭐" class="wp-smiley" style="height: 1em; max-height: 1em;" /></em></p>



<p></p>
<p>The post <a href="https://xoap.io/docs/what-you-can-do-with-graphql/">What you can do with GraphQL</a> appeared first on <a href="https://xoap.io">XOAP</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://xoap.io/docs/what-you-can-do-with-graphql/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Creating an image</title>
		<link>https://xoap.io/docs/create-image-xoap-connector/</link>
					<comments>https://xoap.io/docs/create-image-xoap-connector/#respond</comments>
		
		<dc:creator><![CDATA[Dora]]></dc:creator>
		<pubDate>Wed, 05 Nov 2025 14:07:49 +0000</pubDate>
				<guid isPermaLink="false">https://xoap.io/?post_type=docs&#038;p=26622</guid>

					<description><![CDATA[<p>Once you have enabled the Connector by connecting your on-premises environment with XOAP and adding an operating system (see First steps for detailed instructions), you can create a machine image for vSphere or Nutanix. To do that, follow the steps below. Create Builder Configuration Builder Configuration creates machine images for a specific platform by launching [&#8230;]</p>
<p>The post <a href="https://xoap.io/docs/create-image-xoap-connector/">Creating an image</a> appeared first on <a href="https://xoap.io">XOAP</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-08f878cd wp-block-group-is-layout-flex">
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Once you have enabled the Connector by connecting your on-premises environment with XOAP and adding an operating system (see <a href="https://xoap.io/docs/getting-started-xoap-connector/">First steps</a> for detailed instructions), you can create a machine image for vSphere or Nutanix. To do that, follow the steps below.</p>
</blockquote>



<h2 class="wp-block-heading" style="font-size:38px">Create Builder Configuration</h2>



<p><em>Builder Configuration<strong> </strong>creates machine images for a specific platform by launching temporary resources, provisioning them and producing the final image artifact. Builder Configurations are specific to each environment type.</em></p>



<p><strong>To create a Builder Configuration:</strong></p>



<p>1. In your XOAP Workspace, go to <strong>Image Management</strong> → <strong>Builder Configurations</strong>.</p>



<p>2. Click <strong>New Builder Configuration</strong> and select either <strong>vSphere</strong> or <strong>Nutanix</strong> <strong>builder</strong> from the drop-down menu.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2025/10/create-on-premises-builder-1024x504.png" alt="Create builder configuration for vSphere or Nutanix" class="wp-image-26623"/></figure>



<p>3. Fill in <strong>General Details</strong> and click <strong>Add</strong>.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2025/10/add-general-details-builder-1024x504.png" alt="Add builder details" class="wp-image-26624"/></figure>



<h2 class="wp-block-heading" style="font-size:38px">Image Definition</h2>



<p>Now, you will create the Image Definition and run it in your environment.</p>



<p>1. In <strong>Image Management</strong> → <strong>Image definition</strong> table, click <strong>New Image</strong>.</p>



<p>2. Provide the Image Definition <strong>Name</strong> and select the desired <strong>Builder provider </strong>type.</p>



<p>3. Select the created <strong>Builder Configuration</strong>, <strong>Connector</strong>, <strong>Operating System</strong> and<strong> Provisioner Role</strong>.</p>



<p>4. When everything is selected, click <strong>Save</strong>. </p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2025/10/image-definition-vsphere-nutanix-1024x505.png" alt="Image definition example" class="wp-image-26625"/></figure>



<p>Run the image definition by clicking <strong>Run</strong> from the action menu. This will create the image in your environment.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2025/10/run-image-definition-1-1024x504.png" alt="Run image definition" class="wp-image-26629"/></figure>
</div>
<p>The post <a href="https://xoap.io/docs/create-image-xoap-connector/">Creating an image</a> appeared first on <a href="https://xoap.io">XOAP</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://xoap.io/docs/create-image-xoap-connector/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>First steps</title>
		<link>https://xoap.io/docs/getting-started-xoap-connector/</link>
					<comments>https://xoap.io/docs/getting-started-xoap-connector/#respond</comments>
		
		<dc:creator><![CDATA[Dora]]></dc:creator>
		<pubDate>Wed, 05 Nov 2025 14:07:28 +0000</pubDate>
				<guid isPermaLink="false">https://xoap.io/?post_type=docs&#038;p=26608</guid>

					<description><![CDATA[<p>XOAP Connector is an agent designed for secure system automation. The Connector enables centralized management of distributed systems and simplifies the operation of hybrid IT infrastructures. It runs on Windows, macOS and Linux, and connects directly to your XOAP backend. Currently, supported on-premises environments include vSphere and Nutanix. Below, you will find the initial steps [&#8230;]</p>
<p>The post <a href="https://xoap.io/docs/getting-started-xoap-connector/">First steps</a> appeared first on <a href="https://xoap.io">XOAP</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-08f878cd wp-block-group-is-layout-flex">
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong><a href="https://xoap.io/connector/">XOAP Connector</a></strong> is an agent designed for secure system automation. The Connector enables centralized management of distributed systems and simplifies the operation of hybrid IT infrastructures. <br><br>It runs on <strong>Windows</strong>, <strong>macOS</strong> and <strong>Linux</strong>, and connects directly to your XOAP backend. Currently, supported on-premises environments include<strong> vSphere</strong> and <strong>Nutanix</strong>. <br><br>Below, you will find the initial steps to get started with the Connector.</p>
</blockquote>



<h2 class="wp-block-heading" style="font-size:38px">Add Connection</h2>



<p><em>The Connections area in your XOAP Workspace is where you define credentials to link your on-premises environment with the XOAP platform.</em></p>



<p><strong>To create a new connection:</strong></p>



<p>1. Go to <strong>Connections</strong> and click <strong>New Connection</strong>. </p>



<p>2. Select one of the on-premises environments and fill in the required fields.</p>



<p>3. Click <strong>Confirm</strong> to save the connection.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="504" src="https://xoap.io/wp-content/uploads/2025/10/add-new-on-premises-connection-1024x504.png" alt="Add new on-premises Connection" class="wp-image-26609" srcset="https://xoap.io/wp-content/uploads/2025/10/add-new-on-premises-connection-1024x504.png 1024w, https://xoap.io/wp-content/uploads/2025/10/add-new-on-premises-connection-300x148.webp 300w, https://xoap.io/wp-content/uploads/2025/10/add-new-on-premises-connection-768x378.png 768w, https://xoap.io/wp-content/uploads/2025/10/add-new-on-premises-connection-1536x756.png 1536w, https://xoap.io/wp-content/uploads/2025/10/add-new-on-premises-connection-2048x1008.png 2048w, https://xoap.io/wp-content/uploads/2025/10/add-new-on-premises-connection-18x9.png 18w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading" style="font-size:38px">Add API key</h2>



<p><em>Adding an API key to your XOAP environment enables a secure connection between XOAP and your Connector device.</em></p>



<p><strong>To create a new API key:</strong></p>



<p>1. In your XOAP workspace, go to <strong>Connections</strong> and click <strong>New Connection</strong>. </p>



<p>2. Select <strong>API Key</strong> as the connection type.</p>



<p>3. Provide a <strong>Connection Name</strong> and select the <strong>API Token Type </strong>called <em>&#8220;XOAP Connector&#8221;</em>.</p>



<p>4. Click <strong>Confirm</strong> to create a new API key. </p>



<p>You can now copy the key to the clipboard, as you will need it in the next step.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2025/10/add-api-key-connection-1024x502.png" alt="Add API key" class="wp-image-26611"/></figure>



<h2 class="wp-block-heading" style="font-size:38px">Connect your device</h2>



<p><em>To run images in your on-premises environment, you need to install the XOAP Connector on a machine that has access to your on-premises infrastructure.</em></p>



<p>1. In <strong>Application Management</strong>, go to <strong>Application Groups</strong>. </p>



<p>2. Find the group <strong>XOAP Connector – Base Group</strong> and open<strong> Details</strong>. </p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2025/10/xoap-connector-group-details-1024x504.png" alt="XOAP Connector group details" class="wp-image-26613"/></figure>



<p>3. On the Details page, under <strong>Assigned applications</strong>, click the Connector application <strong>eye</strong> icon to view details.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2025/10/view-details-1024x504.png" alt="View Details" class="wp-image-26615"/></figure>



<p>4. Set the <strong><code>apiKey</code></strong> and <strong><code>workspace</code></strong> values and click <strong>Update </strong>to save the new values to the application group. </p>



<div class="wp-block-group is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list">
<li>For apiKey, just paste the key you copied to clipboard in the previous step.</li>



<li>For workspace, the <strong>Workspace ID</strong> can be found in your Workspace URL.</li>
</ul>
</div>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2025/10/api-key-workspace-id-1024x504.png" alt="Add API key and Workspace ID" class="wp-image-26616"/></figure>



<p>5. Now, go to <strong>Configuration Management</strong> → <strong>Configuration Groups</strong>. </p>



<p>6. Find the <strong>XOAP Connector</strong> group, click the <strong>action menu</strong> and select <strong>Copy registration command</strong>. </p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2025/10/configuration-group-registration-command-1024x504.png" alt="Copy configuration group registration command" class="wp-image-26617"/></figure>



<p>7. Run this command on your device in a PowerShell <strong>administrator</strong> session.</p>



<p>Once complete, your device will appear under <a href="https://xoap.io/docs/devices/"><strong>Inventory →</strong> <strong>Devices</strong></a> in the left-side menu in your XOAP Workspace.</p>



<h2 class="wp-block-heading" style="font-size:38px">Add operating system</h2>



<p><em>In the XOAP workspace, Operating Systems is where you define the OS that will serve as the base for deploying your image. For cloud providers, all Marketplace images are available directly in XOAP and you can simply select the one that best fits your needs. For on-premises environments, you must provide the path to the ISO.</em></p>



<p><strong>To add a new operating system:</strong></p>



<p>1. Go to <strong>Image Management</strong> → <strong>Operating Systems</strong> and click <strong>New Operating System</strong>. </p>



<p>2. In the <strong>New Operating System</strong> window, select the <strong>On-premises</strong> type and fill in the required fields.</p>



<p>3. Click <strong>Save</strong> to add the new operating system.<br><br>If you are missing <strong>Setup Files</strong> like autonunattend.xml or hypervisor-specific adjustments, upload them to the <strong>Resources </strong>area, take a look at our <a href="https://github.com/xoap-io/xoap-packer-templates">GitHub repository</a> or <a href="https://xoap.io/support/">contact us</a> for examples.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://xoap.io/wp-content/uploads/2025/10/add-operating-system-1024x504.png" alt="Add on-premises operating system" class="wp-image-26619"/></figure>



<h2 class="wp-block-heading" style="font-size:38px">Next: Creating an image</h2>



<p>Once your environment, API key, device and operating system are configured, you can create your first machine image. For detailed instructions, you can find the documentation <a href="https://xoap.io/docs/create-image-xoap-connector/">here</a>.</p>
</div>



<p></p>
<p>The post <a href="https://xoap.io/docs/getting-started-xoap-connector/">First steps</a> appeared first on <a href="https://xoap.io">XOAP</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://xoap.io/docs/getting-started-xoap-connector/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
