maleo-foundation 0.3.11__tar.gz → 0.3.13__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/PKG-INFO +1 -1
  2. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/managers/client/maleo.py +1 -1
  3. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/managers/service.py +24 -10
  4. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/general/configurations/cache/redis.py +1 -1
  5. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/general/database.py +1 -18
  6. maleo_foundation-0.3.13/maleo_foundation/models/transfers/general/request.py +27 -0
  7. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/general/settings.py +13 -0
  8. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation.egg-info/PKG-INFO +1 -1
  9. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/pyproject.toml +1 -1
  10. maleo_foundation-0.3.11/maleo_foundation/models/transfers/general/request.py +0 -78
  11. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/README.md +0 -0
  12. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/__init__.py +0 -0
  13. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/authentication.py +0 -0
  14. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/authorization.py +0 -0
  15. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/client/__init__.py +0 -0
  16. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/client/manager.py +0 -0
  17. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/client/services/__init__.py +0 -0
  18. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/client/services/encryption/__init__.py +0 -0
  19. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/client/services/encryption/aes.py +0 -0
  20. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/client/services/encryption/rsa.py +0 -0
  21. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/client/services/hash/__init__.py +0 -0
  22. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/client/services/hash/bcrypt.py +0 -0
  23. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/client/services/hash/hmac.py +0 -0
  24. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/client/services/hash/sha256.py +0 -0
  25. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/client/services/key.py +0 -0
  26. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/client/services/signature.py +0 -0
  27. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/client/services/token.py +0 -0
  28. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/constants.py +0 -0
  29. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/enums.py +0 -0
  30. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/expanded_types/__init__.py +0 -0
  31. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/expanded_types/client.py +0 -0
  32. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/expanded_types/encryption/__init__.py +0 -0
  33. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/expanded_types/encryption/aes.py +0 -0
  34. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/expanded_types/encryption/rsa.py +0 -0
  35. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/expanded_types/general.py +0 -0
  36. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/expanded_types/hash.py +0 -0
  37. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/expanded_types/key.py +0 -0
  38. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/expanded_types/repository.py +0 -0
  39. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/expanded_types/service.py +0 -0
  40. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/expanded_types/signature.py +0 -0
  41. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/expanded_types/token.py +0 -0
  42. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/extended_types.py +0 -0
  43. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/managers/__init__.py +0 -0
  44. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/managers/cache.py +0 -0
  45. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/managers/client/__init__.py +0 -0
  46. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/managers/client/base.py +0 -0
  47. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/managers/client/google/__init__.py +0 -0
  48. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/managers/client/google/base.py +0 -0
  49. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/managers/client/google/parameter.py +0 -0
  50. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/managers/client/google/secret.py +0 -0
  51. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/managers/client/google/storage.py +0 -0
  52. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/managers/client/google/subscription.py +0 -0
  53. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/managers/configuration.py +0 -0
  54. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/managers/credential.py +0 -0
  55. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/managers/db.py +0 -0
  56. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/managers/middleware.py +0 -0
  57. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/middlewares/authentication.py +0 -0
  58. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/middlewares/base.py +0 -0
  59. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/middlewares/cors.py +0 -0
  60. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/__init__.py +0 -0
  61. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/responses.py +0 -0
  62. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/schemas/__init__.py +0 -0
  63. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/schemas/encryption.py +0 -0
  64. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/schemas/general.py +0 -0
  65. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/schemas/hash.py +0 -0
  66. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/schemas/key.py +0 -0
  67. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/schemas/parameter.py +0 -0
  68. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/schemas/result.py +0 -0
  69. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/schemas/signature.py +0 -0
  70. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/schemas/token.py +0 -0
  71. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/table.py +0 -0
  72. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/__init__.py +0 -0
  73. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/general/__init__.py +0 -0
  74. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/general/configurations/__init__.py +0 -0
  75. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/general/configurations/cache/__init__.py +0 -0
  76. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/general/configurations/client/__init__.py +0 -0
  77. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/general/configurations/client/maleo.py +0 -0
  78. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/general/configurations/database.py +0 -0
  79. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/general/configurations/middleware.py +0 -0
  80. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/general/configurations/service.py +0 -0
  81. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/general/credentials.py +0 -0
  82. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/general/key.py +0 -0
  83. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/general/signature.py +0 -0
  84. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/general/token.py +0 -0
  85. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/parameters/__init__.py +0 -0
  86. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/parameters/client.py +0 -0
  87. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/parameters/encryption/__init__.py +0 -0
  88. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/parameters/encryption/aes.py +0 -0
  89. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/parameters/encryption/rsa.py +0 -0
  90. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/parameters/general.py +0 -0
  91. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/parameters/hash/__init__.py +0 -0
  92. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/parameters/hash/bcrypt.py +0 -0
  93. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/parameters/hash/hmac.py +0 -0
  94. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/parameters/hash/sha256.py +0 -0
  95. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/parameters/key.py +0 -0
  96. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/parameters/service.py +0 -0
  97. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/parameters/signature.py +0 -0
  98. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/parameters/token.py +0 -0
  99. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/results/__init__.py +0 -0
  100. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/results/client/__init__.py +0 -0
  101. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/results/client/controllers/__init__.py +0 -0
  102. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/results/client/controllers/http.py +0 -0
  103. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/results/client/service.py +0 -0
  104. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/results/encryption/__init__.py +0 -0
  105. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/results/encryption/aes.py +0 -0
  106. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/results/encryption/rsa.py +0 -0
  107. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/results/hash.py +0 -0
  108. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/results/key.py +0 -0
  109. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/results/service/__init__.py +0 -0
  110. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/results/service/controllers/__init__.py +0 -0
  111. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/results/service/controllers/rest.py +0 -0
  112. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/results/service/general.py +0 -0
  113. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/results/service/repository.py +0 -0
  114. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/results/signature.py +0 -0
  115. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/models/transfers/results/token.py +0 -0
  116. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/rest_controller_result.py +0 -0
  117. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/types.py +0 -0
  118. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/__init__.py +0 -0
  119. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/cache.py +0 -0
  120. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/cleaner.py +0 -0
  121. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/client.py +0 -0
  122. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/controller.py +0 -0
  123. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/dependencies/__init__.py +0 -0
  124. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/dependencies/auth.py +0 -0
  125. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/dependencies/context.py +0 -0
  126. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/exceptions.py +0 -0
  127. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/extractor.py +0 -0
  128. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/formatter/__init__.py +0 -0
  129. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/formatter/case.py +0 -0
  130. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/loaders/__init__.py +0 -0
  131. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/loaders/credential/__init__.py +0 -0
  132. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/loaders/credential/google.py +0 -0
  133. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/loaders/json.py +0 -0
  134. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/loaders/key/__init__.py +0 -0
  135. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/loaders/key/rsa.py +0 -0
  136. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/loaders/yaml.py +0 -0
  137. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/logging.py +0 -0
  138. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/merger.py +0 -0
  139. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/query.py +0 -0
  140. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/repository.py +0 -0
  141. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation/utils/searcher.py +0 -0
  142. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation.egg-info/SOURCES.txt +0 -0
  143. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation.egg-info/dependency_links.txt +0 -0
  144. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation.egg-info/requires.txt +0 -0
  145. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/maleo_foundation.egg-info/top_level.txt +0 -0
  146. {maleo_foundation-0.3.11 → maleo_foundation-0.3.13}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: maleo_foundation
