From 9dadf50ac6b579fa86b243b0ca8bd1b9e48bd58d Mon Sep 17 00:00:00 2001 From: Eric Callahan Date: Thu, 23 Dec 2021 12:23:37 -0500 Subject: [PATCH] templates: add support for secrets Add the secrets module as a Jinja2 Environment global. All templates will be able to access secrets as if it were a dictionary. Signed-off-by: Eric Callahan --- moonraker/components/template.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/moonraker/components/template.py b/moonraker/components/template.py index 9720090..a03c6ee 100644 --- a/moonraker/components/template.py +++ b/moonraker/components/template.py @@ -18,14 +18,17 @@ from typing import ( if TYPE_CHECKING: from moonraker import Server from confighelper import ConfigHelper + from .secrets import Secrets class TemplateFactory: def __init__(self, config: ConfigHelper) -> None: self.server = config.get_server() + secrets: Secrets = self.server.load_component(config, 'secrets') self.jenv = jinja2.Environment('{%', '%}', '{', '}') self.jenv.add_extension("jinja2.ext.do") self.jenv.filters['fromjson'] = json.loads self.add_environment_global('raise_error', self._raise_error) + self.add_environment_global('secrets', secrets) def add_environment_global(self, name: str, value: Any): if name in self.jenv.globals: