jvspatial 0.0.1__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 (273) hide show
  1. jvspatial-0.0.1/.env.example +493 -0
  2. jvspatial-0.0.1/.flake8 +15 -0
  3. jvspatial-0.0.1/.github/ISSUE_TEMPLATE/bug_report.md +33 -0
  4. jvspatial-0.0.1/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  5. jvspatial-0.0.1/.github/ISSUE_TEMPLATE/refactor-request.md +40 -0
  6. jvspatial-0.0.1/.github/pull_request_template.md +76 -0
  7. jvspatial-0.0.1/.github/release.yml +7 -0
  8. jvspatial-0.0.1/.github/workflows/README.md +93 -0
  9. jvspatial-0.0.1/.github/workflows/VERSIONING.md +185 -0
  10. jvspatial-0.0.1/.github/workflows/WORKFLOW_SUMMARY.md +79 -0
  11. jvspatial-0.0.1/.github/workflows/pre-commit.yaml +28 -0
  12. jvspatial-0.0.1/.github/workflows/publish.yml +171 -0
  13. jvspatial-0.0.1/.github/workflows/test-jvspatial.yaml +34 -0
  14. jvspatial-0.0.1/.gitignore +215 -0
  15. jvspatial-0.0.1/.pre-commit-config.yaml +69 -0
  16. jvspatial-0.0.1/LICENSE +21 -0
  17. jvspatial-0.0.1/PKG-INFO +394 -0
  18. jvspatial-0.0.1/README.md +326 -0
  19. jvspatial-0.0.1/SPEC.md +5276 -0
  20. jvspatial-0.0.1/docs/md/README.md +322 -0
  21. jvspatial-0.0.1/docs/md/api-architecture.md +499 -0
  22. jvspatial-0.0.1/docs/md/architectural-decisions.md +413 -0
  23. jvspatial-0.0.1/docs/md/attribute-annotations.md +332 -0
  24. jvspatial-0.0.1/docs/md/auth-quickstart.md +289 -0
  25. jvspatial-0.0.1/docs/md/authentication.md +735 -0
  26. jvspatial-0.0.1/docs/md/caching.md +566 -0
  27. jvspatial-0.0.1/docs/md/context-management-guide.md +100 -0
  28. jvspatial-0.0.1/docs/md/contributing.md +71 -0
  29. jvspatial-0.0.1/docs/md/custom-database-guide.md +700 -0
  30. jvspatial-0.0.1/docs/md/decorator-reference.md +460 -0
  31. jvspatial-0.0.1/docs/md/design-decisions.md +266 -0
  32. jvspatial-0.0.1/docs/md/entity-reference.md +259 -0
  33. jvspatial-0.0.1/docs/md/environment-configuration.md +440 -0
  34. jvspatial-0.0.1/docs/md/error-handling.md +167 -0
  35. jvspatial-0.0.1/docs/md/examples.md +750 -0
  36. jvspatial-0.0.1/docs/md/file-storage-architecture.md +1030 -0
  37. jvspatial-0.0.1/docs/md/file-storage-usage.md +1679 -0
  38. jvspatial-0.0.1/docs/md/graph-context.md +701 -0
  39. jvspatial-0.0.1/docs/md/graph-traversal.md +257 -0
  40. jvspatial-0.0.1/docs/md/graph-visualization.md +614 -0
  41. jvspatial-0.0.1/docs/md/import-patterns.md +472 -0
  42. jvspatial-0.0.1/docs/md/infinite-walk-protection.md +827 -0
  43. jvspatial-0.0.1/docs/md/license.md +31 -0
  44. jvspatial-0.0.1/docs/md/migration.md +596 -0
  45. jvspatial-0.0.1/docs/md/module-responsibility-matrix.md +352 -0
  46. jvspatial-0.0.1/docs/md/mongodb-query-interface.md +433 -0
  47. jvspatial-0.0.1/docs/md/node-operations.md +128 -0
  48. jvspatial-0.0.1/docs/md/optimization.md +187 -0
  49. jvspatial-0.0.1/docs/md/pagination.md +589 -0
  50. jvspatial-0.0.1/docs/md/quick-start-guide.md +421 -0
  51. jvspatial-0.0.1/docs/md/rest-api.md +1909 -0
  52. jvspatial-0.0.1/docs/md/scheduler.md +756 -0
  53. jvspatial-0.0.1/docs/md/server-api.md +1282 -0
  54. jvspatial-0.0.1/docs/md/troubleshooting.md +71 -0
  55. jvspatial-0.0.1/docs/md/walker-queue-operations.md +313 -0
  56. jvspatial-0.0.1/docs/md/walker-reporting-events.md +1113 -0
  57. jvspatial-0.0.1/docs/md/walker-trail-tracking.md +775 -0
  58. jvspatial-0.0.1/docs/md/webhook-architecture.md +260 -0
  59. jvspatial-0.0.1/docs/md/webhooks-quickstart.md +420 -0
  60. jvspatial-0.0.1/examples/README.md +93 -0
  61. jvspatial-0.0.1/examples/api/README.md +198 -0
  62. jvspatial-0.0.1/examples/api/authenticated_endpoints_example.py +1206 -0
  63. jvspatial-0.0.1/examples/api/lambda_example.py +184 -0
  64. jvspatial-0.0.1/examples/api/unauthenticated_endpoints_example.py +453 -0
  65. jvspatial-0.0.1/examples/core/README.md +124 -0
  66. jvspatial-0.0.1/examples/core/cities.py +191 -0
  67. jvspatial-0.0.1/examples/core/context/README.md +15 -0
  68. jvspatial-0.0.1/examples/core/context/graphcontext_demo.py +308 -0
  69. jvspatial-0.0.1/examples/core/context/simple_dynamic_example.py +369 -0
  70. jvspatial-0.0.1/examples/core/graph_visualization_example.py +389 -0
  71. jvspatial-0.0.1/examples/core/models/README.md +14 -0
  72. jvspatial-0.0.1/examples/core/models/agent_graph.py +689 -0
  73. jvspatial-0.0.1/examples/core/models/travel_graph.py +613 -0
  74. jvspatial-0.0.1/examples/core/spatial_search.py +183 -0
  75. jvspatial-0.0.1/examples/database/README.md +10 -0
  76. jvspatial-0.0.1/examples/database/custom_database_example.py +196 -0
  77. jvspatial-0.0.1/examples/database/database_switching_example.py +296 -0
  78. jvspatial-0.0.1/examples/database/filtering/README.md +18 -0
  79. jvspatial-0.0.1/examples/database/filtering/enhanced_nodes_filtering.py +268 -0
  80. jvspatial-0.0.1/examples/database/filtering/semantic_filtering.py +299 -0
  81. jvspatial-0.0.1/examples/database/multi_database_example.py +326 -0
  82. jvspatial-0.0.1/examples/database/pagination/README.md +26 -0
  83. jvspatial-0.0.1/examples/database/pagination/object_pagination_demo.py +159 -0
  84. jvspatial-0.0.1/examples/database/query_interface_example.py +338 -0
  85. jvspatial-0.0.1/examples/database/sqlite_example.py +370 -0
  86. jvspatial-0.0.1/examples/database/unified_query_interface_example.py +379 -0
  87. jvspatial-0.0.1/examples/error_handling/README.md +131 -0
  88. jvspatial-0.0.1/examples/error_handling/basic_error_handling.py +113 -0
  89. jvspatial-0.0.1/examples/error_handling/database_error_handling.py +222 -0
  90. jvspatial-0.0.1/examples/error_handling/walker_error_handling.py +310 -0
  91. jvspatial-0.0.1/examples/scheduler/README.md +37 -0
  92. jvspatial-0.0.1/examples/scheduler/dynamic_scheduler_demo.py +372 -0
  93. jvspatial-0.0.1/examples/scheduler/scheduler_example.py +679 -0
  94. jvspatial-0.0.1/examples/storage/README.md +126 -0
  95. jvspatial-0.0.1/examples/storage/file_storage_demo.py +387 -0
  96. jvspatial-0.0.1/examples/storage/storage_example.py +264 -0
  97. jvspatial-0.0.1/examples/test_examples.py +295 -0
  98. jvspatial-0.0.1/examples/walkers/README.md +8 -0
  99. jvspatial-0.0.1/examples/walkers/multi_target_hooks_demo.py +493 -0
  100. jvspatial-0.0.1/examples/walkers/walker_events_demo.py +474 -0
  101. jvspatial-0.0.1/examples/walkers/walker_reporting_demo.py +383 -0
  102. jvspatial-0.0.1/examples/walkers/walker_traversal_demo.py +258 -0
  103. jvspatial-0.0.1/jvspatial/__init__.py +104 -0
  104. jvspatial-0.0.1/jvspatial/api/__init__.py +45 -0
  105. jvspatial-0.0.1/jvspatial/api/auth/config.py +76 -0
  106. jvspatial-0.0.1/jvspatial/api/auth/enhanced.py +503 -0
  107. jvspatial-0.0.1/jvspatial/api/auth/models.py +75 -0
  108. jvspatial-0.0.1/jvspatial/api/auth/openapi_config.py +209 -0
  109. jvspatial-0.0.1/jvspatial/api/auth/service.py +338 -0
  110. jvspatial-0.0.1/jvspatial/api/components/__init__.py +19 -0
  111. jvspatial-0.0.1/jvspatial/api/components/app_builder.py +154 -0
  112. jvspatial-0.0.1/jvspatial/api/components/auth_middleware.py +323 -0
  113. jvspatial-0.0.1/jvspatial/api/components/endpoint_manager.py +328 -0
  114. jvspatial-0.0.1/jvspatial/api/components/error_handler.py +118 -0
  115. jvspatial-0.0.1/jvspatial/api/config.py +191 -0
  116. jvspatial-0.0.1/jvspatial/api/constants.py +220 -0
  117. jvspatial-0.0.1/jvspatial/api/context.py +141 -0
  118. jvspatial-0.0.1/jvspatial/api/decorators/__init__.py +60 -0
  119. jvspatial-0.0.1/jvspatial/api/decorators/field.py +146 -0
  120. jvspatial-0.0.1/jvspatial/api/decorators/route.py +354 -0
  121. jvspatial-0.0.1/jvspatial/api/decorators/route_config.py +322 -0
  122. jvspatial-0.0.1/jvspatial/api/endpoints/__init__.py +56 -0
  123. jvspatial-0.0.1/jvspatial/api/endpoints/factory.py +428 -0
  124. jvspatial-0.0.1/jvspatial/api/endpoints/metadata.py +94 -0
  125. jvspatial-0.0.1/jvspatial/api/endpoints/registry.py +605 -0
  126. jvspatial-0.0.1/jvspatial/api/endpoints/response.py +821 -0
  127. jvspatial-0.0.1/jvspatial/api/endpoints/router.py +995 -0
  128. jvspatial-0.0.1/jvspatial/api/exceptions.py +451 -0
  129. jvspatial-0.0.1/jvspatial/api/integrations/__init__.py +15 -0
  130. jvspatial-0.0.1/jvspatial/api/integrations/scheduler/__init__.py +18 -0
  131. jvspatial-0.0.1/jvspatial/api/integrations/scheduler/decorators.py +219 -0
  132. jvspatial-0.0.1/jvspatial/api/integrations/scheduler/middleware.py +237 -0
  133. jvspatial-0.0.1/jvspatial/api/integrations/scheduler/models.py +117 -0
  134. jvspatial-0.0.1/jvspatial/api/integrations/scheduler/scheduler.py +992 -0
  135. jvspatial-0.0.1/jvspatial/api/integrations/storage/__init__.py +12 -0
  136. jvspatial-0.0.1/jvspatial/api/integrations/storage/service.py +347 -0
  137. jvspatial-0.0.1/jvspatial/api/integrations/webhooks/__init__.py +19 -0
  138. jvspatial-0.0.1/jvspatial/api/integrations/webhooks/decorators.py +12 -0
  139. jvspatial-0.0.1/jvspatial/api/integrations/webhooks/helpers.py +328 -0
  140. jvspatial-0.0.1/jvspatial/api/integrations/webhooks/middleware.py +595 -0
  141. jvspatial-0.0.1/jvspatial/api/integrations/webhooks/models.py +416 -0
  142. jvspatial-0.0.1/jvspatial/api/integrations/webhooks/utils.py +507 -0
  143. jvspatial-0.0.1/jvspatial/api/middleware/__init__.py +24 -0
  144. jvspatial-0.0.1/jvspatial/api/middleware/error.py +102 -0
  145. jvspatial-0.0.1/jvspatial/api/middleware/manager.py +261 -0
  146. jvspatial-0.0.1/jvspatial/api/server.py +1573 -0
  147. jvspatial-0.0.1/jvspatial/api/services/__init__.py +28 -0
  148. jvspatial-0.0.1/jvspatial/api/services/discovery.py +332 -0
  149. jvspatial-0.0.1/jvspatial/api/services/lifecycle.py +237 -0
  150. jvspatial-0.0.1/jvspatial/async_utils/__init__.py +506 -0
  151. jvspatial-0.0.1/jvspatial/cache/__init__.py +29 -0
  152. jvspatial-0.0.1/jvspatial/cache/base.py +187 -0
  153. jvspatial-0.0.1/jvspatial/cache/factory.py +80 -0
  154. jvspatial-0.0.1/jvspatial/cache/layered.py +281 -0
  155. jvspatial-0.0.1/jvspatial/cache/memory.py +205 -0
  156. jvspatial-0.0.1/jvspatial/cache/redis.py +349 -0
  157. jvspatial-0.0.1/jvspatial/config.py +319 -0
  158. jvspatial-0.0.1/jvspatial/core/__init__.py +64 -0
  159. jvspatial-0.0.1/jvspatial/core/annotations.py +340 -0
  160. jvspatial-0.0.1/jvspatial/core/context.py +1084 -0
  161. jvspatial-0.0.1/jvspatial/core/decorators.py +85 -0
  162. jvspatial-0.0.1/jvspatial/core/entities/__init__.py +38 -0
  163. jvspatial-0.0.1/jvspatial/core/entities/edge.py +338 -0
  164. jvspatial-0.0.1/jvspatial/core/entities/node.py +804 -0
  165. jvspatial-0.0.1/jvspatial/core/entities/node_query.py +87 -0
  166. jvspatial-0.0.1/jvspatial/core/entities/object.py +526 -0
  167. jvspatial-0.0.1/jvspatial/core/entities/root.py +44 -0
  168. jvspatial-0.0.1/jvspatial/core/entities/walker.py +896 -0
  169. jvspatial-0.0.1/jvspatial/core/entities/walker_components/__init__.py +13 -0
  170. jvspatial-0.0.1/jvspatial/core/entities/walker_components/event_system.py +37 -0
  171. jvspatial-0.0.1/jvspatial/core/entities/walker_components/protection.py +169 -0
  172. jvspatial-0.0.1/jvspatial/core/entities/walker_components/walker_queue.py +195 -0
  173. jvspatial-0.0.1/jvspatial/core/entities/walker_components/walker_trail.py +72 -0
  174. jvspatial-0.0.1/jvspatial/core/events.py +186 -0
  175. jvspatial-0.0.1/jvspatial/core/graph.py +453 -0
  176. jvspatial-0.0.1/jvspatial/core/pager.py +310 -0
  177. jvspatial-0.0.1/jvspatial/core/utils.py +69 -0
  178. jvspatial-0.0.1/jvspatial/db/__init__.py +73 -0
  179. jvspatial-0.0.1/jvspatial/db/database.py +116 -0
  180. jvspatial-0.0.1/jvspatial/db/dynamodb.py +333 -0
  181. jvspatial-0.0.1/jvspatial/db/factory.py +335 -0
  182. jvspatial-0.0.1/jvspatial/db/jsondb.py +133 -0
  183. jvspatial-0.0.1/jvspatial/db/manager.py +266 -0
  184. jvspatial-0.0.1/jvspatial/db/mongodb.py +94 -0
  185. jvspatial-0.0.1/jvspatial/db/query.py +645 -0
  186. jvspatial-0.0.1/jvspatial/db/sqlite.py +235 -0
  187. jvspatial-0.0.1/jvspatial/db/transaction.py +277 -0
  188. jvspatial-0.0.1/jvspatial/dev_tools/__init__.py +484 -0
  189. jvspatial-0.0.1/jvspatial/exceptions.py +472 -0
  190. jvspatial-0.0.1/jvspatial/logging/__init__.py +336 -0
  191. jvspatial-0.0.1/jvspatial/memory/__init__.py +481 -0
  192. jvspatial-0.0.1/jvspatial/profiling/__init__.py +486 -0
  193. jvspatial-0.0.1/jvspatial/storage/__init__.py +228 -0
  194. jvspatial-0.0.1/jvspatial/storage/exceptions.py +165 -0
  195. jvspatial-0.0.1/jvspatial/storage/interfaces/__init__.py +34 -0
  196. jvspatial-0.0.1/jvspatial/storage/interfaces/base.py +390 -0
  197. jvspatial-0.0.1/jvspatial/storage/interfaces/local.py +772 -0
  198. jvspatial-0.0.1/jvspatial/storage/interfaces/s3.py +764 -0
  199. jvspatial-0.0.1/jvspatial/storage/managers/__init__.py +12 -0
  200. jvspatial-0.0.1/jvspatial/storage/managers/proxy.py +494 -0
  201. jvspatial-0.0.1/jvspatial/storage/models.py +108 -0
  202. jvspatial-0.0.1/jvspatial/storage/security/__init__.py +27 -0
  203. jvspatial-0.0.1/jvspatial/storage/security/path_sanitizer.py +278 -0
  204. jvspatial-0.0.1/jvspatial/storage/security/validator.py +394 -0
  205. jvspatial-0.0.1/jvspatial/testing/__init__.py +649 -0
  206. jvspatial-0.0.1/jvspatial/utils/__init__.py +162 -0
  207. jvspatial-0.0.1/jvspatial/utils/context.py +60 -0
  208. jvspatial-0.0.1/jvspatial/utils/decorators.py +340 -0
  209. jvspatial-0.0.1/jvspatial/utils/factory.py +96 -0
  210. jvspatial-0.0.1/jvspatial/utils/serialization.py +46 -0
  211. jvspatial-0.0.1/jvspatial/utils/types.py +402 -0
  212. jvspatial-0.0.1/jvspatial/utils/validation.py +41 -0
  213. jvspatial-0.0.1/jvspatial/version.py +12 -0
  214. jvspatial-0.0.1/jvspatial.egg-info/PKG-INFO +394 -0
  215. jvspatial-0.0.1/jvspatial.egg-info/SOURCES.txt +271 -0
  216. jvspatial-0.0.1/jvspatial.egg-info/dependency_links.txt +1 -0
  217. jvspatial-0.0.1/jvspatial.egg-info/requires.txt +41 -0
  218. jvspatial-0.0.1/jvspatial.egg-info/top_level.txt +1 -0
  219. jvspatial-0.0.1/pyproject.toml +168 -0
  220. jvspatial-0.0.1/requirements-dev.txt +24 -0
  221. jvspatial-0.0.1/requirements-optional.txt +38 -0
  222. jvspatial-0.0.1/requirements-prod.txt +25 -0
  223. jvspatial-0.0.1/requirements-test.txt +17 -0
  224. jvspatial-0.0.1/requirements.txt +23 -0
  225. jvspatial-0.0.1/setup.cfg +4 -0
  226. jvspatial-0.0.1/setup.py +93 -0
  227. jvspatial-0.0.1/tests/api/endpoint/test_endpoint_integration.py +501 -0
  228. jvspatial-0.0.1/tests/api/endpoint/test_endpoint_response.py +387 -0
  229. jvspatial-0.0.1/tests/api/services/test_discovery.py +35 -0
  230. jvspatial-0.0.1/tests/api/services/test_endpoint_registry.py +1013 -0
  231. jvspatial-0.0.1/tests/api/services/test_file_storage.py +46 -0
  232. jvspatial-0.0.1/tests/api/services/test_lifecycle.py +96 -0
  233. jvspatial-0.0.1/tests/api/services/test_middleware.py +77 -0
  234. jvspatial-0.0.1/tests/api/test_api_integration.py +855 -0
  235. jvspatial-0.0.1/tests/api/test_components.py +341 -0
  236. jvspatial-0.0.1/tests/api/test_endpoint_decorator.py +249 -0
  237. jvspatial-0.0.1/tests/api/test_scheduler.py +307 -0
  238. jvspatial-0.0.1/tests/api/webhook/__init__.py +0 -0
  239. jvspatial-0.0.1/tests/api/webhook/test_decorators.py +238 -0
  240. jvspatial-0.0.1/tests/cache/test_cache_factory.py +135 -0
  241. jvspatial-0.0.1/tests/cache/test_context_cache.py +306 -0
  242. jvspatial-0.0.1/tests/cache/test_layered.py +115 -0
  243. jvspatial-0.0.1/tests/cache/test_memory_cache.py +353 -0
  244. jvspatial-0.0.1/tests/cache/test_redis.py +216 -0
  245. jvspatial-0.0.1/tests/conftest.py +31 -0
  246. jvspatial-0.0.1/tests/core/test_entities.py +781 -0
  247. jvspatial-0.0.1/tests/core/test_graph_context.py +821 -0
  248. jvspatial-0.0.1/tests/core/test_pagination.py +654 -0
  249. jvspatial-0.0.1/tests/core/test_queue_operations.py +666 -0
  250. jvspatial-0.0.1/tests/core/test_walker.py +758 -0
  251. jvspatial-0.0.1/tests/core/test_walker_protection.py +674 -0
  252. jvspatial-0.0.1/tests/core/test_walker_reporting_events.py +702 -0
  253. jvspatial-0.0.1/tests/core/test_walker_trail_new.py +445 -0
  254. jvspatial-0.0.1/tests/db/test_database_factory.py +574 -0
  255. jvspatial-0.0.1/tests/db/test_database_integration.py +929 -0
  256. jvspatial-0.0.1/tests/db/test_jsondb.py +1396 -0
  257. jvspatial-0.0.1/tests/db/test_mongodb.py +413 -0
  258. jvspatial-0.0.1/tests/db/test_query.py +593 -0
  259. jvspatial-0.0.1/tests/db/test_sqlite.py +696 -0
  260. jvspatial-0.0.1/tests/example_test.py +89 -0
  261. jvspatial-0.0.1/tests/integration/test_edge_cases.py +864 -0
  262. jvspatial-0.0.1/tests/integration/test_full_workflows.py +403 -0
  263. jvspatial-0.0.1/tests/storage/__init__.py +1 -0
  264. jvspatial-0.0.1/tests/storage/integration/__init__.py +13 -0
  265. jvspatial-0.0.1/tests/storage/integration/test_storage_workflows.py +879 -0
  266. jvspatial-0.0.1/tests/storage/test_exceptions.py +799 -0
  267. jvspatial-0.0.1/tests/storage/test_factory.py +104 -0
  268. jvspatial-0.0.1/tests/storage/test_interfaces.py +1407 -0
  269. jvspatial-0.0.1/tests/storage/test_managers.py +972 -0
  270. jvspatial-0.0.1/tests/storage/test_security.py +945 -0
  271. jvspatial-0.0.1/tests/test_config.py +188 -0
  272. jvspatial-0.0.1/tests/test_node_operations.py +819 -0
  273. jvspatial-0.0.1/tests/testing/test_testing_utilities.py +281 -0
