Details
-
New Feature
-
Status: Resolved
-
Major
-
Resolution: Implemented
-
None
-
None
Description
In the start.sh script of the Docker container image for Guacamole, environment variables are used to pass configuration properties to several different authentication providers. The names of the environment variables are derived from the names of the corresponding properties by converting all letters to upper case and replacing all hyphens with underscores. It would he helpful if this was generalized such that the configuration properties for any extension module could be specified in the environment.
As described in [The Twelve Factor App](https://12factor.net), the environment should be the preferred way to inject deployment-specific configuration. This is particularly helpful in the context of containers, but in general is easier for operations personnel than application-specific configuration files/formats/locations.
Extension modules generally use an Environment instance to get configuration property values. Through a relatively small modification of the LocalEnvironment implementation, the System.getenv(String) method could be used to first check for the configuration property in the environment (using the name transformed as described above) and if not set in the environment, then fallback to retrieving it from the Properties instance that was used to load guacamole.properties.
Attachments
Issue Links
- is duplicated by
-
GUACAMOLE-32 Extended variable support in guacamole-docker image for linked databases
- Closed
- is related to
-
GUACAMOLE-41 Document how to use LDAP with Docker
- Closed
- relates to
-
GUACAMOLE-674 Pass-through LDAP member attribute env variable in Docker start script
- Resolved