# REST configuration backend

You can share your configuration over the network using REST proxy system:

- GET /config/latest: get the last config metadata
- GET /config/<cfgNum>: get the metadata for config n° <cfgNum>
- GET /config/<latest|cfgNum>/<key>: get conf key value
- GET /config/<latest|cfgNum>?full=1: get the full configuration

You can retrieve "human readable" error messages:

- GET /error/<lang>/<errNum>: get <errNum> error reference and <lang> errors file.

If no <lang> provided, 'en' errors file is returned.

Note that REST is not a real configuration backend, but just a proxy system to access to your configuration over the network

## Configuration

### First, configure your real backend

- On your main server, configure a File, SQL or LDAP backend
- Enable REST server in the configuration using the manager (in portal plugins)
- Configure your web server to allow remote access. Remote REST access is disabled by default. Change it as follow:

* In `portal-apache2.conf`:

    # REST functions for configuration access (disabled by default)
    <Location /index.fcgi/config>
        Require ip 192.168.2.0/24
    </Location>

* In `portal-nginx.conf`:

    # REST functions for configuration access (disabled by default)
    location /index.psgi/config {
      allow 192.168.2.0/24;
    }

### Next, configure REST for your remote servers

Change configuration in lemonldap-ng.ini :

    type         = REST
    ; Apache
    baseUrl      = https://auth.example.com/index.fcgi/config
    ; Nginx
    baseUrl      = https://auth.example.com/index.psgi/config

You can also add some other parameters

    User         = lemonldap
    Password     = mypassword
    # LWP::UserAgent parameters
    proxyOptions = { timeout => 5 }