3
- Version: 0.3.11
3
+ Version: 0.3.13
4
4
  Summary: Foundation package for Maleo
5
5
  Author-email: Agra Bima Yuda <agra@nexmedis.com>
6
6
  License: MIT
@@ -63,7 +63,7 @@ class MaleoClientManager(ClientManager):
63
63
  key,
64
64
  name,
65
65
  service_manager.log_config,
66
- service_manager.configs.service.key
66
+ service_manager.configurations.service.key
67
67
  )
68
68
 
69
69
  @property
@@ -72,31 +72,43 @@ class ServiceManager:
72
72
  @property
73
73
  def settings(self) -> Settings:
74
74
  return self._settings
75
-
75
+
76
76
  @property
77
77
  def log_config(self) -> SimpleConfig:
78
78
  return self._log_config
79
-
79
+
80
80
  @property
81
81
  def google_credentials(self) -> Credentials:
82
82
  return self._credential_manager.google_credentials
83
-
83
+
84
84
  @property
85
85
  def secret_manager(self) -> GoogleSecretManager:
86
86
  return self._credential_manager.secret_manager
87
-
87
+
88
88
  @property
89
89
  def maleo_credentials(self) -> MaleoCredentials:
90
90
  return self._credential_manager.maleo_credentials
91
-
91
+
92
92
  @property
