1pub mod auth_n;
2mod extract;
3pub mod fhir_client;
4mod fhir_http;
5pub mod load_artifacts;
6mod mcp;
7mod middleware;
8mod openapi;
9mod route_path;
10pub mod server;
11pub mod services;
12mod static_assets;
13pub mod tenants;
14mod ui;
15
16pub enum ServerEnvironmentVariables {
17 AllowArtifactMutations,
18 CertificationDir,
20 DataBaseURL,
22 PGMaxConnections,
23 ElasticSearchURL,
25 ElasticSearchUsername,
26 ElasticSearchPassword,
27 APIURI,
29 AdminAppRedirectURI,
31 SendGridAPIKey,
33 EmailFromAddress,
34 MaxRequestBodySize,
36 RateLimitSubscriptions,
37 RateLimitWindowInSeconds,
38 RateLimitOperationPoints,
39 IpSource,
40
41 FHIRDeleteLimit,
43}
44
45impl From<ServerEnvironmentVariables> for String {
46 fn from(value: ServerEnvironmentVariables) -> Self {
47 match value {
48 ServerEnvironmentVariables::CertificationDir => "CERTIFICATION_DIR".to_string(),
49 ServerEnvironmentVariables::AllowArtifactMutations => {
50 "ALLOW_ARTIFACT_MUTATIONS".to_string()
51 }
52 ServerEnvironmentVariables::DataBaseURL => "DATABASE_URL".to_string(),
53 ServerEnvironmentVariables::PGMaxConnections => "PG_MAX_CONNECTIONS".to_string(),
54 ServerEnvironmentVariables::ElasticSearchURL => "ELASTICSEARCH_URL".to_string(),
55 ServerEnvironmentVariables::ElasticSearchUsername => {
56 "ELASTICSEARCH_USERNAME".to_string()
57 }
58 ServerEnvironmentVariables::ElasticSearchPassword => {
59 "ELASTICSEARCH_PASSWORD".to_string()
60 }
61 ServerEnvironmentVariables::APIURI => "API_URI".to_string(),
62 ServerEnvironmentVariables::AdminAppRedirectURI => "ADMIN_APP_REDIRECT_URI".to_string(),
63 ServerEnvironmentVariables::SendGridAPIKey => "SG_API_KEY".to_string(),
64 ServerEnvironmentVariables::EmailFromAddress => "EMAIL_FROM".to_string(),
65 ServerEnvironmentVariables::MaxRequestBodySize => "MAX_REQUEST_BODY_SIZE".to_string(),
66 ServerEnvironmentVariables::RateLimitSubscriptions => {
67 "RATE_LIMIT_SUBSCRIPTIONS".to_string()
68 }
69 ServerEnvironmentVariables::RateLimitWindowInSeconds => {
70 "RATE_LIMIT_WINDOW_IN_SECONDS".to_string()
71 }
72 ServerEnvironmentVariables::RateLimitOperationPoints => {
73 "RATE_LIMIT_OPERATION_POINTS".to_string()
74 }
75 ServerEnvironmentVariables::IpSource => "IP_SOURCE".to_string(),
76 ServerEnvironmentVariables::FHIRDeleteLimit => "FHIR_DELETE_LIMIT".to_string(),
77 }
78 }
79}