<?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>Extensions and Packages APIs Archives - SearchStax Docs</title>
	<atom:link href="https://www.searchstax.com/docs/category/managed-solr/mloud-manager/searchstax-api/extensions-and-packages-apis/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Documentation</description>
	<lastBuildDate>Wed, 15 Jul 2026 20:37:47 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>

<image>
	<url>https://www.searchstax.com/docs/wp-content/uploads/2023/10/cropped-favicon-32x32.png</url>
	<title>Extensions and Packages APIs Archives - SearchStax Docs</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Solr Package Manager API</title>
		<link>https://www.searchstax.com/docs/solr-package-manager-api/</link>
		
		<dc:creator><![CDATA[matt wallace]]></dc:creator>
		<pubDate>Thu, 09 Jul 2026 18:50:24 +0000</pubDate>
				<category><![CDATA[Extensions and Packages APIs]]></category>
		<category><![CDATA[Cloud]]></category>
		<guid isPermaLink="false">https://www.searchstax.com/docs/?p=23909</guid>

					<description><![CDATA[<p>Solr Package Manager API Use the SearchStax API to add custom Solr JAR files with Solr Package Manager. Use Package Manager as the preferred workflow for adding or upgrading custom&#8230; <a class="more-link" href="https://www.searchstax.com/docs/solr-package-manager-api/">Continue reading <span class="screen-reader-text">Solr Package Manager API</span></a></p>
<p>The post <a href="https://www.searchstax.com/docs/solr-package-manager-api/">Solr Package Manager API</a> appeared first on <a href="https://www.searchstax.com/docs">SearchStax Docs</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h1 id="h-solr-package-manager-api" class="wp-block-heading">Solr Package Manager API</h1>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">Use the SearchStax API to add custom Solr JAR files with Solr Package Manager.</p>



<p class="wp-block-paragraph">Use Package Manager as the preferred workflow for adding or upgrading custom JARs on Managed Search deployments where Package Manager is enabled. Instead of adding a custom JAR directory to <code>solrconfig.xml</code> and restarting Solr after each upload, you upload JAR files to Filestore, register package versions, and reference the package name from your configset.</p>



<p class="wp-block-paragraph">Solr Package Manager uses Solr Filestore. Filestore stores and distributes JAR files across Solr nodes in a deployment. Package Manager references those files, assigns package names and versions, and makes the classes in those files available to Solr.</p>



<p class="wp-block-paragraph">Package Manager helps when you upgrade custom JAR files over time. After your configset references a package-prefixed class name, you can upload a new JAR and register a package version without changing the configset, reloading collections, or restarting Solr.</p>



<p class="wp-block-paragraph">During migration, the Custom JARs mechanism and Package Manager can operate at the same time. This lets you move custom classes to Package Manager incrementally. The Custom JARs workflow remains available for legacy deployments and migration cases.</p>



<p class="wp-block-paragraph">For the legacy custom JAR upload and restart workflow, see <a href="https://www.searchstax.com/docs/searchstax-cloud-custom-jars-api/">Solr Custom JARs API</a>.</p>



<h2 id="h-prerequisites" class="wp-block-heading">Prerequisites</h2>



<p class="wp-block-paragraph">Before you start, you need:</p>



<ul class="wp-block-list">
<li>A SearchStax Managed Search deployment running Solr 9 or later</li>



<li>A Premium Managed Search plan, such as Core or higher</li>



<li>A SearchStax user with Technical Contact access or higher</li>



<li>Package Manager enabled on the deployment, or an eligible deployment where Package Manager can be enabled</li>



<li>A SearchStax API token</li>



<li>The SearchStax account name</li>



<li>The deployment UID</li>



<li>A JAR file to upload</li>



<li>Permission to update the relevant Solr configsets</li>



<li>Permission to reload affected Solr collections after configset changes</li>
</ul>



<h2 id="h-api-base-url" class="wp-block-heading">API Base URL</h2>



<p class="wp-block-paragraph">The examples in this article use the following base URL:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: xml; title: ; notranslate">
https://app.searchstax.com/api/rest/v2
</pre></div>


<p class="wp-block-paragraph">The examples use the following variables:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code>&lt;account_name&gt;</code></td><td>Your SearchStax account name.</td></tr><tr><td><code>&lt;uid&gt;</code></td><td>The deployment UID.</td></tr><tr><td><code>&lt;token&gt;</code></td><td>Your SearchStax API token.</td></tr><tr><td><code>&lt;filename&gt;</code></td><td>The JAR filename in Filestore. The filename can&#8217;t contain <code>/</code>.</td></tr><tr><td><code>&lt;package_name&gt;</code></td><td>The Solr package name.</td></tr><tr><td><code>&lt;version_number&gt;</code></td><td>The package version.</td></tr></tbody></table></figure>



<h2 id="h-authenticate" class="wp-block-heading">Authenticate</h2>



<p class="wp-block-paragraph">Request an authentication token from the SearchStax API:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
curl -s -X POST \
  -H &quot;Content-Type: application/json&quot; \
  -d &#039;{
    &quot;username&quot;: &quot;&lt;username&gt;&quot;,
    &quot;password&quot;: &quot;&lt;password&gt;&quot;,
    &quot;tfa_token&quot;: &quot;&lt;tfa_token&gt;&quot;
  }&#039; \
  https://app.searchstax.com/api/rest/v2/obtain-auth-token/
</pre></div>


<p class="wp-block-paragraph">The <code>tfa_token</code> field is optional unless your SearchStax account requires two-factor authentication.</p>



<p class="wp-block-paragraph">The response includes a token:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
{
  &quot;token&quot;: &quot;&lt;token&gt;&quot;
}
</pre></div>


<p class="wp-block-paragraph">For the remaining requests, include the token in the <code>Authorization</code> header:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
Authorization: Token &lt;token&gt;
</pre></div>


<h2 id="h-step-1-check-package-manager-availability" class="wp-block-heading">Step 1: Check Package Manager Availability</h2>



<p class="wp-block-paragraph">Package Manager is available for Solr 9 deployments on eligible Managed Search plans. New Solr 9 deployments created in July 2026 or later have Package Manager enabled by default. Existing Solr 9 deployments created before July 2026 may need Package Manager enabled before you use package-managed JAR files.</p>



<p class="wp-block-paragraph">List existing packages to review the packages registered with the deployment:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
curl -s \
  -H &quot;Authorization: Token &lt;token&gt;&quot; \
  https://app.searchstax.com/api/rest/v2/account/&lt;account_name&gt;/deployment/&lt;uid&gt;/solr/package-manager/
</pre></div>


<p class="wp-block-paragraph">Successful response: <code>200 OK</code>.</p>



<p class="wp-block-paragraph">Example response:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
{
  &quot;result&quot;: {
    &quot;znodeVersion&quot;: 0,
    &quot;packages&quot;: {
      &quot;my-package&quot;: &#x5B;
        {
          &quot;package&quot;: &quot;my-package&quot;,
          &quot;version&quot;: &quot;1.0.0&quot;,
          &quot;files&quot;: &#x5B;
            &quot;/my-plugin-1.0.0.jar&quot;
          ]
        }
      ]
    }
  }
}
</pre></div>


<p class="wp-block-paragraph">If Package Manager isn&#8217;t enabled on your deployment, use the enable endpoint before uploading package-managed JAR files.</p>



<h2 id="h-step-2-enable-package-manager-if-needed" class="wp-block-heading">Step 2: Enable Package Manager, If Needed</h2>



<p class="wp-block-paragraph">If Package Manager isn&#8217;t enabled on an eligible deployment, use the enable endpoint before you use package-managed JAR files:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
curl -s -X POST \
  -H &quot;Authorization: Token &lt;token&gt;&quot; \
  https://app.searchstax.com/api/rest/v2/account/&lt;account_name&gt;/deployment/&lt;uid&gt;/solr/package-manager/enable/
</pre></div>


<p class="wp-block-paragraph">Successful response: <code>200 OK</code>.</p>



<p class="wp-block-paragraph">Don&#8217;t include a request body unless SearchStax provides one for your deployment or workflow.</p>



<p class="wp-block-paragraph">Note: For deployments created before July 2026, contact SearchStax Support if you can&#8217;t enable Package Manager from your account.</p>



<p class="wp-block-paragraph">Enabling Package Manager may trigger a rolling restart of the deployment.</p>



<h2 id="h-step-3-upload-a-jar-file-to-filestore" class="wp-block-heading">Step 3: Upload a JAR File to Filestore</h2>



<p class="wp-block-paragraph">Upload the JAR file to Solr Filestore:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
curl -s -X POST \
  -H &quot;Authorization: Token &lt;token&gt;&quot; \
  -F &quot;file=@./my-plugin-1.0.0.jar&quot; \
  -F &quot;checksum=&lt;sha512_checksum&gt;&quot; \
  https://app.searchstax.com/api/rest/v2/account/&lt;account_name&gt;/deployment/&lt;uid&gt;/solr/package-manager/files/
</pre></div>


<p class="wp-block-paragraph">The <code>checksum</code> field is optional. Use this field to provide the SHA-512 checksum of the JAR file.</p>



<p class="wp-block-paragraph">When you upload a JAR through the SearchStax API, SearchStax signs the JAR and uploads the signed JAR to Filestore. Solr validates the signature before accepting the file.</p>



<h3 id="h-request-fields" class="wp-block-heading">Request Fields</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Field</th><th>Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td><code>file</code></td><td>file</td><td>Yes</td><td>The JAR file to upload.</td></tr><tr><td><code>checksum</code></td><td>string</td><td>No</td><td>The SHA-512 checksum of the JAR file.</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Successful response: <code>201 Created</code>.</p>



<p class="wp-block-paragraph">Example response:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
{
  &quot;file&quot;: &quot;/my-plugin-1.0.0.jar&quot;,
  &quot;responseHeader&quot;: {
    &quot;status&quot;: 0,
    &quot;QTime&quot;: 67
  }
}
</pre></div>


<p class="wp-block-paragraph">If the same file metadata already exists, the response can include a message similar to the following:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
{
  &quot;file&quot;: &quot;/my-plugin-1.0.0.jar&quot;,
  &quot;message&quot;: &quot;File with same metadata exists &quot;,
  &quot;responseHeader&quot;: {
    &quot;status&quot;: 0,
    &quot;QTime&quot;: 13
  }
}
</pre></div>


<h2 id="h-step-4-create-a-package-version" class="wp-block-heading">Step 4: Create a Package Version</h2>



<p class="wp-block-paragraph">After the JAR is available in Filestore, register it as a Solr package version:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
curl -s -X POST \
  -H &quot;Authorization: Token &lt;token&gt;&quot; \
  -H &quot;Content-Type: application/json&quot; \
  -d &#039;{
    &quot;add&quot;: {
      &quot;package&quot;: &quot;my-package&quot;,
      &quot;version&quot;: &quot;1.0.0&quot;,
      &quot;files&quot;: &#x5B;
        &quot;/my-plugin-1.0.0.jar&quot;
      ]
    }
  }&#039; \
  https://app.searchstax.com/api/rest/v2/account/&lt;account_name&gt;/deployment/&lt;uid&gt;/solr/package-manager/
</pre></div>


<h3 id="h-request-fields-0" class="wp-block-heading">Request Fields</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Field</th><th>Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td><code>add.package</code></td><td>string</td><td>Yes</td><td>The package name.</td></tr><tr><td><code>add.version</code></td><td>string</td><td>Yes</td><td>The package version.</td></tr><tr><td><code>add.files</code></td><td>array</td><td>Yes</td><td>The JAR files to associate with this package version.</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Successful response: <code>200 OK</code>.</p>



<p class="wp-block-paragraph">Example response:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
{
  &quot;responseHeader&quot;: {
    &quot;status&quot;: 0,
    &quot;QTime&quot;: 59
  }
}
</pre></div>


<p class="wp-block-paragraph">If the package version already exists, the response can include a Solr <code>400</code> error:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
{
  &quot;responseHeader&quot;: {
    &quot;status&quot;: 400,
    &quot;QTime&quot;: 8
  },
  &quot;error&quot;: {
    &quot;msg&quot;: &quot;Error executing command, errors: &#x5B;...]&quot;,
    &quot;code&quot;: 400
  }
}
</pre></div>


<p class="wp-block-paragraph"><strong>Note</strong>: Solr uses lexicographic ordering, not semantic version ordering, to determine the latest package version. For example, Solr considers <code>1.9.0</code> newer than <code>1.11.0</code>. Choose version labels carefully so the latest intended version sorts correctly.</p>



<h2 id="h-step-5-update-configset-class-references" class="wp-block-heading">Step 5: Update Configset Class References</h2>



<p class="wp-block-paragraph">Update the relevant Solr configset files so Solr references the package-prefixed class name.</p>



<p class="wp-block-paragraph">Before Package Manager, custom classes use a fully qualified class name.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: xml; title: ; notranslate">
class=&quot;com.example.solr.MyClass&quot;
</pre></div>


<p class="wp-block-paragraph">With Package Manager, prefix the class name with the package name:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: xml; title: ; notranslate">
class=&quot;my-package:com.example.solr.MyClass&quot;
</pre></div>


<p class="wp-block-paragraph">For example, the following request handler:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: xml; title: ; notranslate">
&lt;requestHandler name=&quot;/example&quot; class=&quot;com.example.solr.MyClass&quot; /&gt;
</pre></div>


<p class="wp-block-paragraph">becomes the following:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: xml; title: ; notranslate">
&lt;requestHandler name=&quot;/example&quot; class=&quot;my-package:com.example.solr.MyClass&quot; /&gt;
</pre></div>


<p class="wp-block-paragraph">Upload the modified configset using your normal configset management workflow.</p>



<h2 id="h-step-6-reload-affected-collections" class="wp-block-heading">Step 6: Reload Affected Collections</h2>



<p class="wp-block-paragraph">Reload each Solr collection that uses the updated configset.</p>



<p class="wp-block-paragraph">The reload applies the initial configset changes without requiring a full deployment restart.</p>



<p class="wp-block-paragraph">Use your normal collection reload workflow. This might be a SearchStax workflow, a Solr API workflow, or a process that you coordinate with SearchStax Support.</p>



<h2 id="h-update-a-package-to-a-new-jar-version" class="wp-block-heading">Update a Package to a New JAR Version</h2>



<p class="wp-block-paragraph">To update a package, upload the new JAR file and create a package version with the same package name.</p>



<p class="wp-block-paragraph">For example, upload <code>my-plugin-1.1.0.jar</code>, and then register a new version of <code>my-package</code>:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
curl -s -X POST \
  -H &quot;Authorization: Token &lt;token&gt;&quot; \
  -H &quot;Content-Type: application/json&quot; \
  -d &#039;{
    &quot;add&quot;: {
      &quot;package&quot;: &quot;my-package&quot;,
      &quot;version&quot;: &quot;1.1.0&quot;,
      &quot;files&quot;: &#x5B;
        &quot;/my-plugin-1.1.0.jar&quot;
      ]
    }
  }&#039; \
  https://app.searchstax.com/api/rest/v2/account/&lt;account_name&gt;/deployment/&lt;uid&gt;/solr/package-manager/
</pre></div>


<p class="wp-block-paragraph">After the configset uses the package-prefixed class name, future package version changes don&#8217;t require another configset class-name change, collection reload, or Solr restart. Solr uses the latest package version automatically.</p>



<p class="wp-block-paragraph"><strong>Note</strong>: Because Solr uses lexicographic ordering to determine the latest package version, confirm that the new version sorts after the previous version.</p>



<h2 id="h-manage-existing-files" class="wp-block-heading">Manage Existing Files</h2>



<h3 id="h-list-files" class="wp-block-heading">List Files</h3>



