Loading TOC...

MarkLogic 9 Product Documentation
POST /manage/v2/servers

Summary

This resource address is used to create a new App Server in the specified group. For an example, see Preliminary Configuration Procedures in the Scripting Administrative Tasks Guide.

URL Parameters
group-id The id or name of the group to which the App Server belongs. The group must be specified by this parameter or by the group-name property in the request payload. If it is specified in both places, the values must be the same.
server-type The type of App Server to create. The App Server type must be specified by this parameter or in the request payload. If it is specified in both places, the values must be the same. The valid types are: http, odbc, xdbc, or webdav.
format The format of the posted data. Can be either html, json, or xml (default). This value overrides the Accept header if both are present.
Request Headers
Accept The expected MIME type of the request body. If the format? parameter is present, it takes precedence over the Accept header.
Content-type The MIME type of the data in the request body. Depending upon the value of the format parameter or Accept header, one of application/xml, application/json, or text/html.
Response Headers
Content-type The MIME type of the data in the response body. Depending upon the value of the format parameter or Accept header, one of application/xml, application/json, or text/html.
Location If the request causes a restart, a Location header is included in the reponse. The header contains a path with which to construct a URL to usable to test when the restart has completed.

Response

Upon success, MarkLogic Server returns status code 201 (Created) or 202 (restart), if the properties specified in the payload have a "cold" value that differs from the server default. If the server exists or if the payload is malformed, a status code of 400 (Bad Request) is returned. A status code of 401 (Unauthorized) is returned if the user does not have the necessary privileges.

Required Privileges

This operation requires the manage-admin role, or the following privilege:

http://marklogic.com/xdmp/privileges/manage-admin

Usage Notes

The structure of the data in the request payload for each type of App Server is as follows.

For each server, the name, root, port, and content-database properties are required. For HTTP, ODBC, and XDBC servers, if the modules-database is not specified (or is has an empty value), the server will use the filesystem for its modules database.

The configurations for the types of servers are detailed in the following sections.

HTTP Server Properties

XML root element:

<http-server-properties xmlns="http://marklogic.com/manage">

server-name

The server name.

server-type

The server type.

group-name

The group name.

enabled

Appserver enabled status.

root

For HTTP App Servers, the root document directory pathname. For XDBC and ODBC App Servers, the module directory.

port

The server socket bind internet port number.

webDAV

webDAV server versus HTTP server.

execute

True if server executes xquery modules.

modules-database

The database that contains application modules.

content-database

The database name.

last-login-database

The database that contains users' last login information.

display-last-login

Indicates whether an appserver should display users' last login information.

address

The server socket bind numeric internet address.

backlog

The socket listen backlog.

threads

The maximum number of server threads allowed on each host in the group.

request-timeout

The request socket recv timeout, in seconds.

keep-alive-timeout

The keep-alive socket recv timeout, in seconds.

session-timeout

The session expiration timeout, in seconds.

max-time-limit

The upper bound for a request's time limit, in seconds.

default-time-limit

The default time limit for a request, in seconds.

max-inference-size

The upper bound for a request's inference size, in megabytes.

default-inference-size

The default inference size for a request, in megabytes.

static-expires

Add an "expires" HTTP header for static content to expire after this many seconds.

pre-commit-trigger-depth

The maximum depth of pre-commit trigger invocation.

pre-commit-trigger-limit

The maximum number of triggers a single statement can invoke.

collation

The default collation for queries.

coordinate-system

The default coordinate system for queries.

authentication

The authentication scheme to use for this server

internal-security

Whether or not the security database is used for authentication and authorization.

external-security

External authentication and authorization configuration.

external-securities

External authentication and authorization configurations.

This is a complex structure with the following children:

external-security

External authentication and authorization configuration.

default-user

The user used as the default user in application level authentication. Using the admin user as the default user is equivalent to turning security off.

privilege

The privilege restricting access to the server.

concurrent-request-limit

The maximum number of concurrent requests per user.

compute-content-length

Compute content lengths for webDAV.

file-log-level

The minimum log level for log messages in the log file.

log-errors

Log uncaught request processing errors to ErrorLog.txt.

debug-allow

Allow debugging on this server.

profile-allow

Allow profiling on this server.

