Docs + default origin setting

This commit is contained in:
Tobias Kunze 2025-03-16 09:02:03 +01:00
parent 85db7af0e1
commit e8c624d408
4 changed files with 27 additions and 1 deletions

View file

@ -33,3 +33,6 @@ SERVALA_EMAIL_PASSWORD=''
# At most one of the following settings may be set to True
SERVALA_EMAIL_TLS='False'
SERVALA_EMAIL_SSL='False'
# If the default OrganizationOrigin is **not** the one with the database ID 1, set it here.
SERVALA_DEFAULT_ORIGIN='1'

View file

@ -49,7 +49,8 @@ class BillingEntity(models.Model):
class OrganizationOrigin(models.Model):
"""
Every organization has an origin, though origins may be
shared across different organizations.
shared across different organizations. The default origin
(by PK) is configured in the settings as SERVALA_DEFAULT_ORIGIN.
"""
name = models.CharField(max_length=100, verbose_name=_("Name"))

View file

@ -3,6 +3,10 @@ from django.utils.translation import gettext_lazy as _
class ServiceCategory(models.Model):
"""
Categories for services, e.g. "Databases", "Storage", "Compute".
"""
name = models.CharField(max_length=100, verbose_name=_("Name"))
description = models.TextField(blank=True, verbose_name=_("Description"))
logo = models.ImageField(
@ -26,6 +30,10 @@ class ServiceCategory(models.Model):
class Service(models.Model):
"""
A service that can be offered, e.g. "PostgreSQL", "MinIO", "Kubernetes".
"""
name = models.CharField(max_length=100, verbose_name=_("Name"))
description = models.TextField(blank=True, verbose_name=_("Description"))
logo = models.ImageField(
@ -64,6 +72,10 @@ class ControlPlane(models.Model):
class CloudProvider(models.Model):
"""
A cloud provider, e.g. "Exoscale".
"""
name = models.CharField(max_length=100, verbose_name=_("Name"))
description = models.TextField(blank=True, verbose_name=_("Description"))
logo = models.ImageField(
@ -79,6 +91,10 @@ class CloudProvider(models.Model):
class Plan(models.Model):
"""
Each service offering can have multiple plans, e.g. for different tiers.
"""
name = models.CharField(max_length=100, verbose_name=_("Name"))
description = models.TextField(blank=True, verbose_name=_("Description"))
# TODO schema
@ -98,6 +114,10 @@ class Plan(models.Model):
class ServiceOffering(models.Model):
"""
A service offering, e.g. "PostgreSQL on AWS", "MinIO on GCP".
"""
description = models.TextField(blank=True, verbose_name=_("Description"))
service = models.ForeignKey(
to="Service",

View file

@ -62,6 +62,8 @@ EMAIL_HOST_PASSWORD = os.environ.get("SERVALA_EMAIL_PASSWORD", "")
EMAIL_USE_TLS = os.environ.get("SERVALA_EMAIL_TLS", "False") == "True"
EMAIL_USE_SSL = os.environ.get("SERVALA_EMAIL_SSL", "False") == "True"
SERVALA_DEFAULT_ORIGIN = int(os.environ.get("SERVALA_DEFAULT_ORIGIN", "1"))
#######################################
# Non-configurable settings below #
#######################################