<p class="wp-block-paragraph">List files in Solr Filestore:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
curl -s \
  -H &quot;Authorization: Token &lt;token&gt;&quot; \
  https://app.searchstax.com/api/rest/v2/account/&lt;account_name&gt;/deployment/&lt;uid&gt;/solr/package-manager/files/
</pre></div>


<p class="wp-block-paragraph">Successful response: <code>200 OK</code>.</p>



<p class="wp-block-paragraph">Example response:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
{
  &quot;files&quot;: {
    &quot;/&quot;: &#x5B;
      {
        &quot;name&quot;: &quot;my-plugin-1.0.0.jar&quot;,
        &quot;size&quot;: 262,
        &quot;timestamp&quot;: 1712345678901,
        &quot;sig&quot;: &#x5B;
          &quot;&lt;signature&gt;&quot;
        ],
        &quot;sha512&quot;: &quot;&lt;sha512_checksum&gt;&quot;
      },
      {
        &quot;name&quot;: &quot;_trusted_&quot;,
        &quot;dir&quot;: true
      }
    ]
  },
  &quot;responseHeader&quot;: {
    &quot;status&quot;: 0,
    &quot;QTime&quot;: 5
  }
}
</pre></div>


<h3 id="h-get-file-metadata" class="wp-block-heading">Get File Metadata</h3>



<p class="wp-block-paragraph">Retrieve metadata for a specific file.</p>



<p class="wp-block-paragraph">The <code>&lt;filename&gt;</code> path parameter can&#8217;t contain <code>/</code>.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
curl -s \
  -H &quot;Authorization: Token &lt;token&gt;&quot; \
  https://app.searchstax.com/api/rest/v2/account/&lt;account_name&gt;/deployment/&lt;uid&gt;/solr/package-manager/files/&lt;filename&gt;/
</pre></div>


<p class="wp-block-paragraph">Successful response: <code>200 OK</code>.</p>



<p class="wp-block-paragraph">Example response:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
{
  &quot;files&quot;: {
    &quot;/my-plugin-1.0.0.jar&quot;: {
      &quot;name&quot;: &quot;my-plugin-1.0.0.jar&quot;,
      &quot;size&quot;: 262,
      &quot;timestamp&quot;: 1712345678901,
      &quot;sig&quot;: &#x5B;
        &quot;&lt;signature&gt;&quot;
      ],
      &quot;sha512&quot;: &quot;&lt;sha512_checksum&gt;&quot;
    }
  },
  &quot;responseHeader&quot;: {
    &quot;status&quot;: 0,
    &quot;QTime&quot;: 5
  }
}
</pre></div>


<h3 id="h-download-a-file" class="wp-block-heading">Download a File</h3>



<p class="wp-block-paragraph">Download a file from Solr Filestore.</p>



<p class="wp-block-paragraph">The <code>&lt;filename&gt;</code> path parameter can&#8217;t contain <code>/</code>.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
curl -L \
  -H &quot;Authorization: Token &lt;token&gt;&quot; \
  -o my-plugin-1.0.0.jar \
  https://app.searchstax.com/api/rest/v2/account/&lt;account_name&gt;/deployment/&lt;uid&gt;/solr/package-manager/files/&lt;filename&gt;/download/
</pre></div>


<p class="wp-block-paragraph">Successful response: <code>200 OK</code>.</p>



<p class="wp-block-paragraph">Response body: Binary file content. The response is the file itself, not a JSON object.</p>



<h3 id="h-delete-a-file" class="wp-block-heading">Delete a File</h3>



<p class="wp-block-paragraph">Delete a file from Solr Filestore.</p>



<p class="wp-block-paragraph">The <code>&lt;filename&gt;</code> path parameter can&#8217;t contain <code>/</code>.</p>



<p class="wp-block-paragraph">A file can&#8217;t be part of any package when you delete it. Delete the package version that references the file before deleting the file.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
curl -s -X DELETE \
  -H &quot;Authorization: Token &lt;token&gt;&quot; \
  https://app.searchstax.com/api/rest/v2/account/&lt;account_name&gt;/deployment/&lt;uid&gt;/solr/package-manager/files/&lt;filename&gt;/
</pre></div>


<p class="wp-block-paragraph">Successful response: <code>200 OK</code>.</p>



<p class="wp-block-paragraph">The response body can include a Solr response header.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
{
  &quot;responseHeader&quot;: {
    &quot;status&quot;: 0,
    &quot;QTime&quot;: 18
  }
}
</pre></div>


<p class="wp-block-paragraph">If the file is still referenced by a package, the response can include a Solr <code>400</code> error:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
{
  &quot;responseHeader&quot;: {
    &quot;status&quot;: 400,
    &quot;QTime&quot;: 11
  },
  &quot;error&quot;: {
    &quot;msg&quot;: &quot;jar in use, can&#039;t delete&quot;,
    &quot;code&quot;: 400
  }
}
</pre></div>


<h2 id="h-manage-existing-packages" class="wp-block-heading">Manage Existing Packages</h2>



<h3 id="h-list-packages" class="wp-block-heading">List Packages</h3>



<p class="wp-block-paragraph">List packages registered with Solr Package Manager:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
curl -s \
  -H &quot;Authorization: Token &lt;token&gt;&quot; \
  https://app.searchstax.com/api/rest/v2/account/&lt;account_name&gt;/deployment/&lt;uid&gt;/solr/package-manager/
</pre></div>


<p class="wp-block-paragraph">Successful response: <code>200 OK</code>.</p>



<p class="wp-block-paragraph">Example response:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
{
  &quot;result&quot;: {
    &quot;znodeVersion&quot;: 2,
    &quot;packages&quot;: {
      &quot;my-package&quot;: &#x5B;
        {
          &quot;package&quot;: &quot;my-package&quot;,
          &quot;version&quot;: &quot;1.0.0&quot;,
          &quot;files&quot;: &#x5B;
            &quot;/my-plugin-1.0.0.jar&quot;
          ]
        },
        {
          &quot;package&quot;: &quot;my-package&quot;,
          &quot;version&quot;: &quot;1.1.0&quot;,
          &quot;files&quot;: &#x5B;
            &quot;/my-plugin-1.1.0.jar&quot;
          ]
        }
      ]
    }
  }
}
</pre></div>


<h3 id="h-delete-a-package-version" class="wp-block-heading">Delete a Package Version</h3>



<p class="wp-block-paragraph">Use the <code>delete</code> package command to delete a package version:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
curl -s -X POST \
  -H &quot;Authorization: Token &lt;token&gt;&quot; \
  -H &quot;Content-Type: application/json&quot; \
  -d &#039;{
    &quot;delete&quot;: {
      &quot;package&quot;: &quot;my-package&quot;,
      &quot;version&quot;: &quot;1.0.0&quot;
    }
  }&#039; \
  https://app.searchstax.com/api/rest/v2/account/&lt;account_name&gt;/deployment/&lt;uid&gt;/solr/package-manager/
</pre></div>


<h4 id="h-request-fields-1" class="wp-block-heading">Request Fields</h4>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Field</th><th>Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td><code>delete.package</code></td><td>string</td><td>Yes</td><td>The package name.</td></tr><tr><td><code>delete.version</code></td><td>string</td><td>Yes</td><td>The package version to delete.</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Successful response: <code>200 OK</code>.</p>



<p class="wp-block-paragraph">Example response:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
{
  &quot;responseHeader&quot;: {
    &quot;status&quot;: 0,
    &quot;QTime&quot;: 10
  }
}
</pre></div>


<p class="wp-block-paragraph">Note: The package delete command uses the same <code>POST /package-manager/</code> endpoint as package creation.</p>



<h2 id="h-endpoint-reference" class="wp-block-heading">Endpoint Reference</h2>



<h3 id="h-package-manager-endpoints" class="wp-block-heading">Package Manager Endpoints</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Method</th><th>Endpoint</th><th>Description</th><th>Success Status</th></tr></thead><tbody><tr><td><code>GET</code></td><td><code>/account/{account_name}/deployment/{uid}/solr/package-manager/</code></td><td>List packages.</td><td><code>200 OK</code></td></tr><tr><td><code>POST</code></td><td><code>/account/{account_name}/deployment/{uid}/solr/package-manager/</code></td><td>Create a package version or delete a package version.</td><td><code>200 OK</code></td></tr><tr><td><code>POST</code></td><td><code>/account/{account_name}/deployment/{uid}/solr/package-manager/enable/</code></td><td>Enable Package Manager for a deployment.</td><td><code>200 OK</code></td></tr></tbody></table></figure>



<h3 id="h-file-endpoints" class="wp-block-heading">File Endpoints</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Method</th><th>Endpoint</th><th>Description</th><th>Success Status</th></tr></thead><tbody><tr><td><code>GET</code></td><td><code>/account/{account_name}/deployment/{uid}/solr/package-manager/files/</code></td><td>List files in Filestore.</td><td><code>200 OK</code></td></tr><tr><td><code>POST</code></td><td><code>/account/{account_name}/deployment/{uid}/solr/package-manager/files/</code></td><td>Upload a file to Filestore.</td><td><code>201 Created</code></td></tr><tr><td><code>GET</code></td><td><code>/account/{account_name}/deployment/{uid}/solr/package-manager/files/{filename}/</code></td><td>Get metadata for a file.</td><td><code>200 OK</code></td></tr><tr><td><code>DELETE</code></td><td><code>/account/{account_name}/deployment/{uid}/solr/package-manager/files/{filename}/</code></td><td>Delete a file from Filestore.</td><td><code>200 OK</code></td></tr><tr><td><code>GET</code></td><td><code>/account/{account_name}/deployment/{uid}/solr/package-manager/files/{filename}/download/</code></td><td>Download a file from Filestore.</td><td><code>200 OK</code></td></tr></tbody></table></figure>



<h2 id="h-request-body-reference" class="wp-block-heading">Request Body Reference</h2>



<h3 id="h-upload-file-request" class="wp-block-heading">Upload File Request</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Field</th><th>Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td><code>file</code></td><td>file</td><td>Yes</td><td>The JAR file to upload.</td></tr><tr><td><code>checksum</code></td><td>string</td><td>No</td><td>The SHA-512 checksum of the JAR file.</td></tr></tbody></table></figure>



<h3 id="h-add-package-version-request" class="wp-block-heading">Add Package Version Request</h3>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
{
  &quot;add&quot;: {
    &quot;package&quot;: &quot;my-package&quot;,
    &quot;version&quot;: &quot;1.0.0&quot;,
    &quot;files&quot;: &#x5B;
      &quot;/my-plugin-1.0.0.jar&quot;
    ]
  }
}
</pre></div>


<h3 id="h-delete-package-version-request" class="wp-block-heading">Delete Package Version Request</h3>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
{
  &quot;delete&quot;: {
    &quot;package&quot;: &quot;my-package&quot;,
    &quot;version&quot;: &quot;1.0.0&quot;
  }
}
</pre></div>