default-xquery-version

The default XQuery language version for this server.

multi-version-concurrency-control

Specifies concurrency control of read-only queries.

distribute-timestamps

Specifies the distribution of commit timestamps after updates.

output-sgml-character-entities

Output SGML character entities.

output-encoding

The default output encoding.

output-method

Output method.

output-byte-order-mark

The output sequence of octets is to be preceded by a Byte Order Mark.

output-cdata-section-namespace-uri

Namespace URI of the "cdata section localname" specified below.

output-cdata-section-localname

Element localname or list of element localnames to be output as CDATA sections.

output-doctype-public

A public identifier to use on the emitted DOCTYPE.

output-doctype-system

A system identifier to use on the emitted DOCTYPE.

output-escape-uri-attributes

Apply Unicode normalization, percent-encoding, and HTML escaping to serialized URI attributes.

output-include-content-type

Include the content-type declaration when serializing the node.

output-indent

Pretty-print typed XML (that is, XML for which there is an in-scope schema).

output-indent-untyped

Pretty-print untyped XML (that is, XML for which there is no in-scope schema).

output-indent-tabs

Output a tab character instead of 8 consecutive spaces when indenting.

output-media-type

A mimetype representing a media type.

output-normalization-form

A Unicode normalization to be applied to serialized output.

output-omit-xml-declaration

Omit the XML declaration in serialized output.

output-standalone

For a value of "yes" or "no", include "standalone=<value>" in the XML declaration; for a value of "omit", omit "standalone=".

output-undeclare-prefixes

Undeclare the namespace prefix of any child element that does not bind the prefix of its parent element.

output-version

Optionally stipulate conformance to a specific version of the output method.

output-include-default-attributes

Specifies whether attributes defaulted with a schema should be included in the serialization.

default-error-format

The default error format for protocol errors. One of html,xml,json,compatiable

error-handler

The script that handles 400 and 500 errors for this server.

schemas

The schema binding specifications.

This is a complex structure with the following children:

schema

A schema binding specification.

This is a complex structure with the following children:

namespace-uri

A namespace URI.

schema-location

A schema location.

namespaces

The namespace binding specifications.

This is a complex structure with the following children:

namespace

A namespace binding specification.

This is a complex structure with the following children:

prefix

A QName prefix.

namespace-uri

A namespace URI.

using-namespaces

The default namespace bindings.

This is a complex structure with the following children:

using-namespace

A namespace path URI.

This is a complex structure with the following children:

namespace-uri

A namespace URI.

module-locations

The module location specifications.

This is a complex structure with the following children:

module-location

A module location specification.

This is a complex structure with the following children:

namespace-uri

A namespace URI.

location

A module location.

request-blackouts

Users, roles, or periods during which requests will be denied.

This is a complex structure with the following children:

request-blackout

A request blackout specification.

This is a complex structure with the following children:

users

The users that this blackout is active for.

This is a complex structure with the following children:

user

A user id.

roles

The roles that this blackout is active for.

This is a complex structure with the following children:

role

A role id.

blackout-type

What type of blackout is this.

days

The days that this blackout is active.

This is a complex structure with the following children:

day

A day that this blackout is active.

period

A period, which is all day, a start time and a duration, or a start and end time.

This is a complex structure with the following children:

start-date

The starting date (in MM/DD/YYYY notation)

start-time

The starting time (in 24:00 notation).

end-date

The ending date (in MM/DD/YYYY notation)

end-time

The ending time (in 24:00 notation).

duration

The duration, specifed as hours:minutes (i.e. 2 hours 5 minutes is 2:05)

url-rewriter

The script that rewrites URLs for this server.

rewrite-resolves-globally

Allow rewritten URLs to be resolved from the global MarkLogic Modules/ directory.

ssl-certificate-template

The certificate template. When a certificate template is specified, the App Server uses an SSL encrypted protocol (e.g. https, davs, xccs). The certificate template specifies the common information for the individual SSL certificates needed for each host in the group.

You can add a new certificate template by navigating to Security > Certificate Templates > Create

ssl-allow-sslv3

Whether or not SSLv3 is allowed.

ssl-allow-tls

Whether or not TLS is allowed.

ssl-disable-sslv3

