Skip to content

Commit

Permalink
chore: refactor CLI settings so that they don't depend on unnecessary…
Browse files Browse the repository at this point in the history
… variables (#112)

* refactor CLI settings so that they don't depend on unnecessary variables

* move BOTO_ENDPOINT_URL and AWS_REGION back into general settings

* move properties
  • Loading branch information
rzlim08 authored Oct 11, 2024
1 parent 5f0b7b8 commit 0fd06a6
Showing 1 changed file with 28 additions and 28 deletions.
56 changes: 28 additions & 28 deletions platformics/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,44 +26,17 @@ class Settings(BaseSettings):
# manager, disk, etc) but we don't need that just yet.

# Properties usually read from env vars
CERBOS_URL: str
PLATFORMICS_DATABASE_HOST: str
PLATFORMICS_DATABASE_PORT: str
PLATFORMICS_DATABASE_USER: str
PLATFORMICS_DATABASE_PASSWORD: str
PLATFORMICS_DATABASE_NAME: str
OUTPUT_S3_PREFIX: typing.Optional[str] = None
JWK_PUBLIC_KEY_FILE: str
JWK_PRIVATE_KEY_FILE: str
DEFAULT_UPLOAD_BUCKET: str
DEFAULT_UPLOAD_PROTOCOL: str
BOTO_ENDPOINT_URL: typing.Optional[str] = None
AWS_REGION: str
DB_ECHO: bool = False

############################################################################
# Computed properties

@cached_property
def JWK_PRIVATE_KEY(self) -> jwk.JWK: # noqa: N802
key = None
if not self.JWK_PRIVATE_KEY_FILE:
raise Exception("JWK_PRIVATE_KEY_FILE not set")
with open(self.JWK_PRIVATE_KEY_FILE) as fh:
key = fh.read().strip()
private_key = jwk.JWK.from_pem(key.encode("utf-8"))
return private_key

@cached_property
def JWK_PUBLIC_KEY(self) -> jwk.JWK: # noqa: N802
key = None
if not self.JWK_PUBLIC_KEY_FILE:
raise Exception("JWK_PUBLIC_KEY_FILE not set")
with open(self.JWK_PUBLIC_KEY_FILE) as fh:
key = fh.read().strip()
public_key = jwk.JWK.from_pem(key.encode("utf-8"))
return public_key

@cached_property
def DB_URI(self) -> str: # noqa: N802
db_uri = "{protocol}://{db_user}:{db_pass}@{db_host}:{db_port}/{db_name}".format(
Expand All @@ -88,7 +61,34 @@ def SYNC_DB_URI(self) -> str: # noqa: N802
return db_uri


class APISettings(Settings): ...
class APISettings(Settings):
CERBOS_URL: str
OUTPUT_S3_PREFIX: typing.Optional[str] = None
JWK_PUBLIC_KEY_FILE: str
JWK_PRIVATE_KEY_FILE: str
DEFAULT_UPLOAD_BUCKET: str
DEFAULT_UPLOAD_PROTOCOL: str


@cached_property
def JWK_PRIVATE_KEY(self) -> jwk.JWK: # noqa: N802
key = None
if not self.JWK_PRIVATE_KEY_FILE:
raise Exception("JWK_PRIVATE_KEY_FILE not set")
with open(self.JWK_PRIVATE_KEY_FILE) as fh:
key = fh.read().strip()
private_key = jwk.JWK.from_pem(key.encode("utf-8"))
return private_key

@cached_property
def JWK_PUBLIC_KEY(self) -> jwk.JWK: # noqa: N802
key = None
if not self.JWK_PUBLIC_KEY_FILE:
raise Exception("JWK_PUBLIC_KEY_FILE not set")
with open(self.JWK_PUBLIC_KEY_FILE) as fh:
key = fh.read().strip()
public_key = jwk.JWK.from_pem(key.encode("utf-8"))
return public_key


class CLISettings(Settings): ...

0 comments on commit 0fd06a6

Please sign in to comment.