At the moment, mlproj supports HTTP app servers. This proposal is about adding support for app servers with the REST Client API enabled.
They are also HTTP servers, but are created using the endpoint :8002/v1/rest-apis. They cannot use the filesystem for modules. Some components are created automatically if they are not set during creation (e.g. the content database defaults to a new database named {name}-content).
After creation, they can be managed like any other HTTP servers (esp. for all options that cannot be set at creation, you can only set a very few). In addition, a REST app server also expose a handful of extra properties, set yet on a different endpoint.
In environs, a REST server would reuse the same structure as other HTTP servers (and would also be objects in the servers array), with a few differences:
type is rest, instead of http
modules is required (cannot be on filesystem)
can have a new rest-config property, which is itself an object with both values used at creation (not possible to update) and values for REST server properties (maintained aside HTTP server properties)
The following properties from both REST server creation and properties endpoints need notes:
name, group, port, database and modules-database - use the following properties from the server object: name, group, port, content-database, modules-database (for both databases, use their name prop, both are required)
forests-per-host - not relevant as we require the content-database (so it can itself use the usual database forests mechanism)
content-versions - this is deprecated, so not supported in mlproj
An example of a server object would then be (the other properties than those above map rather obviously by name to those in rest-config):
At the moment, mlproj supports HTTP app servers. This proposal is about adding support for app servers with the REST Client API enabled.
They are also HTTP servers, but are created using the endpoint
:8002/v1/rest-apis
. They cannot use the filesystem for modules. Some components are created automatically if they are not set during creation (e.g. the content database defaults to a new database named{name}-content
).After creation, they can be managed like any other HTTP servers (esp. for all options that cannot be set at creation, you can only set a very few). In addition, a REST app server also expose a handful of extra properties, set yet on a different endpoint.
In environs, a REST server would reuse the same structure as other HTTP servers (and would also be objects in the
servers
array), with a few differences:type
isrest
, instead ofhttp
modules
is required (cannot be on filesystem)rest-config
property, which is itself an object with both values used at creation (not possible to update) and values for REST server properties (maintained aside HTTP server properties)The following properties from both REST server creation and properties endpoints need notes:
name
,group
,port
,database
andmodules-database
- use the following properties from the server object:name
,group
,port
,content-database
,modules-database
(for both databases, use their name prop, both are required)forests-per-host
- not relevant as we require the content-database (so it can itself use the usual databaseforests
mechanism)content-versions
- this is deprecated, so not supported in mlprojAn example of a server object would then be (the other properties than those above map rather obviously by name to those in
rest-config
):error-format
can bejson
orxml
update-policy
can beversion-required
,version-optional
,merge-metadata
, or `overwrite-metadata