Uploaded image for project: 'Guacamole'
  1. Guacamole
  2. GUACAMOLE-464

Extension configuration properties from the OS environment

    XMLWordPrintableJSON

    Details

    • Type: New Feature
    • Status: Resolved
    • Priority: Major
    • Resolution: Implemented
    • Affects Version/s: None
    • Fix Version/s: 1.0.0
    • Labels:
      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

            Activity

              People

              • Assignee:
                ceharris Carl Harris
                Reporter:
                ceharris Carl Harris
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: