Skip to content

SetGeneralAppSettings API

Updates the global General Application Settings by sending a serialized GeneralSettings object. Use this API when you need to modify upload limits, recycle bin policies, workdays/holidays, or other platform-wide configuration options in a single atomic operation.

Endpoint

/srv.asmx/SetGeneralAppSettings

Methods

  • GET /srv.asmx/SetGeneralAppSettings?authenticationTicket=...&settingsXml=...
  • POST /srv.asmx/SetGeneralAppSettings (form data)
  • SOAP Action: http://tempuri.org/SetGeneralAppSettings

The settingsXml value must contain the GeneralSettings XML. Always URL-encode the XML when calling the GET endpoint.

Parameters

Parameter Type Required Description
authenticationTicket string Yes Ticket returned by AuthenticateUser. The caller must have permission to update application settings.
settingsXml string Yes XML representation of the GeneralSettings object. Obtain the current structure via GetGeneralAppSettings, update the desired values, then submit the modified XML here.

Response

Success

<root success="true" />

Error

<root success="false" error="[2730]Insufficient rights. Anonymous users cannot perform this action" />

Typical errors: - [2730] when the user is not authenticated or lacks admin rights - Invalid settings XML format when the payload cannot be deserialized - The message returned by UpdateGeneralApplicationSettings (for validation failures)

Required Permissions

  • UpdateApplicationSettingsAndPolicies admin permission (can be verified in Control Panel ? System Administration ? Security Policies)
  • Only authenticated administrators can invoke this method

Example (REST POST)

POST /srv.asmx/SetGeneralAppSettings HTTP/1.1
Content-Type: application/x-www-form-urlencoded

authenticationTicket=6F9C2A...&
settingsXml=%3CGeneralSettings%3E...%3C%2FGeneralSettings%3E

SOAP Request

POST /srv.asmx HTTP/1.1
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://tempuri.org/SetGeneralAppSettings"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <SetGeneralAppSettings xmlns="http://tempuri.org/">
      <authenticationTicket>6F9C2A...</authenticationTicket>
      <settingsXml><![CDATA[
        <GeneralSettings>
          <UploadSettings>
            <DocumentMaxSize>524288000</DocumentMaxSize>
            <FileUploadTimeOut>900</FileUploadTimeOut>
            <DefaultUploadFileChunkSize>8388608</DefaultUploadFileChunkSize>
          </UploadSettings>
          <AllowOwnershipTransfer>true</AllowOwnershipTransfer>
          <WebDav>false</WebDav>
          <DisplayAddIns>true</DisplayAddIns>
          <SearchPageSize>50</SearchPageSize>
          <SystemRecycleBinAutoPurgeOption>6</SystemRecycleBinAutoPurgeOption>
          <MoveUsersRecycleBinToSystemRecycleBinIn>3</MoveUsersRecycleBinToSystemRecycleBinIn>
          <RerouteRedirections>false</RerouteRedirections>
          <MinYearInDateControls>1950</MinYearInDateControls>
          <SendDiagnosticsAndStatistics>true</SendDiagnosticsAndStatistics>
          <Workdays>
            <Monday>true</Monday>
            <Tuesday>true</Tuesday>
            <Wednesday>true</Wednesday>
            <Thursday>true</Thursday>
            <Friday>true</Friday>
            <Saturday>false</Saturday>
            <Sunday>false</Sunday>
            <StartHour>8</StartHour>
            <StartMinute>0</StartMinute>
            <EndHour>18</EndHour>
            <EndMinute>0</EndMinute>
          </Workdays>
          <HolidayList>
            <Holiday>
              <HolidayDate>2000-01-01T00:00:00</HolidayDate>
              <Description>New Year (recurring every Jan 1)</Description>
            </Holiday>
            <Holiday>
              <HolidayDate>2000-12-25T00:00:00</HolidayDate>
              <Description>Christmas Day (recurring every Dec 25)</Description>
            </Holiday>
            <Holiday>
              <HolidayDate>2025-07-04T00:00:00</HolidayDate>
              <Description>Independence Day (one-time, 2025 only)</Description>
            </Holiday>
          </HolidayList>
          <ZipDownloadSetting>
            <Enabled>true</Enabled>
            <MaxTotalSize>209715200</MaxTotalSize>
            <MaxTotalCount>500</MaxTotalCount>
          </ZipDownloadSetting>
        </GeneralSettings>
      ]]></settingsXml>
    </SetGeneralAppSettings>
  </soap:Body>
</soap:Envelope>

Sample settingsXml Payload