Whether or not ssl v3 is disable.

ssl-disable-tlsv1

Whether or not TLS v1 is disable.

ssl-disable-tlsv1-1

Whether or not TLS v1 is disable.

ssl-disable-tlsv1-2

Whether or not TLS v1 is disable.

ssl-hostname

The host name for the server's SSL certificate. This is useful when many servers are running behind a load balancer. If not specified, each host will use a certificate specifying its own hostname. Note that per RFC 2459, hostnames must not exceed 64 characters in length.

ssl-ciphers

A colon separated list of ciphers (e.g. ALL:!LOW:@STRENGTH)

ssl-require-client-certificate

Whether or not a client certificate is required. This only has an effect when one or more client certificate authorities are specified (including the client certificate authorities in the external securities), in which case a value of true will refuse a client request if it does not present a valid client certificate.

ssl-client-issuer-authority-verification

Accept client certificates only if the issuer is one of the selected CAs in the 'ssl client certificate authorities' list below.

ssl-client-certificate-authorities

Certificate authorities that may sign client certificates for this server. Selecting one or more certificate authorities when SSL is enabled will require all clients to present a valid certificate signed by one of the selected authorities. Clicking on an organization below will reveal the certificate authorities for that organization.

This is a complex structure with the following children:

ssl-client-certificate-authority

An SSL certificate authority

ssl-client-certificate-pems

Wrapper for list of certificate authority PEMs

This is a complex structure with the following children:

ssl-client-certificate-pem

A certificate PEM

XDBC Server Properties

XML root element:

<xdbc-server-properties xmlns="http://marklogic.com/manage">		

server-name

The server name.

server-type

The server type.

group-name

The group name.

enabled

Appserver enabled status.

root

For HTTP App Servers, the root document directory pathname. For XDBC and ODBC App Servers, the module directory.

port

The server socket bind internet port number.

modules-database

The database that contains application modules.

content-database

The database name.

last-login-database

The database that contains users' last login information.

display-last-login

Indicates whether an appserver should display users' last login information.

address

The server socket bind numeric internet address.

backlog

The socket listen backlog.

threads

The maximum number of server threads allowed on each host in the group.

request-timeout

The request socket recv timeout, in seconds.

keep-alive-timeout

The keep-alive socket recv timeout, in seconds.

session-timeout

The session expiration timeout, in seconds.

max-time-limit

The upper bound for a request's time limit, in seconds.

default-time-limit

The default time limit for a request, in seconds.

max-inference-size

The upper bound for a request's inference size, in megabytes.

default-inference-size

The default inference size for a request, in megabytes.

pre-commit-trigger-depth

The maximum depth of pre-commit trigger invocation.

pre-commit-trigger-limit

The maximum number of triggers a single statement can invoke.

collation

The default collation for queries.

coordinate-system

The default coordinate system for queries.

authentication

The authentication scheme to use for this server

internal-security

Whether or not the security database is used for authentication and authorization.

external-security

External authentication and authorization configuration.

external-securities

External authentication and authorization configurations.

This is a complex structure with the following children:

external-security

External authentication and authorization configuration.

privilege

The privilege restricting access to the server.

concurrent-request-limit

The maximum number of concurrent requests per user.

file-log-level

The minimum log level for log messages in the log file.

log-errors

Log uncaught request processing errors to ErrorLog.txt.

debug-allow

Allow debugging on this server.

profile-allow

Allow profiling on this server.

default-xquery-version

The default XQuery language version for this server.

multi-version-concurrency-control

Specifies concurrency control of read-only queries.

distribute-timestamps

Specifies the distribution of commit timestamps after updates.

output-sgml-character-entities

Output SGML character entities.

output-encoding

The default output encoding.

output-method

Output method.

output-byte-order-mark

The output sequence of octets is to be preceded by a Byte Order Mark.

output-cdata-section-namespace-uri

Namespace URI of the "cdata section localname" specified below.

output-cdata-section-localname

Element localname or list of element localnames to be output as CDATA sections.

output-doctype-public

A public identifier to use on the emitted DOCTYPE.

output-doctype-system

A system identifier to use on the emitted DOCTYPE.

output-escape-uri-attributes

Apply Unicode normalization, percent-encoding, and HTML escaping to serialized URI attributes.

