diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2022-10-05 14:45:21 +0200 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2022-10-05 14:45:21 +0200 |
| commit | b7e39b59fd0fc7b5610ebff29035bf622079e0d8 (patch) | |
| tree | 64be84ebbdac9f7ceced983390c53b10d575af5c /code/api/src/Data/Static | |
| parent | 2001c035fbb417ab0a3d42cfb04d17420bde4086 (diff) | |
| download | greatoffice-b7e39b59fd0fc7b5610ebff29035bf622079e0d8.tar.xz greatoffice-b7e39b59fd0fc7b5610ebff29035bf622079e0d8.zip | |
refactor: Change file structure
Diffstat (limited to 'code/api/src/Data/Static')
| -rw-r--r-- | code/api/src/Data/Static/AppClaims.cs | 8 | ||||
| -rw-r--r-- | code/api/src/Data/Static/AppConfiguration.cs | 58 | ||||
| -rw-r--r-- | code/api/src/Data/Static/AppConstants.cs | 12 | ||||
| -rw-r--r-- | code/api/src/Data/Static/AppDateTime.cs | 16 | ||||
| -rw-r--r-- | code/api/src/Data/Static/AppEnvironmentVariables.cs | 21 | ||||
| -rw-r--r-- | code/api/src/Data/Static/AppHeaders.cs | 7 | ||||
| -rw-r--r-- | code/api/src/Data/Static/AppPaths.cs | 17 | ||||
| -rw-r--r-- | code/api/src/Data/Static/JsonSettings.cs | 11 |
8 files changed, 150 insertions, 0 deletions
diff --git a/code/api/src/Data/Static/AppClaims.cs b/code/api/src/Data/Static/AppClaims.cs new file mode 100644 index 0000000..8b6d3a8 --- /dev/null +++ b/code/api/src/Data/Static/AppClaims.cs @@ -0,0 +1,8 @@ +namespace IOL.GreatOffice.Api.Data.Static; + +public static class AppClaims +{ + public const string USER_ID = "user_id"; + public const string NAME = "name"; + public const string GITHUB_ACCESS_TOKEN = ""; +} diff --git a/code/api/src/Data/Static/AppConfiguration.cs b/code/api/src/Data/Static/AppConfiguration.cs new file mode 100644 index 0000000..4ee7a8e --- /dev/null +++ b/code/api/src/Data/Static/AppConfiguration.cs @@ -0,0 +1,58 @@ +using System.Security.Cryptography.X509Certificates; + +namespace IOL.GreatOffice.Api.Data.Static; + +public class AppConfiguration +{ + public string DB_HOST { get; set; } + public string DB_PORT { get; set; } + public string DB_USER { get; set; } + public string DB_PASSWORD { get; set; } + public string DB_NAME { get; set; } + public string QUARTZ_DB_HOST { get; set; } + public string QUARTZ_DB_PORT { get; set; } + public string QUARTZ_DB_USER { get; set; } + public string QUARTZ_DB_PASSWORD { get; set; } + public string QUARTZ_DB_NAME { get; set; } + public string SEQ_API_KEY { get; set; } + public string SEQ_API_URL { get; set; } + public string SMTP_HOST { get; set; } + public string SMTP_PORT { get; set; } + public string SMTP_USER { get; set; } + public string SMTP_PASSWORD { get; set; } + public string EMAIL_FROM_ADDRESS { get; set; } + public string EMAIL_FROM_DISPLAY_NAME { get; set; } + public string PORTAL_URL { get; set; } + public string GITHUB_CLIENT_ID { get; set; } + public string GITHUB_CLIENT_SECRET { get; set; } + public string APP_AES_KEY { get; set; } + public string APP_CERT { get; set; } + + public X509Certificate2 CERT1() => new (Convert.FromBase64String(APP_CERT)); + + public object GetPublicVersion() { + return new { + DB_HOST, + DB_PORT, + DB_USER, + DB_PASSWORD = DB_PASSWORD.Obfuscate() ?? "", + QUARTZ_DB_HOST, + QUARTZ_DB_PORT, + QUARTZ_DB_USER, + QUARTZ_DB_PASSWORD = QUARTZ_DB_PASSWORD.Obfuscate() ?? "", + SEQ_API_KEY = SEQ_API_KEY.Obfuscate() ?? "", + SEQ_API_URL, + SMTP_HOST, + SMTP_PORT, + SMTP_USER = SMTP_USER.Obfuscate() ?? "", + SMTP_PASSWORD = SMTP_PASSWORD.Obfuscate() ?? "", + EMAIL_FROM_ADDRESS, + EMAIL_FROM_DISPLAY_NAME, + PORTAL_URL, + GITHUB_CLIENT_ID = GITHUB_CLIENT_ID.Obfuscate() ?? "", + GITHUB_CLIENT_SECRET = GITHUB_CLIENT_SECRET.Obfuscate() ?? "", + APP_AES_KEY = APP_AES_KEY.Obfuscate() ?? "", + CERT1 = CERT1().PublicKey.Oid.FriendlyName + }; + } +} diff --git a/code/api/src/Data/Static/AppConstants.cs b/code/api/src/Data/Static/AppConstants.cs new file mode 100644 index 0000000..461317b --- /dev/null +++ b/code/api/src/Data/Static/AppConstants.cs @@ -0,0 +1,12 @@ +namespace IOL.GreatOffice.Api.Data.Static; + +public static class AppConstants +{ + public const string API_NAME = "Great Office API"; + public const string BASIC_AUTH_SCHEME = "BasicAuthenticationScheme"; + public const string TOKEN_ALLOW_READ = "TOKEN_ALLOW_READ"; + public const string TOKEN_ALLOW_CREATE = "TOKEN_ALLOW_CREATE"; + public const string TOKEN_ALLOW_UPDATE = "TOKEN_ALLOW_UPDATE"; + public const string TOKEN_ALLOW_DELETE = "TOKEN_ALLOW_DELETE"; + public const string VAULT_CACHE_KEY = "VAULT_CACHE_KEY"; +} diff --git a/code/api/src/Data/Static/AppDateTime.cs b/code/api/src/Data/Static/AppDateTime.cs new file mode 100644 index 0000000..880d2a8 --- /dev/null +++ b/code/api/src/Data/Static/AppDateTime.cs @@ -0,0 +1,16 @@ +namespace IOL.GreatOffice.Api.Data.Static; + +public static class AppDateTime +{ + private static DateTime? dateTime; + + public static DateTime UtcNow => dateTime ?? DateTime.UtcNow; + + public static void Set(DateTime setDateTime) { + dateTime = setDateTime; + } + + public static void Reset() { + dateTime = null; + } +} diff --git a/code/api/src/Data/Static/AppEnvironmentVariables.cs b/code/api/src/Data/Static/AppEnvironmentVariables.cs new file mode 100644 index 0000000..c3f821d --- /dev/null +++ b/code/api/src/Data/Static/AppEnvironmentVariables.cs @@ -0,0 +1,21 @@ +namespace IOL.GreatOffice.Api.Data.Static; + +public static class AppEnvironmentVariables +{ + /// <summary> + /// An access token that can be used to access the Hashicorp Vault instance that is available at VAULT_URL + /// </summary> + public const string VAULT_TOKEN = "VAULT_TOKEN"; + /// <summary> + /// An url pointing to the Hashicorp Vault instance the app should use + /// </summary> + public const string VAULT_URL = "VAULT_URL"; + /// <summary> + /// The duration of which to keep a local cached version of the configuration + /// </summary> + public const string VAULT_CACHE_TTL = "VAULT_CACHE_TTL"; + /// <summary> + /// The vault key name for the main configuration json object, described by <see cref="AppConfiguration"/> + /// </summary> + public const string MAIN_CONFIG_SHEET = "MAIN_CONFIG_SHEET"; +} diff --git a/code/api/src/Data/Static/AppHeaders.cs b/code/api/src/Data/Static/AppHeaders.cs new file mode 100644 index 0000000..7912418 --- /dev/null +++ b/code/api/src/Data/Static/AppHeaders.cs @@ -0,0 +1,7 @@ +namespace IOL.GreatOffice.Api.Data.Static; + +public static class AppHeaders +{ + public const string BROWSER_TIME_ZONE = "X-TimeZone"; + public const string VAULT_TOKEN = "X-Vault-Token"; +} diff --git a/code/api/src/Data/Static/AppPaths.cs b/code/api/src/Data/Static/AppPaths.cs new file mode 100644 index 0000000..a24f5af --- /dev/null +++ b/code/api/src/Data/Static/AppPaths.cs @@ -0,0 +1,17 @@ + +namespace IOL.GreatOffice.Api.Data.Static; + +public static class AppPaths +{ + public static AppPath AppData => new() { + HostPath = Path.Combine(Directory.GetCurrentDirectory(), "AppData") + }; + + public static AppPath DataProtectionKeys => new() { + HostPath = Path.Combine(Directory.GetCurrentDirectory(), "AppData", "dp-keys") + }; + + public static AppPath Frontend => new() { + HostPath = Path.Combine(Directory.GetCurrentDirectory(), "Frontend") + }; +} diff --git a/code/api/src/Data/Static/JsonSettings.cs b/code/api/src/Data/Static/JsonSettings.cs new file mode 100644 index 0000000..a163c11 --- /dev/null +++ b/code/api/src/Data/Static/JsonSettings.cs @@ -0,0 +1,11 @@ +namespace IOL.GreatOffice.Api.Data.Static; + +public static class JsonSettings +{ + public static Action<JsonOptions> Default { get; } = options => { + options.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles; + options.JsonSerializerOptions.PropertyNameCaseInsensitive = true; + options.JsonSerializerOptions.NumberHandling = JsonNumberHandling.AllowReadingFromString; + options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase; + }; +} |