<GeneralSettings>
  <UploadSettings>
    <DocumentMaxSize>524288000</DocumentMaxSize>
    <FileUploadTimeOut>900</FileUploadTimeOut>
    <DefaultUploadFileChunkSize>8388608</DefaultUploadFileChunkSize>
  </UploadSettings>
  <AllowOwnershipTransfer>true</AllowOwnershipTransfer>
  <WebDav>false</WebDav>
  <DisplayAddIns>true</DisplayAddIns>
  <SearchPageSize>20</SearchPageSize>
  <SystemRecycleBinAutoPurgeOption>6</SystemRecycleBinAutoPurgeOption>
  <MoveUsersRecycleBinToSystemRecycleBinIn>3</MoveUsersRecycleBinToSystemRecycleBinIn>
  <RerouteRedirections>false</RerouteRedirections>
  <MinYearInDateControls>1950</MinYearInDateControls>
  <SendDiagnosticsAndStatistics>true</SendDiagnosticsAndStatistics>
  <Workdays>
    <Monday>true</Monday>
    <Tuesday>true</Tuesday>
    <Wednesday>true</Wednesday>
    <Thursday>true</Thursday>
    <Friday>true</Friday>
    <Saturday>false</Saturday>
    <Sunday>false</Sunday>
    <StartHour>8</StartHour>
    <StartMinute>0</StartMinute>
    <EndHour>18</EndHour>
    <EndMinute>0</EndMinute>
  </Workdays>
  <HolidayList>
    <!-- Recurring holiday: year 2000 means every Jan 1st -->
    <Holiday>
      <HolidayDate>2000-01-01T00:00:00</HolidayDate>
      <Description>New Year</Description>
    </Holiday>
    <!-- One-time holiday: applies only on this exact date -->
    <Holiday>
      <HolidayDate>2025-07-04T00:00:00</HolidayDate>
      <Description>Independence Day</Description>
    </Holiday>
  </HolidayList>
  <ZipDownloadSetting>
    <Enabled>true</Enabled>
    <MaxTotalSize>209715200</MaxTotalSize>
    <MaxTotalCount>1000</MaxTotalCount>
  </ZipDownloadSetting>
</GeneralSettings>

Holiday Properties

Property Type Description
HolidayDate DateTime Date of the holiday in ISO 8601 format (e.g. 2025-07-04T00:00:00)
Description string Name or description of the holiday

Recurring vs One-Time Holidays

A holiday whose HolidayDate year is 2000 is treated as a recurring (annual) holiday — it applies on that month and day every year.
A holiday whose year is any other value is a one-time holiday that applies only on that exact date.

<!-- Recurring: applies every December 25th regardless of year -->
<Holiday>
  <HolidayDate>2000-12-25T00:00:00</HolidayDate>
  <Description>Christmas Day</Description>
</Holiday>

<!-- One-time: applies only on July 4, 2025 -->
<Holiday>
  <HolidayDate>2025-07-04T00:00:00</HolidayDate>
  <Description>Independence Day</Description>
</Holiday>

Important: The HolidayList element is required if you want to persist holidays. If you omit it, existing holiday definitions will be cleared.

Usage Guidelines

  1. Call GetGeneralAppSettings to retrieve the current settings.
  2. Modify only the values you need to change; keep the structure intact.
  3. Validate business rules before sending (e.g., document max size ≤ 1 GB). The two recycle bin values must be 0–36 months: the server refuses others with 4000, naming the setting (e.g. SystemRecycleBinAutoPurgeOption: Valid month range is 1 to 36; 0 = off is also accepted).
  4. Submit the updated XML via SetGeneralAppSettings.
  5. On success, settings are refreshed in memory automatically and take effect immediately.

JavaScript

Every call answers XML with HTTP 200, success or not, so success is the thing to branch on and errorCode is the number to report.

async function call(action, params) {
  const response = await fetch(`/srv.asmx/${action}?${new URLSearchParams(params)}`);
  const root = new DOMParser()
    .parseFromString(await response.text(), 'text/xml')
    .documentElement;

  if (root.getAttribute('success') !== 'true') {
    throw new Error(`${root.getAttribute('errorCode')}: ${root.getAttribute('error')}`);
  }
  return root;
}

Takes what GetGeneralAppSettings returns, as it stands - the reader already answers under <GeneralSettings>, which is what this deserializes against. Read, change what you mean to change, send the whole document back: anything left out goes back to its default rather than staying as it was.

const current = await call('GetGeneralAppSettings', { authenticationTicket: ticket });
const settings = current.querySelector('GeneralSettings');

// ... change what you mean to change ...

await call('SetGeneralAppSettings', {
  authenticationTicket: ticket,
  settingsXml: new XMLSerializer().serializeToString(settings)
});

Notes

  • The Description of a holiday takes 32 characters; a longer one is refused with 4000.
  • All numeric values are expressed in bytes unless the property name indicates minutes/hours.
  • infoRouter does not set a request-size limit of its own. A single-request (non-chunked) upload is limited by the host's request-size limit (Kestrel / IIS requestFiltering maxAllowedContentLength). Use chunked upload for large files.
  • Holidays are serialized through HolidayList (dictionary values are not serialized directly).
  • A HolidayDate with year 2000 marks a recurring annual holiday (matched by month/day only). Any other year marks a one-time holiday matched by exact date.
  • Failure responses always include a localized message in the error attribute.
  • Because this API overwrites the entire GeneralSettings object, avoid sending partial XML documents.
  • Audit and change tracking should be handled at the application level by storing copies of previous XML payloads.

Error Codes

The errorCode values this operation returns, checked against a running server:

errorCode When
4010 the ticket is expired or unknown
4030 a caller with no ticket, or one who may not update settings
4000 settingsXml is not well formed, or does not deserialize into the settings document
4000 SystemRecycleBinAutoPurgeOption or MoveUsersRecycleBinToSystemRecycleBinIn is outside 0–36; the error names the setting and nothing is saved