output-include-content-type

Include the content-type declaration when serializing the node.

output-indent

Pretty-print typed XML (that is, XML for which there is an in-scope schema).

output-indent-untyped

Pretty-print untyped XML (that is, XML for which there is no in-scope schema).

output-indent-tabs

Output a tab character instead of 8 consecutive spaces when indenting.

output-media-type

A mimetype representing a media type.

output-normalization-form

A Unicode normalization to be applied to serialized output.

output-omit-xml-declaration

Omit the XML declaration in serialized output.

output-standalone

For a value of "yes" or "no", include "standalone=<value>" in the XML declaration; for a value of "omit", omit "standalone=".

output-undeclare-prefixes

Undeclare the namespace prefix of any child element that does not bind the prefix of its parent element.

output-version

Optionally stipulate conformance to a specific version of the output method.

output-include-default-attributes

Specifies whether attributes defaulted with a schema should be included in the serialization.

schemas

The schema binding specifications.

This is a complex structure with the following children:

schema

A schema binding specification.

This is a complex structure with the following children:

namespace-uri

A namespace URI.

schema-location

A schema location.

namespaces

The namespace binding specifications.

This is a complex structure with the following children:

namespace

A namespace binding specification.

This is a complex structure with the following children:

prefix

A QName prefix.

namespace-uri

A namespace URI.

using-namespaces

The default namespace bindings.

This is a complex structure with the following children:

using-namespace

A namespace path URI.

This is a complex structure with the following children:

namespace-uri

A namespace URI.

module-locations

The module location specifications.

This is a complex structure with the following children:

module-location

A module location specification.

This is a complex structure with the following children:

namespace-uri

A namespace URI.

location

A module location.

request-blackouts

Users, roles, or periods during which requests will be denied.

This is a complex structure with the following children:

request-blackout

A request blackout specification.

This is a complex structure with the following children:

users

The users that this blackout is active for.

This is a complex structure with the following children:

user

A user id.

roles

The roles that this blackout is active for.

This is a complex structure with the following children:

role

A role id.

blackout-type

What type of blackout is this.

days

The days that this blackout is active.

This is a complex structure with the following children:

day

A day that this blackout is active.

period

A period, which is all day, a start time and a duration, or a start and end time.

This is a complex structure with the following children:

start-date

The starting date (in MM/DD/YYYY notation)

start-time

The starting time (in 24:00 notation).

end-date

The ending date (in MM/DD/YYYY notation)

end-time

The ending time (in 24:00 notation).

duration

The duration, specifed as hours:minutes (i.e. 2 hours 5 minutes is 2:05)

ssl-certificate-template

The certificate template. When a certificate template is specified, the App Server uses an SSL encrypted protocol (e.g. https, davs, xccs). The certificate template specifies the common information for the individual SSL certificates needed for each host in the group.

You can add a new certificate template by navigating to Security > Certificate Templates > Create

ssl-allow-sslv3

Whether or not SSLv3 is allowed.

ssl-allow-tls

Whether or not TLS is allowed.

ssl-disable-sslv3

Whether or not ssl v3 is disable.

ssl-disable-tlsv1

Whether or not TLS v1 is disable.

ssl-disable-tlsv1-1

Whether or not TLS v1 is disable.

ssl-disable-tlsv1-2

Whether or not TLS v1 is disable.

ssl-hostname

The host name for the server's SSL certificate. This is useful when many servers are running behind a load balancer. If not specified, each host will use a certificate specifying its own hostname. Note that per RFC 2459, hostnames must not exceed 64 characters in length.

ssl-ciphers

A colon separated list of ciphers (e.g. ALL:!LOW:@STRENGTH)

ssl-require-client-certificate

Whether or not a client certificate is required. This only has an effect when one or more client certificate authorities are specified (including the client certificate authorities in the external securities), in which case a value of true will refuse a client request if it does not present a valid client certificate.

ssl-client-issuer-authority-verification

Accept client certificates only if the issuer is one of the selected CAs in the 'ssl client certificate authorities' list below.

ssl-client-certificate-authorities

Certificate authorities that may sign client certificates for this server. Selecting one or more certificate authorities when SSL is enabled will require all clients to present a valid certificate signed by one of the selected authorities. Clicking on an organization below will reveal the certificate authorities for that organization.

