POST /api/system/tenants/{tenant}/apps/validate

As of Versionproduct version 2021 Summer | component version 2021 Summer
Request MethodPOST
Response FormatJSON
Required Permission

available if listed in authorization.accesses in authentication-prod.yml and the specified access condition is matched.

>> AUTHENTICATION Service
Description

Validates the app set for the specified tenant.

The request body contains the XML configuration to be validated as app set for the tenant.

The validation of the app set considers dependencies between different app and tenant schemata via property references or secondary object type references. If the schema of an app is referenced by the global or the corresponding tenant schema, the app cannot be disabled for the specified tenant. For instance if the app invoice depends on the app client, it is not possible to enable invoice and disable client.

There is no validation for the existence of apps with the specified names.

Request HeadersContent-Type: application/xml
Request Example

XML configuration in the response body.

<?xml version="1.0" encoding="utf-8"?>
<apps xmlns="http://optimal-systems.org/ns/yuuvis/apps/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://optimal-systems.org/ns/yuuvis/apps/ yuuvis-core-apps.xsd">
    <app>
        <name>clientsystem</name>
        <state>enabled</state>
    </app>
    <app>
        <name>client</name>
        <state>enabled</state>
    </app>
    <app>
        <name>email</name>
        <state>disabled</state>
    </app>
    <app>
        <name>acl</name>
        <state>disabled</state>
    </app>
</apps>
Response Example

(1) Successful update: The result is a JSON structure containing a validationErrors list, which could be an empty list.

200 – no validation errors, the role set has been updated
{
    "validationErrors": []
}

(2) Unsuccessful: Example error message.

422 – validation errors, the role set has not been updated
{
    "validationErrors": [
        {
            "message": "Unable to disable app 'client' and enable app 'invoice'. There are references from the schema of app 'invoice' to the schema of app 'client'."
        }
    ]
}