Soap Module

NB: Soap module does not support the GET requests to services.

This is partly due to the fact that a SOAP request is transmitted in the request body, while a GET request does not have a body (so to speak). For this reason, you need to send a POST request. This can be done using the SOAP-UI utility (it is also possible in a browser, but in the request body you need to write a SOAP request, which is based on WSDL and is quite cumbersome).

Crud service data structure settings

The `` types option contains a mapping specified in the form of a mapping between the class (full name) and the map of the published attributes of this class. In map, the key is the attribute name, and the value is either a string alias or a Boolean value indicating whether the attribute is included in the schema or not, i.e., if an alias is specified, the attribute appears in the schema under this alias, in all other cases, except for specifying ``false, the attribute appears under its own name.

The setting is used when parsing classes when forming a service data schema, as well as when parsing incoming messages and generating responses. By replacing normalize with a function that correctly converts the data to the schema.

For collections and references

If the values of collections and links also need to be parsed somehow differently, the objects that are in these properties can also be described by a map in deploy.json according to this principle:

"название_свойства": {
  "name": "новое_название(если нужно, поле необязательное)",
 "types": {
 //описания свойств
 }
}

Example

"petitionExperts": {
          "module": "modules/soap/service/crud",
          "options": {
            "dataRepo": "ion://dataRepo",
            "metaRepo": "ion://metaRepo",
            "keyProvider": "ion://keyProvider",
            "namespace": "khv-gosekspertiza",
            "className": "petitionExpert",
            "types": {
              "petitionExperts@khv-gosekspertiza":{
                "property1":"new_property_name",
                "property2":true
                }
              }
            }
          }

The setting for removing system attributes from a request

let gosEkspRemPetNew = normalize(e.item, null, {skipSystemAttrs: true});

Oauth2 token authentication in the SOAP module

Login-password and login-token authentication is applied by default for all services. Add the WSSecurity security header to the message to authenticate soap requests. To authenticate REST services, add standard HTTP authentication headers.

Set the type of verification - by password or token (pwd/token) in deploy.json file by setting the authMode in the corresponding module:

Example

"soap": {
      "globals": {
        "authMode": {
          "petitionExperts": "none",
          "petitionEstimated": "none",
          "gosEkspContract": "none",
          "bankAccounts": "none",
          "resolution": "none"
        }

By default, all services are authenticated by passwords. The admin panel has a special form to generate a user token. Configure the authMode for the service in token, go to the admin panel, generate a token and use it instead of the password in the headers.