This is a complex structure with the following children:

ssl-client-certificate-authority

An SSL certificate authority

ssl-client-certificate-pems

Wrapper for list of certificate authority PEMs

This is a complex structure with the following children:

ssl-client-certificate-pem

A certificate PEM

ODBC Server Properties

XML root element:

<odbc-server-properties xmlns="http://marklogic.com/manage">		

server-name

The server name.

server-type

The server type.

group-name

The group name.

enabled

Appserver enabled status.

root

For HTTP App Servers, the root document directory pathname. For XDBC and ODBC App Servers, the module directory.

port

The server socket bind internet port number.

modules-database

The database that contains application modules.

content-database

The database name.

last-login-database

The database that contains users' last login information.

display-last-login

Indicates whether an appserver should display users' last login information.

address

The server socket bind numeric internet address.

backlog

The socket listen backlog.

threads

The maximum number of server threads allowed on each host in the group.

connection-timeout

The idle connection expiration timeout, in seconds, or 0 to indicate no idle connection timeout.

max-query-time-limit

The upper bound for a query's time limit, in seconds.

default-query-time-limit

The default time limit for a query, in seconds.

pre-commit-trigger-depth

The maximum depth of pre-commit trigger invocation.

pre-commit-trigger-limit

The maximum number of triggers a single statement can invoke.

collation

The default collation for queries.

coordinate-system

The default coordinate system for queries.

authentication

The authentication scheme to use for this server

internal-security

Whether or not the security database is used for authentication and authorization.

external-security

External authentication and authorization configuration.

external-securities

External authentication and authorization configurations.

This is a complex structure with the following children:

external-security

External authentication and authorization configuration.

privilege

The privilege restricting access to the server.

concurrent-request-limit

The maximum number of concurrent requests per user.

file-log-level

The minimum log level for log messages in the log file.

log-errors

Log uncaught request processing errors to ErrorLog.txt.

debug-allow

Allow debugging on this server.

profile-allow

Allow profiling on this server.

default-xquery-version

The default XQuery language version for this server.

multi-version-concurrency-control

Specifies concurrency control of read-only queries.

distribute-timestamps

Specifies the distribution of commit timestamps after updates.

output-sgml-character-entities

Output SGML character entities.

output-encoding

The default output encoding.

output-method

Output method.

output-byte-order-mark

The output sequence of octets is to be preceded by a Byte Order Mark.

output-cdata-section-namespace-uri

Namespace URI of the "cdata section localname" specified below.

output-cdata-section-localname

Element localname or list of element localnames to be output as CDATA sections.

output-doctype-public

A public identifier to use on the emitted DOCTYPE.

output-doctype-system

A system identifier to use on the emitted DOCTYPE.

output-escape-uri-attributes

Apply Unicode normalization, percent-encoding, and HTML escaping to serialized URI attributes.

output-include-content-type

Include the content-type declaration when serializing the node.

output-indent

Pretty-print typed XML (that is, XML for which there is an in-scope schema).

output-indent-untyped

Pretty-print untyped XML (that is, XML for which there is no in-scope schema).

output-indent-tabs

Output a tab character instead of 8 consecutive spaces when indenting.

output-media-type

A mimetype representing a media type.

output-normalization-form

A Unicode normalization to be applied to serialized output.

output-omit-xml-declaration

Omit the XML declaration in serialized output.

output-standalone

For a value of "yes" or "no", include "standalone=<value>" in the XML declaration; for a value of "omit", omit "standalone=".

output-undeclare-prefixes

Undeclare the namespace prefix of any child element that does not bind the prefix of its parent element.

output-version

Optionally stipulate conformance to a specific version of the output method.

output-include-default-attributes

Specifies whether attributes defaulted with a schema should be included in the serialization.

schemas

The schema binding specifications.

This is a complex structure with the following children:

schema

A schema binding specification.

This is a complex structure with the following children:

namespace-uri

A namespace URI.

schema-location

A schema location.

namespaces

The namespace binding specifications.

This is a complex structure with the following children:

namespace

A namespace binding specification.

This is a complex structure with the following children:

prefix

A QName prefix.

