shaapi 0.1.0__py3-none-any.whl

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 (141) hide show
  1. shaapi/__init__.py +3 -0
  2. shaapi/cli.py +97 -0
  3. shaapi/generator.py +114 -0
  4. shaapi/template/.dockerignore +37 -0
  5. shaapi/template/.env.template +59 -0
  6. shaapi/template/.gitattributes +12 -0
  7. shaapi/template/.gitignore +170 -0
  8. shaapi/template/.gitlab-ci.yml +89 -0
  9. shaapi/template/Dockerfile +59 -0
  10. shaapi/template/LICENSE +21 -0
  11. shaapi/template/README.md +206 -0
  12. shaapi/template/backend/.gitignore +164 -0
  13. shaapi/template/backend/__init__.py +0 -0
  14. shaapi/template/backend/alembic/README +1 -0
  15. shaapi/template/backend/alembic/env.py +102 -0
  16. shaapi/template/backend/alembic/script.py.mako +26 -0
  17. shaapi/template/backend/alembic/versions/2026_06_08_1024-64524c63b666_initial.py +143 -0
  18. shaapi/template/backend/alembic.ini +117 -0
  19. shaapi/template/backend/app/__init__.py +55 -0
  20. shaapi/template/backend/app/admin/__init__.py +1 -0
  21. shaapi/template/backend/app/admin/api/v1/__init__.py +0 -0
  22. shaapi/template/backend/app/admin/api/v1/auth.py +59 -0
  23. shaapi/template/backend/app/admin/api/v1/casbin.py +218 -0
  24. shaapi/template/backend/app/admin/api/v1/login_log.py +63 -0
  25. shaapi/template/backend/app/admin/api/v1/opera_log.py +61 -0
  26. shaapi/template/backend/app/admin/api/v1/role.py +108 -0
  27. shaapi/template/backend/app/admin/api/v1/user.py +47 -0
  28. shaapi/template/backend/app/admin/schema/casbin_rule.py +45 -0
  29. shaapi/template/backend/app/admin/schema/login_log.py +36 -0
  30. shaapi/template/backend/app/admin/schema/opera_log.py +43 -0
  31. shaapi/template/backend/app/admin/schema/role.py +36 -0
  32. shaapi/template/backend/app/admin/schema/sso.py +37 -0
  33. shaapi/template/backend/app/admin/schema/token.py +74 -0
  34. shaapi/template/backend/app/admin/schema/user.py +93 -0
  35. shaapi/template/backend/app/admin/service/auth_service.py +233 -0
  36. shaapi/template/backend/app/admin/service/casbin_service.py +135 -0
  37. shaapi/template/backend/app/admin/service/login_log_service.py +62 -0
  38. shaapi/template/backend/app/admin/service/opera_log_service.py +31 -0
  39. shaapi/template/backend/app/admin/service/role_service.py +79 -0
  40. shaapi/template/backend/app/admin/service/secure_token_service.py +60 -0
  41. shaapi/template/backend/app/admin/service/user_service.py +153 -0
  42. shaapi/template/backend/app/api.py +11 -0
  43. shaapi/template/backend/common/__init__.py +0 -0
  44. shaapi/template/backend/common/cloud_storage/__init__.py +11 -0
  45. shaapi/template/backend/common/cloud_storage/cloud_storage.py +180 -0
  46. shaapi/template/backend/common/dataclasses.py +52 -0
  47. shaapi/template/backend/common/email_conf/email.py +105 -0
  48. shaapi/template/backend/common/enums.py +144 -0
  49. shaapi/template/backend/common/exception/__init__.py +0 -0
  50. shaapi/template/backend/common/exception/errors.py +87 -0
  51. shaapi/template/backend/common/exception/exception_handler.py +280 -0
  52. shaapi/template/backend/common/log.py +123 -0
  53. shaapi/template/backend/common/model.py +68 -0
  54. shaapi/template/backend/common/pagination.py +83 -0
  55. shaapi/template/backend/common/response/__init__.py +0 -0
  56. shaapi/template/backend/common/response/response_code.py +158 -0
  57. shaapi/template/backend/common/response/response_schema.py +110 -0
  58. shaapi/template/backend/common/schema.py +144 -0
  59. shaapi/template/backend/common/security/jwt.py +203 -0
  60. shaapi/template/backend/common/security/rbac.py +98 -0
  61. shaapi/template/backend/common/security/sec_token.py +6 -0
  62. shaapi/template/backend/common/socketio/action.py +11 -0
  63. shaapi/template/backend/common/socketio/server.py +50 -0
  64. shaapi/template/backend/common/sso/base.py +69 -0
  65. shaapi/template/backend/common/sso/google.py +127 -0
  66. shaapi/template/backend/core/conf.py +208 -0
  67. shaapi/template/backend/core/path_conf.py +24 -0
  68. shaapi/template/backend/core/registrar.py +195 -0
  69. shaapi/template/backend/crud/__init__.py +1 -0
  70. shaapi/template/backend/crud/crud_base.py +35 -0
  71. shaapi/template/backend/crud/crud_casbin.py +46 -0
  72. shaapi/template/backend/crud/crud_login_log.py +58 -0
  73. shaapi/template/backend/crud/crud_opera_log.py +58 -0
  74. shaapi/template/backend/crud/crud_role.py +128 -0
  75. shaapi/template/backend/crud/crud_user.py +267 -0
  76. shaapi/template/backend/database/__init__.py +0 -0
  77. shaapi/template/backend/database/db_postgres.py +125 -0
  78. shaapi/template/backend/database/db_redis.py +62 -0
  79. shaapi/template/backend/entrypoint-api.sh +19 -0
  80. shaapi/template/backend/lang/en/app.py +18 -0
  81. shaapi/template/backend/lang/en/auth.py +10 -0
  82. shaapi/template/backend/lang/fr/app.py +18 -0
  83. shaapi/template/backend/lang/fr/auth.py +10 -0
  84. shaapi/template/backend/main.py +54 -0
  85. shaapi/template/backend/middleware/__init__.py +1 -0
  86. shaapi/template/backend/middleware/access_middleware.py +19 -0
  87. shaapi/template/backend/middleware/i18n_middleware.py +19 -0
  88. shaapi/template/backend/middleware/jwt_auth_middleware.py +73 -0
  89. shaapi/template/backend/middleware/opera_log_middleware.py +179 -0
  90. shaapi/template/backend/middleware/state_middleware.py +26 -0
  91. shaapi/template/backend/models/__init__.py +10 -0
  92. shaapi/template/backend/models/associations.py +20 -0
  93. shaapi/template/backend/models/casbin_rule.py +30 -0
  94. shaapi/template/backend/models/login_log.py +28 -0
  95. shaapi/template/backend/models/opera_log.py +36 -0
  96. shaapi/template/backend/models/role.py +27 -0
  97. shaapi/template/backend/models/user.py +30 -0
  98. shaapi/template/backend/seeder/json/admin.json +15 -0
  99. shaapi/template/backend/seeder/json/user.json +15 -0
  100. shaapi/template/backend/seeder/run.py +34 -0
  101. shaapi/template/backend/static/ip2region.xdb +0 -0
  102. shaapi/template/backend/templates/build/meet.html +169 -0
  103. shaapi/template/backend/templates/build/new_account.html +373 -0
  104. shaapi/template/backend/templates/build/reset-password.html +170 -0
  105. shaapi/template/backend/templates/build/test_email.html +25 -0
  106. shaapi/template/backend/templates/build/welcome-one-1.html +160 -0
  107. shaapi/template/backend/templates/build/welcome-one.html +178 -0
  108. shaapi/template/backend/templates/build/welcome-two.html +234 -0
  109. shaapi/template/backend/templates/index.html +0 -0
  110. shaapi/template/backend/templates/src/new_account.mjml +15 -0
  111. shaapi/template/backend/templates/src/reset_password.mjml +19 -0
  112. shaapi/template/backend/templates/src/test_email.mjml +11 -0
  113. shaapi/template/backend/templates/ws/ws.html +70 -0
  114. shaapi/template/backend/utils/demo_site.py +18 -0
  115. shaapi/template/backend/utils/encrypt.py +108 -0
  116. shaapi/template/backend/utils/health_check.py +34 -0
  117. shaapi/template/backend/utils/prometheus.py +135 -0
  118. shaapi/template/backend/utils/request_parse.py +110 -0
  119. shaapi/template/backend/utils/serializers.py +75 -0
  120. shaapi/template/backend/utils/timezone.py +51 -0
  121. shaapi/template/backend/utils/trace_id.py +7 -0
  122. shaapi/template/backend/utils/translator.py +28 -0
  123. shaapi/template/devops/scripts/deploy.sh +7 -0
  124. shaapi/template/devops/scripts/setup_env.sh +62 -0
  125. shaapi/template/docker-compose.monitoring.yml +63 -0
  126. shaapi/template/docker-compose.override.yml +12 -0
  127. shaapi/template/docker-compose.yml +90 -0
  128. shaapi/template/docker-run.sh +99 -0
  129. shaapi/template/etc/dashboards/fastapi-observability.json +1044 -0
  130. shaapi/template/etc/dashboards.yaml +10 -0
  131. shaapi/template/etc/grafana/datasource.yml +79 -0
  132. shaapi/template/etc/prometheus/prometheus.yml +52 -0
  133. shaapi/template/package-lock.json +2102 -0
  134. shaapi/template/package.json +16 -0
  135. shaapi/template/pyproject.toml +78 -0
  136. shaapi/template/uv.lock +2866 -0
  137. shaapi-0.1.0.dist-info/METADATA +92 -0
  138. shaapi-0.1.0.dist-info/RECORD +141 -0
  139. shaapi-0.1.0.dist-info/WHEEL +4 -0
  140. shaapi-0.1.0.dist-info/entry_points.txt +2 -0
  141. shaapi-0.1.0.dist-info/licenses/LICENCE +21 -0
