maleo-foundation 0.1.22__tar.gz → 0.1.24__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 (94) hide show
  1. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/PKG-INFO +1 -1
  2. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/enums.py +5 -0
  3. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/managers/middleware.py +4 -13
  4. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/managers/service.py +18 -1
  5. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/middlewares/authentication.py +7 -4
  6. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation.egg-info/PKG-INFO +1 -1
  7. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/pyproject.toml +1 -1
  8. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/README.md +0 -0
  9. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/__init__.py +0 -0
  10. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/authentication.py +0 -0
  11. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/clients/__init__.py +0 -0
  12. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/clients/general/__init__.py +0 -0
  13. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/clients/general/http.py +0 -0
  14. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/clients/google/__init__.py +0 -0
  15. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/clients/google/base.py +0 -0
  16. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/clients/google/cloud/__init__.py +0 -0
  17. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/clients/google/cloud/base.py +0 -0
  18. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/clients/google/cloud/logging.py +0 -0
  19. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/clients/google/cloud/secret.py +0 -0
  20. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/clients/google/cloud/storage.py +0 -0
  21. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/clients/google/secret.py +0 -0
  22. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/clients/google/storage.py +0 -0
  23. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/clients/utils/__init__.py +0 -0
  24. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/clients/utils/logger.py +0 -0
  25. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/constants.py +0 -0
  26. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/db/__init__.py +0 -0
  27. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/db/engine.py +0 -0
  28. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/db/manager.py +0 -0
  29. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/db/session.py +0 -0
  30. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/db/table.py +0 -0
  31. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/expanded_types/__init__.py +0 -0
  32. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/expanded_types/client.py +0 -0
  33. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/expanded_types/general.py +0 -0
  34. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/expanded_types/query.py +0 -0
  35. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/expanded_types/service.py +0 -0
  36. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/expanded_types/token.py +0 -0
  37. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/extended_types.py +0 -0
  38. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/managers/__init__.py +0 -0
  39. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/managers/client/__init__.py +0 -0
  40. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/managers/client/base.py +0 -0
  41. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/managers/client/google/__init__.py +0 -0
  42. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/managers/client/google/base.py +0 -0
  43. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/managers/client/google/secret.py +0 -0
  44. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/managers/client/google/storage.py +0 -0
  45. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/managers/client/http.py +0 -0
  46. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/managers/client/maleo.py +0 -0
  47. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/managers/db.py +0 -0
  48. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/middlewares/__init__.py +0 -0
  49. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/middlewares/base.py +0 -0
  50. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/middlewares/cors.py +0 -0
  51. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/__init__.py +0 -0
  52. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/responses.py +0 -0
  53. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/schemas/__init__.py +0 -0
  54. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/schemas/general.py +0 -0
  55. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/schemas/parameter.py +0 -0
  56. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/schemas/result.py +0 -0
  57. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/schemas/token.py +0 -0
  58. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/transfers/__init__.py +0 -0
  59. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/transfers/general/__init__.py +0 -0
  60. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/transfers/general/token.py +0 -0
  61. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/transfers/parameters/__init__.py +0 -0
  62. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/transfers/parameters/client.py +0 -0
  63. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/transfers/parameters/general.py +0 -0
  64. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/transfers/parameters/service.py +0 -0
  65. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/transfers/parameters/token.py +0 -0
  66. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/transfers/results/__init__.py +0 -0
  67. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/transfers/results/client/__init__.py +0 -0
  68. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/transfers/results/client/controllers/__init__.py +0 -0
  69. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/transfers/results/client/controllers/http.py +0 -0
  70. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/transfers/results/client/service.py +0 -0
  71. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/transfers/results/service/__init__.py +0 -0
  72. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/transfers/results/service/controllers/__init__.py +0 -0
  73. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/transfers/results/service/controllers/rest.py +0 -0
  74. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/transfers/results/service/general.py +0 -0
  75. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/transfers/results/service/query.py +0 -0
  76. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/models/transfers/results/token.py +0 -0
  77. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/services/__init__.py +0 -0
  78. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/services/token.py +0 -0
  79. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/types.py +0 -0
  80. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/utils/__init__.py +0 -0
  81. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/utils/controller.py +0 -0
  82. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/utils/exceptions.py +0 -0
  83. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/utils/extractor.py +0 -0
  84. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/utils/formatter/__init__.py +0 -0
  85. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/utils/formatter/case.py +0 -0
  86. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/utils/keyloader.py +0 -0
  87. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/utils/logger.py +0 -0
  88. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/utils/logging.py +0 -0
  89. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation/utils/query.py +0 -0
  90. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation.egg-info/SOURCES.txt +0 -0
  91. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation.egg-info/dependency_links.txt +0 -0
  92. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation.egg-info/requires.txt +0 -0
  93. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/maleo_foundation.egg-info/top_level.txt +0 -0
  94. {maleo_foundation-0.1.22 → maleo_foundation-0.1.24}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: maleo_foundation
3
- Version: 0.1.22
3
+ Version: 0.1.24
4
4
  Summary: Foundation package for Maleo
5
5
  Author-email: Agra Bima Yuda <agra@nexmedis.com>
6
6
  License: MIT
@@ -3,6 +3,11 @@ from enum import IntEnum, StrEnum, Enum
3
3
  from fastapi import responses
4
4
 
5
5
  class BaseEnums:
6
+ class EnvironmentType(StrEnum):
7
+ LOCAL = "local"
8
+ STAGING = "staging"
9
+ PRODUCTION = "production"
10
+
6
11
  class StatusType(StrEnum):
7
12
  DELETED = "deleted"
8
13
  INACTIVE = "inactive"
@@ -1,7 +1,7 @@
1
1
  from fastapi import FastAPI
2
2
  from pydantic import BaseModel, Field
3
3
  from typing import List, Optional
4
- from maleo_foundation.middlewares.authentication import Backend, add_authentication_middleware
4
+ from maleo_foundation.middlewares.authentication import add_authentication_middleware
5
5
  from maleo_foundation.middlewares.base import add_base_middleware, RequestProcessor
6
6
  from maleo_foundation.middlewares.cors import add_cors_middleware
7
7
  from maleo_foundation.utils.logging import MiddlewareLogger
@@ -46,16 +46,11 @@ class MiddlewareManager:
46
46
  self,
47
47
  loggers:MiddlewareLoggers,
48
48
  key:str,
49
- authentication_backend:Optional[Backend] = None,
50
49
  request_processor:Optional[RequestProcessor] = None
51
50
  ):
52
51
  self.add_cors()
53
52
  self.add_base(logger=loggers.base, request_processor=request_processor)
54
- if authentication_backend is None:
55
- self._authentication_backend = Backend(logger=loggers.authentication, key=key)
56
- else:
57
- self._authentication_backend = authentication_backend
58
- self.add_authentication(backend=self._authentication_backend)
53
+ self.add_authentication(logger=loggers.authentication, key=key)
59
54
 
60
55
  def add_cors(self) -> None:
61
56
  add_cors_middleware(
@@ -82,9 +77,5 @@ class MiddlewareManager:
82
77
  request_processor=request_processor
83
78
  )
84
79
 
85
- def add_authentication(self, logger:MiddlewareLogger, key:str, backend:Optional[Backend] = None):
86
- if backend is None:
87
- self._authentication_backend = Backend(logger=logger, key=key)
88
- else:
89
- self._authentication_backend = backend
90
- add_authentication_middleware(app=self._app, backend=self._authentication_backend)
80
+ def add_authentication(self, logger:MiddlewareLogger, key:str):
81
+ add_authentication_middleware(app=self._app, logger=logger, key=key)
@@ -33,6 +33,7 @@ class LogConfig(BaseModel):
33
33
  arbitrary_types_allowed=True