<p class="wp-block-paragraph"></p>
<p>The post <a href="https://www.searchstax.com/docs/solr-package-manager-api/">Solr Package Manager API</a> appeared first on <a href="https://www.searchstax.com/docs">SearchStax Docs</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Solr Custom JARs API</title>
		<link>https://www.searchstax.com/docs/searchstax-cloud-custom-jars-api/</link>
					<comments>https://www.searchstax.com/docs/searchstax-cloud-custom-jars-api/#respond</comments>
		
		<dc:creator><![CDATA[Bruce]]></dc:creator>
		<pubDate>Wed, 06 Jul 2022 12:50:29 +0000</pubDate>
				<category><![CDATA[Extensions and Packages APIs]]></category>
		<category><![CDATA[Cloud]]></category>
		<guid isPermaLink="false">https://www.searchstax.com/docs/?p=11929</guid>

					<description><![CDATA[<p>Provisioning API &#8211; Custom JARs New Process for Uploading Custom JARs This page documents a legacy process. For the current recommended workflow for creating and managing custom JARs, see Solr&#8230; <a class="more-link" href="https://www.searchstax.com/docs/searchstax-cloud-custom-jars-api/">Continue reading <span class="screen-reader-text">Solr Custom JARs API</span></a></p>
<p>The post <a href="https://www.searchstax.com/docs/searchstax-cloud-custom-jars-api/">Solr Custom JARs API</a> appeared first on <a href="https://www.searchstax.com/docs">SearchStax Docs</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h1 id="h-provisioning-api-custom-jars" class="wp-block-heading">Provisioning API &#8211; Custom JARs</h1>



<hr class="wp-block-separator has-css-opacity"/>



<div class="alert alert-warning">
<h4>New Process for Uploading Custom JARs</h4>
<p class="wp-block-paragraph">This page documents a legacy process. For the current recommended workflow for creating and managing custom JARs, see <a href="https://www.searchstax.com/docs/solr-package-manager-api/">Solr Package Manager API</a>.</p>
</div>




<h2 id="h-overview" class="wp-block-heading">Overview</h2>



<p class="wp-block-paragraph">The SearchStax Managed Search service provides an API supporting the creation, deletion and management of Solr Cloud deployments.</p>



<div class="alert alert-info">
<h3>Premium Clients Only!</h3>
<p>The Custom JAR API suite is available to our premium
clients only, as noted on our <a href="https://www.searchstax.com/pricing/cloud/">Pricing</a> page. </p>
</div>



<p class="wp-block-paragraph">This page describes how to add and manage custom JAR files using API methods.</p>



<div class="alert alert-warning">
<h3>JAR size limit!</h3>
<p>The API can handle JAR files up to 75 MB. If this is a problem, submit a support ticket.</p>
</div>



<div class="alert alert-success">
<h3>Restart Solr Nodes!</h3>
<p>After uploading a custom Jar, you must perform a <a href="https://www.searchstax.com/docs/hc/start-stop-searchstax-solr/">Rolling Restart</a> of the deployment. The API does not automatically restart the Solr nodes.</p>
</div>



<p class="wp-block-paragraph">The API can be accessed through any tool that assembles HTTP requests and dispatch them to a server. Among these would be the Python <a href="https://pypi.org/project/coreapi/" target="_blank" rel="noreferrer noopener">coreapi</a> package, the <a href="https://www.postman.com/" target="_blank" rel="noreferrer noopener">Postman</a> tool, and <a href="https://curl.se" target="_blank" rel="noreferrer noopener">cURL</a>. For Windows, use <a href="https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.1" target="_blank" rel="noreferrer noopener">PowerShell 7+</a>.</p>



<div class="alert alert-warning">
<h3>Account Owner, Admin, or Technical Contact</h3>
<p>To run the SearchStax Provisioning API, you must be the account Owner,
an account Admin, or a Technical Contact. See <a href="/docs/searchstax-cloud-user-roles/#userroles">SearchStax User Roles</a>.</p>
</div>



<p class="wp-block-paragraph">Symbols enclosed in carets (&lt; and &gt;) such as <strong>&lt;username&gt;</strong> are metavariables. Substitute your local values when you encounter them in the examples.</p>



<p class="wp-block-paragraph">Contents:</p>



<ul class="wp-block-list">
<li><a href="#jars">JARs</a>
<ul class="wp-block-list">
<li><a href="#listjars">account &gt; deployment &gt; solr &gt; custom-jars&gt; list</a></li>



<li><a href="#createjar">account &gt; deployment &gt; solr &gt; custom-jars &gt; create</a></li>



<li><a href="#deletejar">account &gt; deployment &gt; solr &gt; custom-jars &gt; delete</a></li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph">Related Pages:</p>



<ul class="wp-block-list">
<li><a href="/docs/searchstax-cloud-authentication-api/">Authentication API</a></li>



<li><a href="/docs/searchstax-cloud-users-api/">Users API</a></li>



<li><a href="/docs/searchstax-cloud-basic-auth-api/">Basic Auth API</a></li>



<li><a href="/docs/searchstax-cloud-ipfilter-api/">IP Filtering API</a></li>



<li><a href="/docs/searchstax-cloud-deployment-api/">Deployment API</a></li>



<li><a href="/docs/searchstax-cloud-private-vpc-api/">Private VPC API</a></li>



<li><a href="/docs/searchstax-cloud-dns-alias-api/">DNS Alias API</a></li>



<li><a href="/docs/searchstax-cloud-backup-restore-api/">Backup/Restore API</a></li>



<li><a href="/docs/searchstax-cloud-alerts-api/">Alerts API</a></li>



<li><a href="/docs/searchstax-cloud-webhooks-api/">Webhooks API</a></li>



<li><a href="/docs/searchstax-cloud-zookeeper-api/">Zookeeper API</a></li>
</ul>



<h2 id="jars" class="wp-block-heading">JARs</h2>



<h3 id="listjars" class="wp-block-heading">account &gt; deployment &gt; solr &gt; custom-jars &gt; list</h3>



<p class="wp-block-paragraph">This method lists the JAR files of a deployment or server.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#24292e;display:none" aria-label="Copy" class="code-block-pro-copy-button"><textarea class="code-block-pro-copy-button-textarea" aria-hidden="true" readonly>GET https://app.searchstax.com/api/rest/v2/account/&lt;account_name>/deployment/&lt;uid>/solr/custom-jars/?server_sn=&lt;server_number>&amp;page=&lt;page_number>
</textarea><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-light" style="background-color: #fff" tabindex="0"><code><span class="line"><span style="color: #D73A49">GET</span><span style="color: #24292E"> https://app.searchstax.com/api/rest/v2/account/&lt;account_name&gt;/deployment/&lt;uid&gt;/solr/custom-jars/?server_sn=&lt;server_number&gt;&amp;page=&lt;page_number&gt;</span></span>
<span class="line"></span></code></pre></div>



<p class="wp-block-paragraph">where <strong>&lt;account_name&gt;</strong> is the name of the tenant account, and <strong>&lt;uid&gt;</strong> is the ID of the deployment. </p>



<p class="wp-block-paragraph"><strong>&lt;server_number&gt;</strong> is the optional number of the Solr server within the deployment (usually 4 or 5). If unstated, the method addresses all Solr servers.</p>



<p class="wp-block-paragraph"><strong>&lt;page_number&gt;</strong> is the optional page of the results list. Default is 1.  </p>



<p class="wp-block-paragraph">This method uses <a href="/docs/searchstax-cloud-authentication-api/#token/">Token</a> authentication.</p>



<p class="wp-block-paragraph">There is no request body.</p>



<p class="wp-block-paragraph">When invoked from Linux (Bash script):</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#24292e;display:none" aria-label="Copy" class="code-block-pro-copy-button"><textarea class="code-block-pro-copy-button-textarea" aria-hidden="true" readonly>curl &#8211;request GET &#8220;https://app.searchstax.com/api/rest/v2/account/&lt;account_name>/deployment/&lt;uid>/solr/custom-jars/?server_sn=&lt;server-number>&amp;page=&lt;page_number>&#8221; 
  &#8211;header &#8220;Authorization: Token &lt;token>&#8221;
</textarea><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-light" style="background-color: #fff" tabindex="0"><code><span class="line"><span style="color: #6F42C1">curl</span><span style="color: #24292E"> </span><span style="color: #005CC5">--request</span><span style="color: #24292E"> </span><span style="color: #032F62">GET</span><span style="color: #24292E"> </span><span style="color: #032F62">&quot;https://app.searchstax.com/api/rest/v2/account/&lt;account_name&gt;/deployment/&lt;uid&gt;/solr/custom-jars/?server_sn=&lt;server-number&gt;&amp;page=&lt;page_number&gt;&quot;</span><span style="color: #24292E"> </span></span>
<span class="line"><span style="color: #24292E">  </span><span style="color: #6F42C1">--header</span><span style="color: #24292E"> </span><span style="color: #032F62">&quot;Authorization: Token &lt;token&gt;&quot;</span></span>
<span class="line"></span></code></pre></div>



<p class="wp-block-paragraph">When invoked from Windows (<a href="https://github.com/searchstax/searchstax-client-powershell/blob/a19664c452f67793132dd2b85f307c2b750039a5/restapi/accountdeploymentsolrcustomjarslist.ps1" target="_blank" rel="noreferrer noopener">PowerShell script</a>):</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#24292e;display:none" aria-label="Copy" class="code-block-pro-copy-button"><textarea class="code-block-pro-copy-button-textarea" aria-hidden="true" readonly>$ACCOUNT = &#8220;AccountName&#8221;
$uid = &#8220;ss123456&#8221;
$SID = &#8220;4&#8221;
$PAGE = &#8220;1&#8221;
$RESULT = Invoke-RestMethod -Method Get -Headers $headers `
         -uri &#8220;https://app.searchstax.com/api/rest/v2/account/$ACCOUNT/deployment/$uid/solr/custom-jars/?server_sn=$SID&amp;page=$PAGE&#8221; 
$RESULT = $RESULT | ConvertTo-Json
</textarea><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-light" style="background-color: #fff" tabindex="0"><code><span class="line"><span style="color: #24292E">$ACCOUNT </span><span style="color: #D73A49">=</span><span style="color: #24292E"> </span><span style="color: #032F62">&quot;AccountName&quot;</span></span>
<span class="line"><span style="color: #24292E">$uid </span><span style="color: #D73A49">=</span><span style="color: #24292E"> </span><span style="color: #032F62">&quot;ss123456&quot;</span></span>
<span class="line"><span style="color: #24292E">$SID </span><span style="color: #D73A49">=</span><span style="color: #24292E"> </span><span style="color: #032F62">&quot;4&quot;</span></span>
<span class="line"><span style="color: #24292E">$PAGE </span><span style="color: #D73A49">=</span><span style="color: #24292E"> </span><span style="color: #032F62">&quot;1&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #24292E">$RESULT </span><span style="color: #D73A49">=</span><span style="color: #24292E"> </span><span style="color: #005CC5">Invoke-RestMethod</span><span style="color: #24292E"> </span><span style="color: #D73A49">-</span><span style="color: #24292E">Method Get </span><span style="color: #D73A49">-</span><span style="color: #24292E">Headers $headers </span><span style="color: #D73A49">`</span></span>
<span class="line"><span style="color: #24292E">         </span><span style="color: #D73A49">-</span><span style="color: #24292E">uri </span><span style="color: #032F62">&quot;https://app.searchstax.com/api/rest/v2/account/</span><span style="color: #24292E">$ACCOUNT</span><span style="color: #032F62">/deployment/</span><span style="color: #24292E">$uid</span><span style="color: #032F62">/solr/custom-jars/?server_sn=</span><span style="color: #24292E">$SID</span><span style="color: #032F62">&amp;page=</span><span style="color: #24292E">$PAGE</span><span style="color: #032F62">&quot;</span><span style="color: #24292E"> </span></span>
<span class="line"></span>
<span class="line"><span style="color: #24292E">$RESULT </span><span style="color: #D73A49">=</span><span style="color: #24292E"> $RESULT </span><span style="color: #D73A49">|</span><span style="color: #24292E"> </span><span style="color: #005CC5">ConvertTo-Json</span></span>
<span class="line"></span></code></pre></div>



<p class="wp-block-paragraph">The response is a list of JSON documents identifying the deployment and its current set of JAR files:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#24292e;display:none" aria-label="Copy" class="code-block-pro-copy-button"><textarea class="code-block-pro-copy-button-textarea" aria-hidden="true" readonly>[
  {
    &#8220;server_sn&#8221;: 4,
    &#8220;jars&#8221;: []
  },
  {
    &#8220;server_sn&#8221;: 5,
    &#8220;jars&#8221;: [
      &#8220;jarfile.jar&#8221;
    ]
  }
]
</textarea><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-light" style="background-color: #fff" tabindex="0"><code><span class="line"><span style="color: #24292E">[</span></span>
<span class="line"><span style="color: #24292E">  {</span></span>
<span class="line"><span style="color: #24292E">    </span><span style="color: #005CC5">&quot;server_sn&quot;</span><span style="color: #24292E">: </span><span style="color: #005CC5">4</span><span style="color: #24292E">,</span></span>
<span class="line"><span style="color: #24292E">    </span><span style="color: #005CC5">&quot;jars&quot;</span><span style="color: #24292E">: []</span></span>
<span class="line"><span style="color: #24292E">  },</span></span>
<span class="line"><span style="color: #24292E">  {</span></span>
<span class="line"><span style="color: #24292E">    </span><span style="color: #005CC5">&quot;server_sn&quot;</span><span style="color: #24292E">: </span><span style="color: #005CC5">5</span><span style="color: #24292E">,</span></span>
<span class="line"><span style="color: #24292E">    </span><span style="color: #005CC5">&quot;jars&quot;</span><span style="color: #24292E">: [</span></span>
<span class="line"><span style="color: #24292E">      </span><span style="color: #032F62">&quot;jarfile.jar&quot;</span></span>
<span class="line"><span style="color: #24292E">    ]</span></span>
<span class="line"><span style="color: #24292E">  }</span></span>
<span class="line"><span style="color: #24292E">]</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"></span></code></pre></div>