@@ -0,0 +1,10 @@
1
+ apiVersion: 1
2
+ providers:
3
+ - name: 'FastAPI Observability'
4
+ orgId: 1
5
+ folder: ''
6
+ type: 'file'
7
+ disableDeletion: true
8
+ editable: true
9
+ options:
10
+ path: '/etc/grafana/dashboards'
@@ -0,0 +1,79 @@
1
+ # config file version
2
+ apiVersion: 1
3
+
4
+ # list of datasources that should be deleted from the database
5
+ deleteDatasources:
6
+ - name: Prometheus
7
+ orgId: 1
8
+
9
+ # list of datasources to insert/update depending
10
+ # what's available in the database
11
+ datasources:
12
+ # <string, required> name of the datasource. Required
13
+ - uid: prometheus
14
+ orgId: 1
15
+ name: Prometheus
16
+ type: prometheus
17
+ typeName: Prometheus
18
+ access: proxy
19
+ url: http://shaapi_prometheus:9090
20
+ password: ''
21
+ user: ''
22
+ database: ''
23
+ basicAuth: false
24
+ isDefault: true
25
+ jsonData:
26
+ exemplarTraceIdDestinations:
27
+ - datasourceUid: tempo
28
+ name: TraceID
29
+ httpMethod: POST
30
+ readOnly: false
31
+ editable: true
32
+ - uid: tempo
33
+ orgId: 1
34
+ name: Tempo
35
+ type: tempo
36
+ typeName: Tempo
37
+ access: proxy
38
+ url: http://shaapi_tempo:3200
39
+ password: ''
40
+ user: ''
41
+ database: ''
42
+ basicAuth: false
43
+ isDefault: false
44
+ jsonData:
45
+ nodeGraph:
46
+ enabled: true
47
+ search:
48
+ hide: false
49
+ lokiSearch:
50
+ datasourceUid: loki
51
+ tracesToLogs:
52
+ datasourceUid: loki
53
+ filterBySpanID: false
54
+ filterByTraceID: true
55
+ mapTagNamesEnabled: false
56
+ tags:
57
+ - compose_service
58
+ readOnly: false
59
+ editable: true
60
+ - uid: loki
61
+ orgId: 1
62
+ name: Loki
63
+ type: loki
64
+ typeName: Loki
65
+ access: proxy
66
+ url: http://shaapi_loki:3100
67
+ password: ''
68
+ user: ''
69
+ database: ''
70
+ basicAuth: false
71
+ isDefault: false
72
+ jsonData:
73
+ derivedFields:
74
+ - datasourceUid: tempo
75
+ matcherRegex: (?:trace_id)=(\w+)
76
+ name: TraceID
77
+ url: $${__value.raw}
78
+ readOnly: false
79
+ editable: true
@@ -0,0 +1,52 @@
1
+ global:
2
+ scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
3
+ evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
4
+ # scrape_timeout is set to the global default (10s).
5
+
6
+ # Alertmanager configuration
7
+ alerting:
8
+ alertmanagers:
9
+ - static_configs:
10
+ - targets:
11
+ # - alertmanager:9093
12
+
13
+ # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
14
+ rule_files:
15
+ # - "first_rules.yml"
16
+ # - "second_rules.yml"
17
+
18
+ # A scrape configuration containing exactly one endpoint to scrape:
19
+ # Here it's Prometheus itself.
20
+ scrape_configs:
21
+ # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
22
+ - job_name: "prometheus"
23
+
24
+ # metrics_path defaults to '/metrics'
25
+ # scheme defaults to 'http'.
26
+
27
+ static_configs:
28
+ - targets: ["localhost:9090"]
29
+
30
+ - job_name: 'shaapi_api'
31
+
32
+ # Override the global default and scrape targets from this job every 5 seconds.
33
+ scrape_interval: 5s
34
+
35
+ static_configs:
36
+ - targets: ['shaapi_api:8000']
37
+
38
+ # - job_name: 'app-b'
39
+
40
+ # # Override the global default and scrape targets from this job every 5 seconds.
41
+ # scrape_interval: 5s
42
+
43
+ # static_configs:
44
+ # - targets: ['app-b:8000']
45
+
46
+ # - job_name: 'app-c'
47
+
48
+ # # Override the global default and scrape targets from this job every 5 seconds.
49
+ # scrape_interval: 5s
50
+
51
+ # static_configs:
52
+ # - targets: ['app-c:8000']