34
34
 
35
35
  class Settings(BaseSettings):
36
+ ENVIRONMENT:BaseEnums.EnvironmentType = Field(..., description="Environment")
36
37
  GOOGLE_CREDENTIALS_PATH:str = Field("/creds/maleo-google-service-account.json", description="Internal credential's file path")
37
38
  INTERNAL_CREDENTIALS_PATH:str = Field("/creds/maleo-internal-service-account.json", description="Internal credential's file path")
38
39
  PRIVATE_KEY_PATH:str = Field("/keys/maleo-private-key.pem", description="Maleo's private key path")
@@ -383,7 +384,23 @@ class ServiceManager:
383
384
  return self._app
384
385
 
385
386
  def run_app(self) -> None:
386
- uvicorn.run(self._app, host=self._configs.service.host, port=self._configs.service.port, reload=True)
387
+ if self._settings.ENVIRONMENT == BaseEnums.EnvironmentType.LOCAL:
388
+ import importlib.util
389
+ import sys
390
+ # Get the module path and add it to sys.path if needed
391
+ spec = importlib.util.find_spec("app")
392
+ if spec and spec.origin:
393
+ module_path = os.path.dirname(os.path.dirname(spec.origin))
394
+ if module_path not in sys.path:
395
+ sys.path.insert(0, module_path)
396
+
397
+ # Create the import string for uvicorn
398
+ app_import_string = "app.main:app"
399
+
400
+ # Run with reload enabled
401
+ uvicorn.run(app_import_string, host=self._configs.service.host, port=self._configs.service.port, reload=True)
402
+ else:
403
+ uvicorn.run(self._app, host=self._configs.service.host, port=self._configs.service.port)
387
404
 
388
405
  async def dispose(self) -> None:
389
406
  self._loggers.application.info("Disposing service manager")
@@ -36,7 +36,7 @@ class Backend(AuthenticationBackend):
36
36
  self._logger.info(f"Authentication - Request | IP: {client_ip} | URL: {conn.url.path} - Result | Username: {decode_token_result.data.u_u} | Email: {decode_token_result.data.u_e}")
37
37
  return Credentials(token=token), User(authenticated=True, username=decode_token_result.data.u_u, email=decode_token_result.data.u_e)
38
38
 
39
- def add_authentication_middleware(app:FastAPI, backend:Backend) -> None:
39
+ def add_authentication_middleware(app:FastAPI, logger:MiddlewareLogger, key:str) -> None:
40
40
  """
41
41
  Adds Authentication middleware to the FastAPI application.
42
42
 
@@ -44,8 +44,11 @@ def add_authentication_middleware(app:FastAPI, backend:Backend) -> None:
44
44
  app: FastAPI
45
45
  The FastAPI application instance to which the middleware will be added.
46
46
 
47
- backend: Backend
48
- The authentication middleware backend to be used.
47
+ logger: MiddlewareLogger
48
+ Authentication middleware logger to be used.
49
+
50
+ key: str
51
+ Public key to be used for token decoding.
49
52
 
50
53
  Returns:
51
54
  None: The function modifies the FastAPI app by adding Base middleware.
@@ -59,4 +62,4 @@ def add_authentication_middleware(app:FastAPI, backend:Backend) -> None:
59
62
  add_authentication_middleware(app=app, limit=10, window=1, cleanup_interval=60, ip_timeout=300)
60
63
  ```
61
64
  """
62
- app.add_middleware(AuthenticationMiddleware, backend=backend)
65
+ app.add_middleware(AuthenticationMiddleware, backend=Backend(logger=logger, key=key))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: maleo_foundation
3
- Version: 0.1.22
3
+ Version: 0.1.24
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.1.22"
7
+ version = "0.1.24"
8
8
  description = "Foundation package for Maleo"
9
9
  authors = [
10
10
  { name = "Agra Bima Yuda", email = "agra@nexmedis.com" }