<h3 id="createjar" class="wp-block-heading">account &gt; deployment &gt; solr &gt; custom-jars &gt; create</h3>



<p class="wp-block-paragraph">This method uploads a custom JAR file to a deployment or a server. If the JAR already exists, it will be replaced.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#24292e;display:none" aria-label="Copy" class="code-block-pro-copy-button"><textarea class="code-block-pro-copy-button-textarea" aria-hidden="true" readonly>POST https://app.searchstax.com/api/rest/v2/account/&lt;account_name>/deployment/&lt;uid>/solr/custom-jars/?server_sn=&lt;server_number>
</textarea><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-light" style="background-color: #fff" tabindex="0"><code><span class="line"><span style="color: #D73A49">POST</span><span style="color: #24292E"> https://app.searchstax.com/api/rest/v2/account/&lt;account_name&gt;/deployment/&lt;uid&gt;/solr/custom-jars/?server_sn=&lt;server_number&gt;</span></span>
<span class="line"></span></code></pre></div>



<p class="wp-block-paragraph">where <strong>&lt;account_name&gt;</strong> is the name of the tenant account, <strong>&lt;uid&gt;</strong> is the ID of the deployment, and <strong>&lt;server_number&gt;</strong> is the optional number of the Solr server within the deployment (usually 4 or 5). If unspecified, the method will address all Solr servers. </p>



<p class="wp-block-paragraph">This method uses <a href="/docs/searchstax-cloud-authentication-api/#token/">Token</a> authentication.</p>



<p class="wp-block-paragraph">The request body should be a &#8220;multipart/form-data&#8221; encoded object, containing the following items:</p>



<figure class="wp-block-table table table-bordered table-striped"><table><thead><tr><th><strong>Parameter</strong></th><th><strong>Description</strong></th><th><strong>Example</strong></th></tr></thead><tbody><tr><td><strong>file</strong><br><mark style="background-color:rgba(0, 0, 0, 0);color:#ff0000" class="has-inline-color">required</mark><br>string<br></td><td>Path to load JAR file.</td><td>&#8220;file=@jarfile.jar&#8221;</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">When invoked from Linux (Bash script):</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#24292e;display:none" aria-label="Copy" class="code-block-pro-copy-button"><textarea class="code-block-pro-copy-button-textarea" aria-hidden="true" readonly>curl -i -X POST -H &#8220;Authorization: Token &lt;Token>&#8221; -H &#8220;Content-Type: multipart/form-data&#8221; -F &#8220;file=@jarfile.jar&#8221; https://staging.searchstax.com/api/rest/v2/account/staging/deployment/ss123456/solr/custom-jars/
</textarea><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-light" style="background-color: #fff" tabindex="0"><code><span class="line"><span style="color: #6F42C1">curl</span><span style="color: #24292E"> </span><span style="color: #005CC5">-i</span><span style="color: #24292E"> </span><span style="color: #005CC5">-X</span><span style="color: #24292E"> </span><span style="color: #032F62">POST</span><span style="color: #24292E"> </span><span style="color: #005CC5">-H</span><span style="color: #24292E"> </span><span style="color: #032F62">&quot;Authorization: Token &lt;Token&gt;&quot;</span><span style="color: #24292E"> </span><span style="color: #005CC5">-H</span><span style="color: #24292E"> </span><span style="color: #032F62">&quot;Content-Type: multipart/form-data&quot;</span><span style="color: #24292E"> </span><span style="color: #005CC5">-F</span><span style="color: #24292E"> </span><span style="color: #032F62">&quot;file=@jarfile.jar&quot;</span><span style="color: #24292E"> </span><span style="color: #032F62">https://staging.searchstax.com/api/rest/v2/account/staging/deployment/ss123456/solr/custom-jars/</span></span>
<span class="line"></span></code></pre></div>



<p class="wp-block-paragraph">When invoked from Windows (<a href="https://github.com/searchstax/searchstax-client-powershell/blob/a19664c452f67793132dd2b85f307c2b750039a5/restapi/accountdeploymentsolrcustomjarscreate.ps1" target="_blank" rel="noreferrer noopener">PowerShell script</a>), use a version of PowerShell that supports <strong>multipart-form data</strong>, such as <a href="https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.1" target="_blank" rel="noreferrer noopener">Powershell 7.0+</a>. To determine what version of PowerShell you are running, evaluate <strong>$PSVersionTable.PSVersion</strong>.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#24292e;display:none" aria-label="Copy" class="code-block-pro-copy-button"><textarea class="code-block-pro-copy-button-textarea" aria-hidden="true" readonly>$ACCOUNT = &#8220;AccountName&#8221;
$uid = &#8220;ss123456&#8221;
$SID = &#8220;4&#8221;
$form = @{
    file = Get-Item -Path &#8216;$JARFILE&#8217;
}
# Assuming the JAR file is in the same directory as this script. 
$RESULTS = Invoke-RestMethod -Method Post -Form $form -Headers $headers `
          -uri &#8220;https://app.searchstax.com/api/rest/v2/account/$ACCOUNT/deployment/$uid/solr/custom-jars/&#8221; 
$RESULTS = $RESULTS | ConvertTo-Json
Write-Host $RESULTS
</textarea><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-light" style="background-color: #fff" tabindex="0"><code><span class="line"><span style="color: #24292E">$ACCOUNT </span><span style="color: #D73A49">=</span><span style="color: #24292E"> </span><span style="color: #032F62">&quot;AccountName&quot;</span></span>
<span class="line"><span style="color: #24292E">$uid </span><span style="color: #D73A49">=</span><span style="color: #24292E"> </span><span style="color: #032F62">&quot;ss123456&quot;</span></span>
<span class="line"><span style="color: #24292E">$SID </span><span style="color: #D73A49">=</span><span style="color: #24292E"> </span><span style="color: #032F62">&quot;4&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #24292E">$form </span><span style="color: #D73A49">=</span><span style="color: #24292E"> </span><span style="color: #D73A49">@</span><span style="color: #24292E">{</span></span>
<span class="line"><span style="color: #24292E">    file </span><span style="color: #D73A49">=</span><span style="color: #24292E"> </span><span style="color: #005CC5">Get-Item</span><span style="color: #24292E"> </span><span style="color: #D73A49">-</span><span style="color: #24292E">Path </span><span style="color: #032F62">&#39;$JARFILE&#39;</span></span>
<span class="line"><span style="color: #24292E">}</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A737D"># Assuming the JAR file is in the same directory as this script. </span></span>
<span class="line"></span>
<span class="line"><span style="color: #24292E">$RESULTS </span><span style="color: #D73A49">=</span><span style="color: #24292E"> </span><span style="color: #005CC5">Invoke-RestMethod</span><span style="color: #24292E"> </span><span style="color: #D73A49">-</span><span style="color: #24292E">Method Post </span><span style="color: #D73A49">-</span><span style="color: #24292E">Form $form </span><span style="color: #D73A49">-</span><span style="color: #24292E">Headers $headers </span><span style="color: #D73A49">`</span></span>
<span class="line"><span style="color: #24292E">          </span><span style="color: #D73A49">-</span><span style="color: #24292E">uri </span><span style="color: #032F62">&quot;https://app.searchstax.com/api/rest/v2/account/</span><span style="color: #24292E">$ACCOUNT</span><span style="color: #032F62">/deployment/</span><span style="color: #24292E">$uid</span><span style="color: #032F62">/solr/custom-jars/&quot;</span><span style="color: #24292E"> </span></span>
<span class="line"><span style="color: #24292E">$RESULTS </span><span style="color: #D73A49">=</span><span style="color: #24292E"> $RESULTS </span><span style="color: #D73A49">|</span><span style="color: #24292E"> </span><span style="color: #005CC5">ConvertTo-Json</span></span>
<span class="line"></span>
<span class="line"><span style="color: #005CC5">Write-Host</span><span style="color: #24292E"> $RESULTS</span></span>
<span class="line"></span>
<span class="line"></span></code></pre></div>



