59 lines
1.8 KiB
Python
59 lines
1.8 KiB
Python
# -*- coding: utf-8 -*-
|
|
from __future__ import annotations
|
|
|
|
import json
|
|
import os
|
|
|
|
from keep_it_secret import EnvField, LiteralField, SecretsField
|
|
|
|
from hotpocket_backend.secrets.base import (
|
|
CelerySecrets,
|
|
DatabaseSecrets,
|
|
OIDCSecrets,
|
|
)
|
|
from hotpocket_backend.secrets.webapp import WebAppSecrets
|
|
|
|
|
|
class DeploymentDatabaseSecrets(DatabaseSecrets):
|
|
payload: str = LiteralField.new(
|
|
json.dumps({
|
|
'engine': os.getenv('HOTPOCKET_BACKEND_DATABASE_ENGINE', 'django.db.backends.sqlite3'),
|
|
'name': os.getenv('HOTPOCKET_BACKEND_DATABASE_NAME', '/srv/run/hotpocket-backend-aio.sqlite'),
|
|
'user': os.getenv('HOTPOCKET_BACKEND_DATABASE_USER', ''),
|
|
'password': os.getenv('HOTPOCKET_BACKEND_DATABASE_PASSWORD', ''),
|
|
'host': os.getenv('HOTPOCKET_BACKEND_DATABASE_HOST', ''),
|
|
'port': os.getenv('HOTPOCKET_BACKEND_DATABASE_PORT', ''),
|
|
}),
|
|
)
|
|
|
|
|
|
class DeploymentOIDCSecrets(OIDCSecrets):
|
|
payload: str | None = EnvField.new(
|
|
'HOTPOCKET_BACKEND_OIDC_PAYLOAD', default=None, required=False,
|
|
)
|
|
|
|
|
|
class DeploymentCelerySecrets(CelerySecrets):
|
|
broker_url: str = EnvField.new(
|
|
'HOTPOCKET_BACKEND_CELERY_BROKER_URL',
|
|
default='amqp://guest@rabbitmq.aio.hotpocket/',
|
|
required=False,
|
|
)
|
|
result_backend: str = EnvField.new(
|
|
'HOTPOCKET_BACKEND_CELERY_RESULT_BACKEND',
|
|
default='disabled://',
|
|
required=False,
|
|
)
|
|
|
|
|
|
class AIOWebAppSecrets(WebAppSecrets):
|
|
SECRET_KEY: str = EnvField.new('HOTPOCKET_BACKEND_SECRET_KEY')
|
|
|
|
DATABASE: DeploymentDatabaseSecrets = SecretsField.new(DeploymentDatabaseSecrets)
|
|
CELERY: DeploymentCelerySecrets = SecretsField.new(DeploymentCelerySecrets)
|
|
|
|
OIDC: DeploymentOIDCSecrets = SecretsField.new(DeploymentOIDCSecrets)
|
|
|
|
|
|
__secrets__ = AIOWebAppSecrets()
|