93
93
  def configurations(self) -> Configurations:
94
94
  return self._configuration_manager.configurations
95
95
 
96
96
  def _load_keys(self) -> None:
97
- password = self.secret_manager.get(name="maleo-key-password")
98
- private = self.secret_manager.get(name="maleo-private-key")
99
- public = self.secret_manager.get(name="maleo-public-key")
97
+ if self.settings.KEY_PASSWORD is not None:
98
+ password = self.settings.KEY_PASSWORD
99
+ else:
100
+ password = self.secret_manager.get(name="maleo-key-password")
101
+
102
+ if self.settings.PRIVATE_KEY is not None:
103
+ private = self.settings.PRIVATE_KEY
104
+ else:
105
+ private = self.secret_manager.get(name="maleo-private-key")
106
+
107
+ if self.settings.PUBLIC_KEY is not None:
108
+ public = self.settings.PUBLIC_KEY
109
+ else:
110
+ public = self.secret_manager.get(name="maleo-public-key")
111
+
100
112
  self._keys = BaseGeneralSchemas.RSAKeys(
101
113
  password=password,
102
114
  private=private,
@@ -231,12 +243,14 @@ class ServiceManager:
231
243
  def create_app(
232
244
  self,
233
245
  router: APIRouter,
234
- lifespan: Optional[Lifespan[AppType]] = None
246
+ lifespan: Optional[Lifespan[AppType]] = None,
247
+ version: str = "unknown"
235
248
  ) -> FastAPI:
236
249
  self._loggers.application.info("Creating FastAPI application")
237
- root_path = "" if self._settings.ENVIRONMENT == "local" else f"/{self.configurations.service.key.removeprefix("maleo-")}"
250
+ root_path = self._settings.ROOT_PATH
238
251
  self._app = FastAPI(
239
252
  title=self.configurations.service.name,
253
+ version=version,
240
254
  lifespan=lifespan,
241
255
  root_path=root_path
242
256
  )
@@ -21,5 +21,5 @@ class RedisCacheConfigurations(BaseModel):
21
21
  port: int = Field(6379, description="Redis instance's port")
22
22
  db: int = Field(0, description="Redis instance's db")
23
23
  password: BaseTypes.OptionalString = Field(None, description="AUTH password")
24
- decode_responses: bool = Field(False, description="Whether to decode responses")
24
+ decode_responses: bool = Field(True, description="Whether to decode responses")
25
25
  health_check_interval: int = Field(30, description="Health check interval")
@@ -18,21 +18,4 @@ class DatabaseAccess(BaseModel):
18
18
  service: BaseEnums.Service = Field(..., description="Service key")
19
19
  table: str = Field(..., description="Table name")
20
20
  data_id: int = Field(..., ge=1, description="Data Id")
21
- data: BaseTypes.StringToAnyDict = Field(..., description="Data")
22
-
23
- def to_google_pubsub_object(self) -> BaseTypes.StringToAnyDict:
24
- result = {
25
- "accessed_at": self.accessed_at.isoformat(),
26
- "request_id": str(self.request_id),
27
- "request_context": self.request_context.to_google_pubsub_object(),
28
- "organization_id": None if self.organization_id is None else {"int": self.organization_id},
29
- "user_id": self.user_id,
30
- "token_string": None if self.token_string is None else {"string": self.token_string},
31
- "token_payload": None if self.token_payload is None else {"TokenPayload": self.token_payload.to_google_pubsub_object()},
32
- "service": self.service.replace("-", "_"),
33
- "table": self.table,
34
- "data_id": self.data_id,
35
- "data": self.data
36
- }
37
-
38
- return result
21
+ data: BaseTypes.StringToAnyDict = Field(..., description="Data")
@@ -0,0 +1,27 @@
1
+ from __future__ import annotations
2
+ from datetime import datetime, timezone
3
+ from pydantic import BaseModel, Field
4
+ from uuid import UUID
5
+ from maleo_foundation.types import BaseTypes
6
+
7
+ class RequestContext(BaseModel):
8
+ request_id: UUID = Field(..., description="Unique identifier for tracing the request")
9
+ requested_at: datetime = Field(datetime.now(tz=timezone.utc), description="Request timestamp")
10
+ method: str = Field(..., description="Request's method")
11
+ url: str = Field(..., description="Request's URL")
12
+ path_params: BaseTypes.OptionalStringToAnyDict = Field(None, description="Request's path parameters")
13
+ query_params: BaseTypes.OptionalString = Field(None, description="Request's query parameters")
14
+ ip_address: str = Field("unknown", description="Client's IP address")
15
+ is_internal: BaseTypes.OptionalBoolean = Field(None, description="True if IP is internal")
16
+ user_agent: BaseTypes.OptionalString = Field(None, description="User-Agent string")
17
+ ua_browser: BaseTypes.OptionalString = Field(None, description="Browser info from sec-ch-ua")
18
+ ua_mobile: BaseTypes.OptionalString = Field(None, description="Is mobile device?")
19
+ platform: BaseTypes.OptionalString = Field(None, description="Client platform or OS")
20
+ referer: BaseTypes.OptionalString = Field(None, description="Referrer URL")
21
+ origin: BaseTypes.OptionalString = Field(None, description="Origin of the request")
22
+ host: BaseTypes.OptionalString = Field(None, description="Host header from request")
23
+ forwarded_proto: BaseTypes.OptionalString = Field(None, description="Forwarded protocol (http/https)")
24
+ language: BaseTypes.OptionalString = Field(None, description="Accepted languages from client")
25
+
26
+ class Config:
27
+ arbitrary_types_allowed = True
@@ -7,6 +7,7 @@ from maleo_foundation.types import BaseTypes
7
7
  class Settings(BaseSettings):
8
8
  ENVIRONMENT: BaseEnums.EnvironmentType = Field(..., description="Environment")
9
9
  SERVICE_KEY: str = Field(..., description="Service's key")
10
+ ROOT_PATH: str = Field("", description="Application's root path")
10
11
  GOOGLE_CREDENTIALS_PATH: str = Field(
11
12
  "/credentials/maleo-google-service-account.json",
12
13
  description="Internal credential's file path"
@@ -27,6 +28,18 @@ class Settings(BaseSettings):
27
28
  None,
28
29
  description="Service's runtime configurations path"
29
30
  )
31
+ KEY_PASSWORD: BaseTypes.OptionalString = Field(
32
+ None,
33
+ description="Key's password"
34
+ )
35
+ PRIVATE_KEY: BaseTypes.OptionalString = Field(
36
+ None,
37
+ description="Private key"
38
+ )
39
+ PUBLIC_KEY: BaseTypes.OptionalString = Field(
40
+ None,
41
+ description="Public key"
42
+ )
30
43
 
31
44
  @classmethod
32
45
  @model_validator(mode="before")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: maleo_foundation
3
- Version: 0.3.11
3
+ Version: 0.3.13
4
4
  Summary: Foundation package for Maleo
5
5
  Author-email: Agra Bima Yuda <agra@nexmedis.com>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "maleo_foundation"
7
- version = "0.3.11"
7
+ version = "0.3.13"
8
8
  description = "Foundation package for Maleo"
9
9
  authors = [
10
10
  { name = "Agra Bima Yuda", email = "agra@nexmedis.com" }
@@ -1,78 +0,0 @@
1
- from __future__ import annotations
2
- from datetime import datetime, timezone
3
- from pydantic import BaseModel, Field, field_serializer
4
- from starlette.datastructures import QueryParams
5
- from typing import Dict, Any
6
- from uuid import UUID
7
- from maleo_foundation.types import BaseTypes
8
-
9
- class RequestContext(BaseModel):
10
- request_id: UUID = Field(..., description="Unique identifier for tracing the request")
11
- requested_at: datetime = Field(datetime.now(tz=timezone.utc), description="Request timestamp")
12
- method: str = Field(..., description="Request's method")
13
- url: str = Field(..., description="Request's URL")
14
- path_params: BaseTypes.OptionalStringToAnyDict = Field(None, description="Request's path parameters")
15
- query_params: BaseTypes.OptionalString = Field(None, description="Request's query parameters")
16
- ip_address: str = Field("unknown", description="Client's IP address")
17
- is_internal: BaseTypes.OptionalBoolean = Field(None, description="True if IP is internal")
18
- user_agent: BaseTypes.OptionalString = Field(None, description="User-Agent string")
19
- ua_browser: BaseTypes.OptionalString = Field(None, description="Browser info from sec-ch-ua")
20
- ua_mobile: BaseTypes.OptionalString = Field(None, description="Is mobile device?")
21
- platform: BaseTypes.OptionalString = Field(None, description="Client platform or OS")
22
- referer: BaseTypes.OptionalString = Field(None, description="Referrer URL")
23
- origin: BaseTypes.OptionalString = Field(None, description="Origin of the request")
24
- host: BaseTypes.OptionalString = Field(None, description="Host header from request")
25
- forwarded_proto: BaseTypes.OptionalString = Field(None, description="Forwarded protocol (http/https)")
26
- language: BaseTypes.OptionalString = Field(None, description="Accepted languages from client")
27
-
28
- class Config:
29
- arbitrary_types_allowed = True
30
-
31
- @field_serializer('query_params', when_used='json')
32
- def serialize_query_params(self, qp: QueryParams, _info) -> str:
33
- return str(qp)
34
-
35
- def to_google_pubsub_object(self) -> Dict[str, Any]:
36
- result = {
37
- "request_id": str(self.request_id),
38
- "requested_at": self.requested_at.isoformat(),
39
- "method": self.method,
40
- "url": self.url,
41
- "path_params": None if self.path_params is None else {"map": self.path_params},
42
- "query_params": None if self.query_params is None else {"string": self.query_params},
43
- "ip_address": self.ip_address,
44
- "is_internal": None if self.is_internal is None else {"boolean": self.is_internal},
45
- "user_agent": None if self.user_agent is None else {"string": self.user_agent},
46
- "ua_browser": None if self.ua_browser is None else {"string": self.ua_browser},
47
- "ua_mobile": None if self.ua_mobile is None else {"string": self.ua_mobile},
48
- "platform": None if self.platform is None else {"string": self.platform},
49
- "referer": None if self.referer is None else {"array": self.referer},
50
- "origin": None if self.origin is None else {"array": self.origin},
51
- "host": None if self.host is None else {"array": self.host},
52
- "forwarded_proto": None if self.forwarded_proto is None else {"array": self.forwarded_proto},
53
- "language": None if self.language is None else {"array": self.language}
54
- }
55
-
56
- return result
57
-
58
- @classmethod
59
- def from_google_pubsub_object(cls, obj:Dict[str, Any]):
60
- return cls(
61
- request_id = UUID(obj["request_id"]),
62
- requested_at = datetime.fromisoformat(obj["requested_at"]),
63
- method = obj["method"],
64
- url = obj["url"],
65
- path_params = None if obj["path_params`"] is None else obj["path_params"]["map"],
66
- query_params = None if obj["query_params"] is None else obj["query_params"]["string"],
67
- ip_address = obj["ip_address"],
68
- is_internal = None if obj["is_internal"] is None else bool(obj["is_internal"]["boolean"]),
69
- user_agent = None if obj["user_agent"] is None else obj["user_agent"]["string"],
70
- ua_browser = None if obj["ua_browser"] is None else obj["ua_browser"]["string"],
71
- ua_mobile = None if obj["ua_mobile"] is None else obj["ua_mobile"]["string"],
72
- platform = None if obj["platform"] is None else obj["platform"]["string"],
73
- referer = None if obj["referer"] is None else obj["referer"]["string"],
74
- origin = None if obj["origin"] is None else obj["origin"]["string"],
75
- host = None if obj["host"] is None else obj["host"]["string"],
76
- forwarded_proto = None if obj["forwarded_proto"] is None else obj["forwarded_proto"]["string"],
77
- language = None if obj["language"] is None else obj["language"]["string"],
78
- )