<p class="wp-block-paragraph">The response is a list of JSON documents identifying the deployment and its current set of JAR files: </p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#24292e;display:none" aria-label="Copy" class="code-block-pro-copy-button"><textarea class="code-block-pro-copy-button-textarea" aria-hidden="true" readonly>[
  {
    &#8220;server_sn&#8221;: 4,
    &#8220;jars&#8221;: [
      &#8220;jarfile.jar&#8221;
    ]
  },
  {
    &#8220;server_sn&#8221;: 5,
    &#8220;jars&#8221;: [
      &#8220;jarfile.jar&#8221;
    ]
  }
]
</textarea><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-light" style="background-color: #fff" tabindex="0"><code><span class="line"><span style="color: #24292E">[</span></span>
<span class="line"><span style="color: #24292E">  {</span></span>
<span class="line"><span style="color: #24292E">    </span><span style="color: #005CC5">&quot;server_sn&quot;</span><span style="color: #24292E">: </span><span style="color: #005CC5">4</span><span style="color: #24292E">,</span></span>
<span class="line"><span style="color: #24292E">    </span><span style="color: #005CC5">&quot;jars&quot;</span><span style="color: #24292E">: [</span></span>
<span class="line"><span style="color: #24292E">      </span><span style="color: #032F62">&quot;jarfile.jar&quot;</span></span>
<span class="line"><span style="color: #24292E">    ]</span></span>
<span class="line"><span style="color: #24292E">  },</span></span>
<span class="line"><span style="color: #24292E">  {</span></span>
<span class="line"><span style="color: #24292E">    </span><span style="color: #005CC5">&quot;server_sn&quot;</span><span style="color: #24292E">: </span><span style="color: #005CC5">5</span><span style="color: #24292E">,</span></span>
<span class="line"><span style="color: #24292E">    </span><span style="color: #005CC5">&quot;jars&quot;</span><span style="color: #24292E">: [</span></span>
<span class="line"><span style="color: #24292E">      </span><span style="color: #032F62">&quot;jarfile.jar&quot;</span></span>
<span class="line"><span style="color: #24292E">    ]</span></span>
<span class="line"><span style="color: #24292E">  }</span></span>
<span class="line"><span style="color: #24292E">]</span></span>
<span class="line"></span>
<span class="line"></span></code></pre></div>



<h3 id="deletejar" class="wp-block-heading">account &gt; deployment &gt; solr &gt; custom-jars &gt; delete</h3>



<p class="wp-block-paragraph">This method deletes a JAR from a deployment or a server.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#24292e;display:none" aria-label="Copy" class="code-block-pro-copy-button"><textarea class="code-block-pro-copy-button-textarea" aria-hidden="true" readonly>DELETE https://app.searchstax.com/api/rest/v2/account/&lt;account_name>/deployment/&lt;uid>/solr/custom-jars/&lt;jar-name>/?server_sn=&lt;server_number>
</textarea><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-light" style="background-color: #fff" tabindex="0"><code><span class="line"><span style="color: #D73A49">DELETE</span><span style="color: #24292E"> https://app.searchstax.com/api/rest/v2/account/&lt;account_name&gt;/deployment/&lt;uid&gt;/solr/custom-jars/&lt;jar-name&gt;/?server_sn=&lt;server_number&gt;</span></span>
<span class="line"></span></code></pre></div>



<p class="wp-block-paragraph">where <strong>&lt;account_name&gt;</strong> is the name of the tenant account, <strong>&lt;uid&gt;</strong> is the ID of the deployment, <strong>&lt;jar-name&gt;</strong> is the name of the JAR file, and <strong>&lt;server_number&gt;</strong> is the optional number of the Solr server within the deployment (usually 4 or 5). If not specified, the method addresses all Solr servers. </p>



<p class="wp-block-paragraph">This method uses <a href="/docs/searchstax-cloud-authentication-api/#token/">Token</a> authentication.</p>



<p class="wp-block-paragraph">There is no request body. </p>



<p class="wp-block-paragraph">When invoked from Linux (Bash script):</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#24292e;display:none" aria-label="Copy" class="code-block-pro-copy-button"><textarea class="code-block-pro-copy-button-textarea" aria-hidden="true" readonly>curl &#8211;request DELETE &#8220;https://app.searchstax.com/api/rest/v2/account/&lt;account_name>/deployment/&lt;uid>/solr/custom-jars/&lt;jar-name>/?server_sn=&lt;server_number>&#8221; 
  &#8211;header &#8220;Authorization: Token &lt;token>&#8221; 
}&#8221;
</textarea><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-light" style="background-color: #fff" tabindex="0"><code><span class="line"><span style="color: #6F42C1">curl</span><span style="color: #24292E"> </span><span style="color: #005CC5">--request</span><span style="color: #24292E"> </span><span style="color: #032F62">DELETE</span><span style="color: #24292E"> </span><span style="color: #032F62">&quot;https://app.searchstax.com/api/rest/v2/account/&lt;account_name&gt;/deployment/&lt;uid&gt;/solr/custom-jars/&lt;jar-name&gt;/?server_sn=&lt;server_number&gt;&quot;</span><span style="color: #24292E"> </span></span>
<span class="line"><span style="color: #24292E">  </span><span style="color: #6F42C1">--header</span><span style="color: #24292E"> </span><span style="color: #032F62">&quot;Authorization: Token &lt;token&gt;&quot;</span><span style="color: #24292E"> </span></span>
<span class="line"><span style="color: #24292E">}&quot;</span></span>
<span class="line"></span></code></pre></div>



<p class="wp-block-paragraph">When invoked from Windows (<a href="https://github.com/searchstax/searchstax-client-powershell/blob/a19664c452f67793132dd2b85f307c2b750039a5/restapi/accountdeploymentsolrcustomjarsdelete.ps1" target="_blank" rel="noreferrer noopener">PowerShell script</a>):</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#24292e;display:none" aria-label="Copy" class="code-block-pro-copy-button"><textarea class="code-block-pro-copy-button-textarea" aria-hidden="true" readonly>$ACCOUNT = &#8220;AccountName&#8221;
$uid = &#8220;ss123456&#8221;
$sid = &#8220;4&#8221;
$RESULT = Invoke-RestMethod -Method DELETE `
         -Headers $headers `
         -uri &#8220;https://app.searchstax.com/api/rest/v2/account/$ACCOUNT/deployment/$uid/solr/custom-jars/&lt;jar-name>/?server_sn=$sid&#8221; 
$RESULT = $RESULT | ConvertTo-Json
</textarea><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-light" style="background-color: #fff" tabindex="0"><code><span class="line"><span style="color: #24292E">$ACCOUNT </span><span style="color: #D73A49">=</span><span style="color: #24292E"> </span><span style="color: #032F62">&quot;AccountName&quot;</span></span>
<span class="line"><span style="color: #24292E">$uid </span><span style="color: #D73A49">=</span><span style="color: #24292E"> </span><span style="color: #032F62">&quot;ss123456&quot;</span></span>
<span class="line"><span style="color: #24292E">$sid </span><span style="color: #D73A49">=</span><span style="color: #24292E"> </span><span style="color: #032F62">&quot;4&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #24292E">$RESULT </span><span style="color: #D73A49">=</span><span style="color: #24292E"> </span><span style="color: #005CC5">Invoke-RestMethod</span><span style="color: #24292E"> </span><span style="color: #D73A49">-</span><span style="color: #24292E">Method DELETE </span><span style="color: #D73A49">`</span></span>
<span class="line"><span style="color: #24292E">         </span><span style="color: #D73A49">-</span><span style="color: #24292E">Headers $headers </span><span style="color: #D73A49">`</span></span>
<span class="line"><span style="color: #24292E">         </span><span style="color: #D73A49">-</span><span style="color: #24292E">uri </span><span style="color: #032F62">&quot;https://app.searchstax.com/api/rest/v2/account/</span><span style="color: #24292E">$ACCOUNT</span><span style="color: #032F62">/deployment/</span><span style="color: #24292E">$uid</span><span style="color: #032F62">/solr/custom-jars/&lt;jar-name&gt;/?server_sn=</span><span style="color: #24292E">$sid</span><span style="color: #032F62">&quot;</span><span style="color: #24292E"> </span></span>
<span class="line"></span>
<span class="line"><span style="color: #24292E">$RESULT </span><span style="color: #D73A49">=</span><span style="color: #24292E"> $RESULT </span><span style="color: #D73A49">|</span><span style="color: #24292E"> </span><span style="color: #005CC5">ConvertTo-Json</span></span>
<span class="line"></span></code></pre></div>



<p class="wp-block-paragraph">The response is a JSON document confirming the deletion:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#24292e;display:none" aria-label="Copy" class="code-block-pro-copy-button"><textarea class="code-block-pro-copy-button-textarea" aria-hidden="true" readonly>{
  &#8220;success&#8221;: &#8220;true&#8221;
}
</textarea><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-light" style="background-color: #fff" tabindex="0"><code><span class="line"><span style="color: #24292E">{</span></span>
<span class="line"><span style="color: #24292E">  </span><span style="color: #005CC5">&quot;success&quot;</span><span style="color: #24292E">: </span><span style="color: #032F62">&quot;true&quot;</span></span>
<span class="line"><span style="color: #24292E">}</span></span>
<span class="line"></span></code></pre></div>



<h2 id="questions" class="wp-block-heading">Questions?</h2>



<p class="wp-block-paragraph">Do not hesitate to contact the <a href="mailto:support@searchstax.com?subject=SearchStax%20Cloud%20API%20–%20Custom%20JARs" target="_blank" rel="noreferrer noopener">SearchStax Support Desk</a>.</p>
<p>The post <a href="https://www.searchstax.com/docs/searchstax-cloud-custom-jars-api/">Solr Custom JARs API</a> appeared first on <a href="https://www.searchstax.com/docs">SearchStax Docs</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.searchstax.com/docs/searchstax-cloud-custom-jars-api/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Adding Custom JARs</title>
		<link>https://www.searchstax.com/docs/searchstax-cloud-custom-jar-files/</link>
					<comments>https://www.searchstax.com/docs/searchstax-cloud-custom-jar-files/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 03 Mar 2021 09:18:25 +0000</pubDate>
				<category><![CDATA[Extensions and Packages APIs]]></category>
		<guid isPermaLink="false">https://www.searchstax.com/docs/?p=7326</guid>

					<description><![CDATA[<p>Custom JAR Files for Managed Search SearchStax Managed Search service deployments support custom JAR files. This lets us add custom analyzers, tokenizers, query parsers, and other plugins to Solr deployments.&#8230; <a class="more-link" href="https://www.searchstax.com/docs/searchstax-cloud-custom-jar-files/">Continue reading <span class="screen-reader-text">Adding Custom JARs</span></a></p>
<p>The post <a href="https://www.searchstax.com/docs/searchstax-cloud-custom-jar-files/">Adding Custom JARs</a> appeared first on <a href="https://www.searchstax.com/docs">SearchStax Docs</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading" id="h-custom-jar-files-for-managed-search">Custom JAR Files for Managed Search</h1>



<hr class="wp-block-separator has-css-opacity"/>



<p class="wp-block-paragraph">SearchStax Managed Search service deployments support custom JAR files. This lets us add custom analyzers, tokenizers, query parsers, and other plugins to Solr deployments.</p>



<div class="alert alert-info">
<h3>Premium Customers Only</h3>
<p>Due to security issues, this Managed Search feature is restricted to Premium Customers only (Core, Enterprise).</p>

</div>



<h2 class="wp-block-heading" id="send-us-the-jar-files">JAR File API</h2>



<p class="wp-block-paragraph">Premium clients have access to our special <a href="/docs/searchstax-cloud-custom-jars-api/">Custom Jars API</a>.</p>



<h2 class="wp-block-heading" id="jar-file-location">JAR File Location</h2>



<p class="wp-block-paragraph">To use custom JAR files, you must modify your <strong>solrconfig.xml</strong> file to add the files to the Solr classpath:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#24292e;display:none" aria-label="Copy" class="code-block-pro-copy-button"><textarea class="code-block-pro-copy-button-textarea" aria-hidden="true" readonly>&lt;lib dir=&#8221;${solr.install.dir:../../../..}/server/solr-webapp/webapp/WEB-INF/lib/custom-jars/&#8221; regex=&#8221;.*\.jar&#8221; />
</textarea><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki github-light" style="background-color: #fff" tabindex="0"><code><span class="line"><span style="color: #24292e">&lt;lib dir=&quot;${solr.install.dir:../../../..}/server/solr-webapp/webapp/WEB-INF/lib/custom-jars/&quot; regex=&quot;.*\.jar&quot; /&gt;</span></span>
<span class="line"><span style="color: #24292e"></span></span></code></pre></div>



<h2 class="wp-block-heading" id="h-restart-required">Restart Required</h2>



<p class="wp-block-paragraph">After uploading a custom Jar, you must perform a <a href="https://www.searchstax.com/docs/hc/start-stop-searchstax-solr/">Rolling Restart</a> of the deployment. The API does not automatically restart the Solr nodes.</p>



<h2 class="wp-block-heading" id="integration-with-backuprestore">Integration with Backup/Restore</h2>



<p class="wp-block-paragraph">The JAR file directory in Solr is included in the <a href="/docs/searchstax-cloud-solr-backups/">Backup/Restore</a> process.</p>



<h2 class="wp-block-heading">Integration with Adding Nodes to Clusters</h2>



<p class="wp-block-paragraph">When you <a href="https://www.searchstax.com/docs/hc/scale-solr-cluster/">add a new node to a cluster</a>, Managed Search will automatically copy your JAR files to the new node.</p>



<h2 class="wp-block-heading" id="contact-us">Contact Us!</h2>



<p class="wp-block-paragraph">Do not hesitate to contact the <a href="mailto:support@searchstax.com?subject=Custom%20JAR%20Files%20for%20SearchStax%20Cloud" target="_blank" rel="noreferrer noopener">SearchStax Support Desk</a> for additional information.</p>
<p>The post <a href="https://www.searchstax.com/docs/searchstax-cloud-custom-jar-files/">Adding Custom JARs</a> appeared first on <a href="https://www.searchstax.com/docs">SearchStax Docs</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.searchstax.com/docs/searchstax-cloud-custom-jar-files/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