@@ -0,0 +1,493 @@
1
+ # =============================================================================
2
+ # jvspatial Environment Configuration Template
3
+ # =============================================================================
4
+ # Copy this file to .env and customize the values for your environment
5
+ #
6
+ # Usage:
7
+ # 1. Copy: cp .env.example .env
8
+ # 2. Edit the .env file with your specific configuration
9
+ # 3. Load in your application: python-dotenv or similar
10
+ #
11
+ # =============================================================================
12
+
13
+ # -----------------------------------------------------------------------------
14
+ # API ROUTES CONFIGURATION
15
+ # -----------------------------------------------------------------------------
16
+ # Configure API endpoint prefixes and paths
17
+
18
+ # API Prefix (prefix for all API endpoints)
19
+ # Default: /api
20
+ # Example: Change to /v1 for versioned API URLs
21
+ # JVSPATIAL_API_PREFIX=/api
22
+
23
+ # Health check endpoint path
24
+ # Default: /health
25
+ # JVSPATIAL_API_HEALTH=/health
26
+
27
+ # Root endpoint path
28
+ # Default: /
29
+ # JVSPATIAL_API_ROOT=/
30
+
31
+ # Storage endpoints prefix
32
+ # Default: /storage
33
+ # JVSPATIAL_STORAGE_PREFIX=/storage
34
+
35
+ # Proxy endpoints prefix
36
+ # Default: /p
37
+ # JVSPATIAL_PROXY_PREFIX=/p
38
+
39
+ # Example: Version your API
40
+ # JVSPATIAL_API_PREFIX=/v1
41
+ # Result: All endpoints will use /v1 instead of /api
42
+ # - /v1/users/analyze instead of /api/users/analyze
43
+ # - /v1/data/read instead of /api/data/read
44
+
45
+ # -----------------------------------------------------------------------------
46
+ # API SERVER CONFIGURATION
47
+ # -----------------------------------------------------------------------------
48
+ # Configure server host, port, and behavior
49
+
50
+ # Server host address
51
+ # Default: 0.0.0.0 (all interfaces)
52
+ # JVSPATIAL_HOST=0.0.0.0
53
+
54
+ # Server port
55
+ # Default: 8000
56
+ # JVSPATIAL_PORT=8000
57
+
58
+ # Log level: debug, info, warning, error, critical
59
+ # Default: info
60
+ # JVSPATIAL_LOG_LEVEL=info
61
+
62
+ # Debug mode: true, false
63
+ # Default: false
64
+ # JVSPATIAL_DEBUG=false
65
+
66
+ # API title (shown in OpenAPI docs)
67
+ # Default: jvspatial API
68
+ # JVSPATIAL_API_TITLE=jvspatial API
69
+
70
+ # API version (shown in OpenAPI docs)
71
+ # Default: 1.0.0
72
+ # JVSPATIAL_API_VERSION=1.0.0
73
+
74
+ # API description (shown in OpenAPI docs)
75
+ # Default: API built with jvspatial framework
76
+ # JVSPATIAL_API_DESCRIPTION=API built with jvspatial framework
77
+
78
+ # -----------------------------------------------------------------------------
79
+ # CORS CONFIGURATION
80
+ # -----------------------------------------------------------------------------
81
+ # Configure Cross-Origin Resource Sharing
82
+
83
+ # Enable CORS: true, false
84
+ # Default: true
85
+ # JVSPATIAL_CORS_ENABLED=true
86
+
87
+ # CORS allowed origins (comma-separated)
88
+ # Default: *
89
+ # Examples:
90
+ # - Single origin: https://example.com
91
+ # - Multiple origins: https://example.com,https://app.example.com
92
+ # JVSPATIAL_CORS_ORIGINS=*
93
+
94
+ # CORS allowed methods (comma-separated)
95
+ # Default: *
96
+ # JVSPATIAL_CORS_METHODS=*
97
+
98
+ # CORS allowed headers (comma-separated)
99
+ # Default: *
100
+ # JVSPATIAL_CORS_HEADERS=*
101
+
102
+ # -----------------------------------------------------------------------------
103
+ # DATABASE COLLECTION NAMES
104
+ # -----------------------------------------------------------------------------
105
+ # Customize collection names for different environments
106
+
107
+ # User collection name
108
+ # Default: users
109
+ # JVSPATIAL_COLLECTION_USERS=users
110
+
111
+ # API keys collection name
112
+ # Default: api_keys
113
+ # JVSPATIAL_COLLECTION_API_KEYS=api_keys
114
+
115
+ # Sessions collection name
116
+ # Default: sessions
117
+ # JVSPATIAL_COLLECTION_SESSIONS=sessions
118
+
119
+ # Webhooks collection name
120
+ # Default: webhooks
121
+ # JVSPATIAL_COLLECTION_WEBHOOKS=webhooks
122
+
123
+ # Webhook requests collection name
124
+ # Default: webhook_requests
125
+ # JVSPATIAL_COLLECTION_WEBHOOK_REQUESTS=webhook_requests
126
+
127
+ # Scheduled tasks collection name
128
+ # Default: scheduled_tasks
129
+ # JVSPATIAL_COLLECTION_SCHEDULED_TASKS=scheduled_tasks
130
+
131
+ # -----------------------------------------------------------------------------
132
+ # DATABASE CONFIGURATION
133
+ # -----------------------------------------------------------------------------
134
+ # Choose the database backend for jvspatial persistence
135
+
136
+ # Database Type Selection
137
+ # Options: 'json', 'mongodb'
138
+ # Default: 'json' (if not specified)
139
+ JVSPATIAL_DB_TYPE=json
140
+
141
+ # -----------------------------------------------------------------------------
142
+ # CACHING CONFIGURATION
143
+ # -----------------------------------------------------------------------------
144
+ # Configure caching strategy for improved performance
145
+ # jvspatial supports multiple cache backends: memory, redis, and layered (L1+L2)
146
+
147
+ # Cache Backend Selection
148
+ # Options: 'memory', 'redis', 'layered'
149
+ # - memory: Fast in-memory cache (single server)
150
+ # - redis: Distributed Redis cache (multi-server)
151
+ # - layered: Two-tier cache with memory (L1) + Redis (L2)
152
+ # Default: Auto-detected ('layered' if Redis URL configured, otherwise 'memory')
153
+ # JVSPATIAL_CACHE_BACKEND=memory
154
+
155
+ # Cache Size (for memory and L1 cache)
156
+ # Number of items to cache in memory
157
+ # Higher values = better performance but more memory usage
158
+ # Typical values:
159
+ # - Development: 500-1000
160
+ # - Production: 1000-5000
161
+ # - Memory-constrained: 100-500
162
+ # Default: 1000
163
+ JVSPATIAL_CACHE_SIZE=1000
164
+
165
+ # L1 Cache Size (for layered cache)
166
+ # Size of the fast in-memory L1 cache when using layered caching
167
+ # Should be smaller than JVSPATIAL_CACHE_SIZE for hot data
168
+ # Default: 500
169
+ # JVSPATIAL_L1_CACHE_SIZE=500
170
+
171
+ # Redis URL (for redis and layered backends)
172
+ # Connection URL for Redis cache backend
173
+ # Format: redis://[password@]host[:port][/database]
174
+ # Examples:
175
+ # - redis://localhost:6379 (local, no auth)
176
+ # - redis://password@localhost:6379 (with password)
177
+ # - redis://redis-cache:6379/0 (custom host and database)
178
+ # - rediss://user:password@redis.example.com:6380 (SSL/TLS)
179
+ # Default: redis://localhost:6379
180
+ # JVSPATIAL_REDIS_URL=redis://localhost:6379
181
+
182
+ # Redis TTL (Time-To-Live)
183
+ # How long cached items remain in Redis (in seconds)
184
+ # Set to 0 for no expiration (not recommended)
185
+ # Default: 3600 (1 hour)
186
+ # JVSPATIAL_REDIS_TTL=3600
187
+
188
+ # -----------------------------------------------------------------------------
189
+ # JSON DATABASE CONFIGURATION
190
+ # -----------------------------------------------------------------------------
191
+ # Used when JVSPATIAL_DB_TYPE=json (default backend)
192
+
193
+ # Base path for JSON database files
194
+ # The library will create subdirectories for different collections
195
+ # Relative paths are relative to your application's working directory
196
+ # Examples:
197
+ # - ./data/jvdb (relative path)
198
+ # - /var/lib/jvspatial/db (absolute path)
199
+ # - ~/jvspatial_data (home directory)
200
+ JVSPATIAL_JSONDB_PATH=./jvdb
201
+
202
+ # -----------------------------------------------------------------------------
203
+ # MONGODB CONFIGURATION
204
+ # -----------------------------------------------------------------------------
205
+ # Used when JVSPATIAL_DB_TYPE=mongodb
206
+
207
+ # MongoDB Connection URI
208
+ # Format: mongodb://[username:password@]host[:port][/database][?options]
209
+ # Examples:
210
+ # - mongodb://localhost:27017 (local, no auth)
211
+ # - mongodb://user:pass@localhost:27017 (local with auth)
212
+ # - mongodb+srv://user:pass@cluster.mongodb.net/ (MongoDB Atlas)
213
+ # - mongodb://mongo1,mongo2,mongo3:27017/?replicaSet=rs0 (replica set)
214
+ JVSPATIAL_MONGODB_URI=mongodb://localhost:27017
215
+
216
+ # MongoDB Database Name
217
+ # The database within MongoDB instance to use for jvspatial data
218
+ # Will be created automatically if it doesn't exist
219
+ JVSPATIAL_MONGODB_DB_NAME=jvdb
220
+
221
+ # -----------------------------------------------------------------------------
222
+ # ENVIRONMENT-SPECIFIC EXAMPLES
223
+ # -----------------------------------------------------------------------------
224
+
225
+ # DEVELOPMENT ENVIRONMENT (Single server, memory cache)
226
+ # Uncomment and modify for development setup:
227
+ # JVSPATIAL_DB_TYPE=json
228
+ # JVSPATIAL_JSONDB_PATH=./jvdb/dev
229
+ # JVSPATIAL_CACHE_BACKEND=memory
230
+ # JVSPATIAL_CACHE_SIZE=1000
231
+
232
+ # TESTING ENVIRONMENT (Smaller cache for faster tests)
233
+ # Uncomment and modify for testing setup:
234
+ # JVSPATIAL_DB_TYPE=json
235
+ # JVSPATIAL_JSONDB_PATH=./jvdb/test
236
+ # JVSPATIAL_CACHE_BACKEND=memory
237
+ # JVSPATIAL_CACHE_SIZE=100
238
+
239
+ # PRODUCTION ENVIRONMENT (MongoDB + Layered cache with Redis)
240
+ # Uncomment and modify for production setup:
241
+ # JVSPATIAL_DB_TYPE=mongodb
242
+ # JVSPATIAL_MONGODB_URI=mongodb+srv://production_user:secure_password@production-cluster.mongodb.net/
243
+ # JVSPATIAL_MONGODB_DB_NAME=jvspatial_production
244
+ # JVSPATIAL_CACHE_BACKEND=layered
245
+ # JVSPATIAL_L1_CACHE_SIZE=500
246
+ # JVSPATIAL_REDIS_URL=redis://redis-cache:6379
247
+ # JVSPATIAL_REDIS_TTL=3600
248
+
249
+ # KUBERNETES/DOCKER ENVIRONMENT (Multi-instance with Redis)
250
+ # Uncomment and modify for Kubernetes/containerized setup:
251
+ # JVSPATIAL_DB_TYPE=mongodb
252
+ # JVSPATIAL_MONGODB_URI=mongodb://mongo_container:27017
253
+ # JVSPATIAL_MONGODB_DB_NAME=jvspatial_docker
254
+ # JVSPATIAL_CACHE_BACKEND=layered
255
+ # JVSPATIAL_L1_CACHE_SIZE=500
256
+ # JVSPATIAL_REDIS_URL=redis://redis-service:6379/0
257
+ # JVSPATIAL_REDIS_TTL=3600
258
+
259
+ # -----------------------------------------------------------------------------
260
+ # WALKER INFINITE WALK PROTECTION
261
+ # -----------------------------------------------------------------------------
262
+ # Configure protection mechanisms to prevent infinite loops and runaway traversals
263
+
264
+ # Enable/disable walker protection mechanisms
265
+ # Options: true, false
266
+ # Default: true
267
+ JVSPATIAL_WALKER_PROTECTION_ENABLED=true
268
+
269
+ # Maximum number of steps a walker can take before auto-halt
270
+ # Set to 0 to disable step limit (not recommended)
271
+ # Default: 10000
272
+ JVSPATIAL_WALKER_MAX_STEPS=10000
273
+
274
+ # Maximum times a single node can be visited before auto-halt
275
+ # Prevents excessive cycles and infinite loops
276
+ # Default: 100
277
+ JVSPATIAL_WALKER_MAX_VISITS_PER_NODE=100
278
+
279
+ # Maximum execution time in seconds before auto-halt
280
+ # Prevents indefinitely running walkers
281
+ # Default: 300.0 (5 minutes)
282
+ JVSPATIAL_WALKER_MAX_EXECUTION_TIME=300.0
283
+
284
+ # Maximum queue size before limiting new additions
285
+ # Prevents memory overflow from excessive queuing
286
+ # Default: 1000
287
+ JVSPATIAL_WALKER_MAX_QUEUE_SIZE=1000
288
+
289
+ # -----------------------------------------------------------------------------
290
+ # ENVIRONMENT-SPECIFIC PROTECTION EXAMPLES
291
+ # -----------------------------------------------------------------------------
292
+
293
+ # DEVELOPMENT ENVIRONMENT (More permissive)
294
+ # JVSPATIAL_WALKER_MAX_STEPS=50000
295
+ # JVSPATIAL_WALKER_MAX_VISITS_PER_NODE=200
296
+ # JVSPATIAL_WALKER_MAX_EXECUTION_TIME=600.0
297
+
298
+ # TESTING ENVIRONMENT (Stricter limits for faster test execution)
299
+ # JVSPATIAL_WALKER_MAX_STEPS=1000
300
+ # JVSPATIAL_WALKER_MAX_VISITS_PER_NODE=10
301
+ # JVSPATIAL_WALKER_MAX_EXECUTION_TIME=30.0
302
+
303
+ # PRODUCTION ENVIRONMENT (Balanced limits)
304
+ # JVSPATIAL_WALKER_MAX_STEPS=10000
305
+ # JVSPATIAL_WALKER_MAX_VISITS_PER_NODE=100
306
+ # JVSPATIAL_WALKER_MAX_EXECUTION_TIME=300.0
307
+
308
+ # -----------------------------------------------------------------------------
309
+ # WEBHOOK CONFIGURATION
310
+ # -----------------------------------------------------------------------------
311
+ # Configure webhook processing, security, and performance settings
312
+
313
+ # Global HMAC Secret for Webhook Verification
314
+ # Use a cryptographically secure secret (minimum 32 characters)
315
+ # Can be overridden per-endpoint in decorator parameters
316
+ # Example: openssl rand -hex 32
317
+ JVSPATIAL_WEBHOOK_HMAC_SECRET=your-webhook-hmac-secret-replace-in-production
318
+
319
+ # HMAC Algorithm for Signature Verification
320
+ # Options: sha256, sha1, sha512
321
+ # Default: sha256 (recommended)
322
+ JVSPATIAL_WEBHOOK_HMAC_ALGORITHM=sha256
323
+
324
+ # Maximum Webhook Payload Size (bytes)
325
+ # Prevents memory exhaustion from large payloads
326
+ # Default: 1048576 (1MB)
327
+ JVSPATIAL_WEBHOOK_MAX_PAYLOAD_SIZE=1048576
328
+
329
+ # Webhook Idempotency TTL (seconds)
330
+ # How long to store idempotency keys for duplicate detection
331
+ # Default: 3600 (1 hour)
332
+ JVSPATIAL_WEBHOOK_IDEMPOTENCY_TTL=3600
333
+
334
+ # Require HTTPS for Webhook Endpoints
335
+ # Options: true, false
336
+ # Default: true (highly recommended for production)
337
+ JVSPATIAL_WEBHOOK_HTTPS_REQUIRED=true
338
+
339
+ # Service-Specific Webhook Secrets (Optional)
340
+ # These override the global HMAC secret for specific services
341
+ # JVSPATIAL_WEBHOOK_STRIPE_SECRET=whsec_your_stripe_webhook_secret
342
+ # JVSPATIAL_WEBHOOK_GITHUB_SECRET=your_github_webhook_secret
343
+ # JVSPATIAL_WEBHOOK_SLACK_SECRET=your_slack_webhook_secret
344
+
345
+ # -----------------------------------------------------------------------------
346
+ # AUTHENTICATION & JWT CONFIGURATION
347
+ # -----------------------------------------------------------------------------
348
+ # Configure user authentication, JWT tokens, and API security
349
+
350
+ # JWT Secret Key for Token Signing
351
+ # Use a cryptographically secure secret (minimum 32 characters)
352
+ # CRITICAL: Change this in production!
353
+ # Example: python -c "import secrets; print(secrets.token_urlsafe(32))"
354
+ JVSPATIAL_JWT_SECRET_KEY=your-jwt-secret-key-replace-in-production
355
+
356
+ # JWT Algorithm for Token Signing
357
+ # Options: HS256, HS384, HS512, RS256, etc.
358
+ # Default: HS256
359
+ JVSPATIAL_JWT_ALGORITHM=HS256
360
+
361
+ # JWT Token Expiration (hours)
362
+ # How long access tokens remain valid
363
+ # Default: 24 hours
364
+ JVSPATIAL_JWT_EXPIRATION_HOURS=24
365
+
366
+ # JWT Refresh Token Expiration (days)
367
+ # How long refresh tokens remain valid
368
+ # Default: 30 days
369
+ JVSPATIAL_JWT_REFRESH_EXPIRATION_DAYS=30
370
+
371
+ # API Key Configuration
372
+ # Header name for API key authentication
373
+ JVSPATIAL_API_KEY_HEADER=X-API-Key
374
+
375
+ # Query parameter name for API key authentication
376
+ JVSPATIAL_API_KEY_QUERY_PARAM=api_key
377
+
378
+ # Rate Limiting Configuration
379
+ # Enable/disable rate limiting
380
+ # Options: true, false
381
+ # Default: true
382
+ JVSPATIAL_RATE_LIMIT_ENABLED=true
383
+
384
+ # Default rate limit per hour for authenticated users
385
+ # Default: 1000 requests per hour
386
+ JVSPATIAL_DEFAULT_RATE_LIMIT_PER_HOUR=1000
387
+
388
+ # Security Configuration
389
+ # Require HTTPS for authentication endpoints
390
+ # Options: true, false
391
+ # Default: true (required for production)
392
+ JVSPATIAL_REQUIRE_HTTPS=true
393
+
394
+ # Session Cookie Security
395
+ # Make session cookies secure (HTTPS only)
396
+ # Options: true, false
397
+ # Default: true
398
+ JVSPATIAL_SESSION_COOKIE_SECURE=true
399
+
400
+ # Session Cookie HTTP Only
401
+ # Prevent JavaScript access to session cookies
402
+ # Options: true, false
403
+ # Default: true
404
+ JVSPATIAL_SESSION_COOKIE_HTTPONLY=true
405
+
406
+ # -----------------------------------------------------------------------------
407
+ # FILE STORAGE CONFIGURATION
408
+ # -----------------------------------------------------------------------------
409
+ # Configure file storage backend and settings
410
+
411
+ # Enable/disable file storage
412
+ # Options: true, false
413
+ # Default: false
414
+ JVSPATIAL_FILE_STORAGE_ENABLED=false
415
+
416
+ # File storage provider
417
+ # Options: 'local' or 's3'
418
+ # Default: 'local'
419
+ JVSPATIAL_FILE_STORAGE_PROVIDER=local
420
+
421
+ # Root directory for local file storage
422
+ # Default: '.files'
423
+ JVSPATIAL_FILE_STORAGE_ROOT=.files
424
+
425
+ # Base URL for file access
426
+ # Default: 'http://localhost:8000'
427
+ JVSPATIAL_FILE_STORAGE_BASE_URL=http://localhost:8000
428
+
429
+ # Maximum file size in bytes
430
+ # Default: 104857600 (100MB)
431
+ JVSPATIAL_FILE_STORAGE_MAX_SIZE=104857600
432
+
433
+ # S3 Configuration (when using 's3' provider)
434
+ JVSPATIAL_S3_BUCKET_NAME=your-bucket-name
435
+ JVSPATIAL_S3_REGION=us-east-1
436
+ JVSPATIAL_S3_ACCESS_KEY=your-access-key
437
+ JVSPATIAL_S3_SECRET_KEY=your-secret-key
438
+ JVSPATIAL_S3_ENDPOINT_URL=https://s3.amazonaws.com
439
+
440
+ # URL Proxy Configuration
441
+ # Enable URL proxy system for short URLs
442
+ # Default: false
443
+ JVSPATIAL_PROXY_ENABLED=false
444
+
445
+ # Default proxy URL expiration in seconds
446
+ # Default: 3600 (1 hour)
447
+ JVSPATIAL_PROXY_DEFAULT_EXPIRATION=3600
448
+
449
+ # Maximum proxy URL expiration in seconds
450
+ # Default: 86400 (24 hours)
451
+ JVSPATIAL_PROXY_MAX_EXPIRATION=86400
452
+
453
+ # -----------------------------------------------------------------------------
454
+ # ENVIRONMENT-SPECIFIC WEBHOOK EXAMPLES
455
+ # -----------------------------------------------------------------------------
456
+
457
+ # DEVELOPMENT ENVIRONMENT (Relaxed security for testing)
458
+ # JVSPATIAL_WEBHOOK_HTTPS_REQUIRED=false
459
+ # JVSPATIAL_WEBHOOK_HMAC_SECRET=dev-webhook-secret-not-for-production
460
+ # JVSPATIAL_JWT_SECRET_KEY=dev-jwt-secret-not-for-production
461
+ # JVSPATIAL_REQUIRE_HTTPS=false
462
+ # JVSPATIAL_SESSION_COOKIE_SECURE=false
463
+
464
+ # TESTING ENVIRONMENT (Minimal security for fast tests)
465
+ # JVSPATIAL_WEBHOOK_HTTPS_REQUIRED=false
466
+ # JVSPATIAL_WEBHOOK_IDEMPOTENCY_TTL=60
467
+ # JVSPATIAL_JWT_EXPIRATION_HOURS=1
468
+ # JVSPATIAL_RATE_LIMIT_ENABLED=false
469
+
470
+ # PRODUCTION ENVIRONMENT (Maximum security)
471
+ # JVSPATIAL_WEBHOOK_HTTPS_REQUIRED=true
472
+ # JVSPATIAL_WEBHOOK_HMAC_SECRET=prod-webhook-secret-64-chars-minimum
473
+ # JVSPATIAL_JWT_SECRET_KEY=prod-jwt-secret-64-chars-minimum
474
+ # JVSPATIAL_REQUIRE_HTTPS=true
475
+ # JVSPATIAL_SESSION_COOKIE_SECURE=true
476
+ # JVSPATIAL_DEFAULT_RATE_LIMIT_PER_HOUR=500
477
+
478
+ # -----------------------------------------------------------------------------
479
+ # SECURITY NOTES
480
+ # -----------------------------------------------------------------------------
481
+ #
482
+ # 1. CRITICAL: Never commit .env files with real secrets to version control
483
+ # 2. Use cryptographically secure secrets (minimum 32 characters)
484
+ # 3. Rotate secrets regularly in production
485
+ # 4. Use strong passwords for MongoDB authentication
486
+ # 5. Restrict MongoDB network access in production
487
+ # 6. Use MongoDB Atlas or properly secured self-hosted instances
488
+ # 7. Consider using secrets management in production (AWS Secrets Manager, etc.)
489
+ # 8. Enable HTTPS in production for all authentication endpoints
490
+ # 9. Use secure session cookies in production
491
+ # 10. Monitor webhook endpoints for suspicious activity
492
+ #
493
+ # -----------------------------------------------------------------------------
@@ -0,0 +1,15 @@
1
+ [flake8]
2
+ max-line-length = 88
3
+ extend-ignore = E203, E266, E501, W503, ANN101, ANN102, ANN204, ANN201, ANN001, ANN003, ANN202, D107, D202, D401
4
+ exclude =
5
+ .git,
6
+ __pycache__,
7
+ .venv,
8
+ .pytest_cache,
9
+ .vscode,
10
+ build,
11
+ dist,
12
+ docs,
13
+ migrations
14
+ per-file-ignores =
15
+ tests/*: E402
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to report any bugs in jvspatial
4
+ title: "[BUG]: "
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Describe the bug**
11
+ A clear and concise description of what the bug is.
12
+
13
+ **To Reproduce**
14
+ Steps to reproduce the behavior:
15
+ 1. Go to '...'
16
+ 2. Click on '....'
17
+ 3. Scroll down to '....'
18
+ 4. See error
19
+
20
+ **Expected behavior**
21
+ A clear and concise description of what you expected to happen.
22
+
23
+ **Screenshots**
24
+ If applicable, add screenshots to help explain your problem.
25
+
26
+ **Environment (please complete the following information):**
27
+ - Python Version [e.g. 3.12]
28
+ - Jaclang Version [e.g. 0.7.27]
29
+ - Jivas Version [e.g. 2.0.0]
30
+ - jvspatial Version [e.g 0.0.1]
31
+
32
+ **Additional context**
33
+ Add any other context about the problem here.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for jvspatial
4
+ title: "[Feature Request]: "
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Is your feature request related to a problem? Please describe.**
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ **Describe the solution you'd like**
14
+ A clear and concise description of what you want to happen.
15
+
16
+ **Describe alternatives you've considered**
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ **Additional context**
20
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,40 @@
1
+ ---
2
+ name: Refactor Request
3
+ about: Request a refactor to core jvspatial functionality
4
+ title: "[Refactor Request]: "
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ ## Summary
11
+ Provide a brief description of the refactor you are proposing. Focus on the high-level goal of the change.
12
+
13
+ ## Current Problem
14
+ Describe the current issues with the existing code. Examples:
15
+ - Poor readability or maintainability
16
+ - Duplication of code
17
+ - Performance bottlenecks
18
+ - Lack of extensibility
19
+
20
+ ## Proposed Solution
21
+ Explain the refactor you are suggesting:
22
+ - Outline how the code will be reorganized, improved, or optimized.
23
+ - Specify any best practices or patterns you aim to implement.
24
+ - Highlight tools, libraries, or approaches you plan to leverage.
25
+
26
+ ## Expected Benefits
27
+ Describe the outcomes and benefits of this refactor:
28
+ - Enhanced code quality
29
+ - Improved maintainability
30
+ - Better performance
31
+ - Simplified debugging or testing
32
+
33
+ ## Scope of Changes
34
+ List the modules, files, or components that are likely to be impacted:
35
+ - [ ] Module/File 1
36
+ - [ ] Module/File 2
37
+ - [ ] Component 3
38
+
39
+ ## Additional Notes
40
+ Include any additional context or examples that will help clarify the refactor. Add links to related issues, discussions, or documentation, if applicable.
@@ -0,0 +1,76 @@
1
+ ## **Type of Change**
2
+ What type of change does this PR introduce? Mark all that apply:
3
+ - [ ] πŸ› Bug Fix
4
+ - [ ] πŸš€ Feature Request
5
+ - [ ] πŸ”„ Refactor
6
+ - [ ] πŸ“– Documentation Update
7
+ - [ ] πŸ”§ Other (Please specify):
8
+
9
+ ---
10
+
11
+ ## **Summary**
12
+ ### **What does this PR address?**
13
+ Provide a concise summary of the changes introduced in this pull request. Specify if it resolves an issue, adds a feature, or refactors code.
14
+
15
+ For example:
16
+ - Resolves #ISSUE_ID
17
+ - Adds feature for X
18
+ - Refactors Y to improve Z
19
+
20
+ ---
21
+
22
+ ## **Description**
23
+ ### **Bug Fixes**:
24
+ If this PR fixes a bug, please provide:
25
+ - A brief description of the bug.
26
+ - The root cause of the issue.
27
+ - How this PR resolves the issue.
28
+
29
+ ### **Feature Request**:
30
+ If this PR adds a new feature, please provide:
31
+ - A brief description of the feature.
32
+ - The motivation for introducing it.
33
+ - Any relevant details about implementation.
34
+
35
+ ### **Refactor Request**:
36
+ If this PR refactors code, please provide:
37
+ - The specific area of code refactored.
38
+ - The problem with the current implementation.
39
+ - The improvements made in the refactor.
40
+
41
+ ---
42
+
43
+ ## **Changes Made**
44
+ ### High-Level Summary:
45
+ List the key changes made in this PR:
46
+ 1. Change 1
47
+ 2. Change 2
48
+ 3. Change 3
49
+
50
+ ---
51
+
52
+ ## **Checklist**
53
+ Mark all that apply:
54
+ - [ ] Code follows the project’s coding guidelines.
55
+ - [ ] Tests have been added or updated for new functionality.
56
+ - [ ] Documentation has been updated (if applicable).
57
+ - [ ] Existing tests pass locally with these changes.
58
+ - [ ] Any dependencies introduced are justified and documented.
59
+
60
+ ---
61
+
62
+ ## **Steps to Test**
63
+ Provide a clear set of steps for testing the changes introduced in this PR:
64
+ 1. Step 1
65
+ 2. Step 2
66
+ 3. Step 3
67
+
68
+ ---
69
+
70
+ ## **Additional Context**
71
+ If necessary, provide additional context, screenshots, or relevant references for the changes in this PR.
72
+
73
+ ---
74
+
75
+ ## **Questions or Concerns**
76
+ Are there any open questions or areas of concern related to this PR? If so, mention them here.
@@ -0,0 +1,7 @@
1
+ # .github/release.yml
2
+
3
+ changelog:
4
+ categories:
5
+ - title: πŸš€ Features | Bug Fixes πŸ› | Refactor πŸ”„
6
+ labels:
7
+ - '*'