namespace-uri

A namespace URI.

using-namespaces

The default namespace bindings.

This is a complex structure with the following children:

using-namespace

A namespace path URI.

This is a complex structure with the following children:

namespace-uri

A namespace URI.

module-locations

The module location specifications.

This is a complex structure with the following children:

module-location

A module location specification.

This is a complex structure with the following children:

namespace-uri

A namespace URI.

location

A module location.

request-blackouts

Users, roles, or periods during which requests will be denied.

This is a complex structure with the following children:

request-blackout

A request blackout specification.

This is a complex structure with the following children:

users

The users that this blackout is active for.

This is a complex structure with the following children:

user

A user id.

roles

The roles that this blackout is active for.

This is a complex structure with the following children:

role

A role id.

blackout-type

What type of blackout is this.

days

The days that this blackout is active.

This is a complex structure with the following children:

day

A day that this blackout is active.

period

A period, which is all day, a start time and a duration, or a start and end time.

This is a complex structure with the following children:

start-date

The starting date (in MM/DD/YYYY notation)

start-time

The starting time (in 24:00 notation).

end-date

The ending date (in MM/DD/YYYY notation)

end-time

The ending time (in 24:00 notation).

duration

The duration, specifed as hours:minutes (i.e. 2 hours 5 minutes is 2:05)

ssl-certificate-template

The certificate template. When a certificate template is specified, the App Server uses an SSL encrypted protocol (e.g. https, davs, xccs). The certificate template specifies the common information for the individual SSL certificates needed for each host in the group.

You can add a new certificate template by navigating to Security > Certificate Templates > Create

ssl-allow-sslv3

Whether or not SSLv3 is allowed.

ssl-allow-tls

Whether or not TLS is allowed.

ssl-disable-sslv3

Whether or not ssl v3 is disable.

ssl-disable-tlsv1

Whether or not TLS v1 is disable.

ssl-disable-tlsv1-1

Whether or not TLS v1 is disable.

ssl-disable-tlsv1-2

Whether or not TLS v1 is disable.

ssl-hostname

The host name for the server's SSL certificate. This is useful when many servers are running behind a load balancer. If not specified, each host will use a certificate specifying its own hostname. Note that per RFC 2459, hostnames must not exceed 64 characters in length.

ssl-ciphers

A colon separated list of ciphers (e.g. ALL:!LOW:@STRENGTH)

ssl-require-client-certificate

Whether or not a client certificate is required. This only has an effect when one or more client certificate authorities are specified (including the client certificate authorities in the external securities), in which case a value of true will refuse a client request if it does not present a valid client certificate.

ssl-client-issuer-authority-verification

Accept client certificates only if the issuer is one of the selected CAs in the 'ssl client certificate authorities' list below.

ssl-client-certificate-authorities

Certificate authorities that may sign client certificates for this server. Selecting one or more certificate authorities when SSL is enabled will require all clients to present a valid certificate signed by one of the selected authorities. Clicking on an organization below will reveal the certificate authorities for that organization.

This is a complex structure with the following children:

ssl-client-certificate-authority

An SSL certificate authority

ssl-client-certificate-pems

Wrapper for list of certificate authority PEMs

This is a complex structure with the following children:

ssl-client-certificate-pem

A certificate PEM

Example



cat myServer.xml
==> 
<http-server-properties xmlns="http://marklogic.com/manage">
   <server-name>myServer</server-name>
   <root>/</root>
   <port>8088</port>
   <content-database>Documents</content-database>
</http-server-properties>

curl -X POST --digest -u admin:admin -H "Content-type: application/xml" \
-d @myServer.xml 'http://localhost:8002/manage/v2/servers?group-id=Default&server-type=http' 

==>  Creates the HTTP App Server, named "myServer," in the Default group. 
		  
cat myServer.json
==> 
{
   "server-name":"myServer",
   "root":"/",
   "port":8088,
   "content-database":"Documents"
}

curl -X POST --digest -u admin:admin -H "Content-type: application/json" \
-d @myServer.json 'http://localhost:8002/manage/v2/servers?group-id=Default&server-type=http' 

==>  Creates the HTTP App Server, named "myServer," in the Default group. 
    

Stack Overflow iconStack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.