The JWT Auther object should be passed to whoever needs it directly, and
not obtained via the Shaman component.
This also fixes a bug where the dashboard wouldn't function when the
Shaman was disabled.
I also added the ACME directory URL to the log message, so that it can
be verified to be the v2 URL (and not the deprecated v1 URL).
This fixes T71444.
The default config now resembles the Blender Institute less, and only
uses one shared storage location. This makes it easier to recognise the
goal of variables. Also, I made sure that the Shaman variable is also
configured, and that it matches the other Shaman configuration parameters.
The `disableSecurity` is a negative boolean (I generally would prefer
`enableSecurity`), and I find `disableSecurity: false` confusing to
read. However, `disableSecurity: true` looks more omnious to me than
`enableSecurity: false`, which is why I keep the naming as-is.
There is no UI for adding variables (yet), so removing them shouldn't be
allowed. Removing and adding is still possible using the 'Advanced' view
by editing the YAML directly.
To make it simpler for people to work with variables, I think it's a
good idea to create some predefined ones (and not them be deleted). This
also allows us to include some indication as to the semantics of each
variable in the web setup, making it easier to work with.
Get rid of Vue.js specific getters/setters and __ob__ properties via the
JSON dumper. It is less sensitive to this than the YAML dumper (the latter
complains about some thing being `undefined` without saying what, and I
can't find it either).
When `websetup.hide_infra_settings` is true, the websetup will hide
certain settings that are infrastructure-specific. For example, it hides
MongoDB choice, port numbers, task log directory, all kind of
infra/hosting-specific things. This is used, for example, by the
automated Azure deployment to avoid messing up settings that are
specific to that particular installation.
Shaman touches files in the file store whenever they are referenced in a
checkout. This makes garbage collection slightly more efficient, as
recently-referenced files do not have to be checked. However, `os.Chtimes`
only allows us to use an explicit timestamp, which is not allowed on
certain SMB shares. Passing `NULL` as timestamp to the underlying system
call works fine, so that's what has been implemented now.
This workaround is only available on Linux, as I haven't been able to test
with other platforms. The other platforms just fall back to calling
`os.Chtimes(path, now, now)`.