dataenginex 0.9.9__tar.gz → 1.0.0__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 (304) hide show
  1. {dataenginex-0.9.9/docs → dataenginex-1.0.0/.github}/release-pr-template.md +3 -3
  2. {dataenginex-0.9.9 → dataenginex-1.0.0}/.github/workflows/ci.yml +25 -2
  3. dataenginex-1.0.0/.github/workflows/docs-notify.yml +18 -0
  4. {dataenginex-0.9.9 → dataenginex-1.0.0}/.github/workflows/release-please.yml +1 -0
  5. {dataenginex-0.9.9 → dataenginex-1.0.0}/.github/workflows/security.yml +1 -0
  6. {dataenginex-0.9.9 → dataenginex-1.0.0}/.gitignore +3 -0
  7. dataenginex-1.0.0/.release-please-manifest.json +3 -0
  8. {dataenginex-0.9.9 → dataenginex-1.0.0}/CHANGELOG.md +60 -0
  9. dataenginex-1.0.0/CLAUDE.md +59 -0
  10. dataenginex-1.0.0/CODE_OF_CONDUCT.md +57 -0
  11. {dataenginex-0.9.9 → dataenginex-1.0.0}/PKG-INFO +1 -2
  12. {dataenginex-0.9.9 → dataenginex-1.0.0}/README.md +1 -1
  13. dataenginex-1.0.0/SECURITY.md +71 -0
  14. dataenginex-0.9.9/docs/CI_CD.md → dataenginex-1.0.0/docs/ci-cd.md +3 -3
  15. dataenginex-0.9.9/docs/CONTRIBUTING.md → dataenginex-1.0.0/docs/contributing.md +10 -8
  16. dataenginex-0.9.9/docs/DEVELOPMENT.md → dataenginex-1.0.0/docs/development.md +2 -2
  17. dataenginex-1.0.0/docs/index.md +10 -0
  18. dataenginex-0.9.9/docs/OBSERVABILITY.md → dataenginex-1.0.0/docs/observability.md +4 -4
  19. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/quickstart.md +2 -2
  20. dataenginex-0.9.9/docs/SDLC.md → dataenginex-1.0.0/docs/sdlc.md +5 -5
  21. dataenginex-1.0.0/docs/superpowers/plans/2026-03-28-unified-docs-and-tooling.md +2137 -0
  22. dataenginex-1.0.0/docs/superpowers/specs/2026-03-28-unified-docs-and-tooling-design.md +683 -0
  23. {dataenginex-0.9.9 → dataenginex-1.0.0}/poe_tasks.toml +10 -23
  24. {dataenginex-0.9.9 → dataenginex-1.0.0}/pyproject.toml +10 -4
  25. dataenginex-1.0.0/release-please-config.json +23 -0
  26. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/__init__.py +1 -1
  27. dataenginex-1.0.0/src/dataenginex/ai/__init__.py +79 -0
  28. dataenginex-1.0.0/src/dataenginex/ai/memory/__init__.py +16 -0
  29. dataenginex-1.0.0/src/dataenginex/ai/memory/base.py +59 -0
  30. dataenginex-1.0.0/src/dataenginex/ai/memory/episodic.py +40 -0
  31. dataenginex-1.0.0/src/dataenginex/ai/memory/long_term.py +52 -0
  32. dataenginex-1.0.0/src/dataenginex/ai/observability/__init__.py +9 -0
  33. dataenginex-1.0.0/src/dataenginex/ai/observability/audit.py +34 -0
  34. dataenginex-1.0.0/src/dataenginex/ai/observability/cost.py +57 -0
  35. dataenginex-1.0.0/src/dataenginex/ai/observability/metrics.py +26 -0
  36. dataenginex-1.0.0/src/dataenginex/ai/routing/__init__.py +7 -0
  37. dataenginex-1.0.0/src/dataenginex/ai/routing/anthropic.py +58 -0
  38. dataenginex-1.0.0/src/dataenginex/ai/routing/huggingface.py +36 -0
  39. dataenginex-1.0.0/src/dataenginex/ai/routing/ollama.py +48 -0
  40. dataenginex-1.0.0/src/dataenginex/ai/routing/openai.py +58 -0
  41. dataenginex-1.0.0/src/dataenginex/ai/routing/router.py +56 -0
  42. dataenginex-1.0.0/src/dataenginex/ai/runtime/__init__.py +27 -0
  43. dataenginex-1.0.0/src/dataenginex/ai/runtime/checkpoint.py +31 -0
  44. dataenginex-1.0.0/src/dataenginex/ai/runtime/executor.py +173 -0
  45. dataenginex-1.0.0/src/dataenginex/ai/runtime/sandbox.py +220 -0
  46. dataenginex-1.0.0/src/dataenginex/ai/workflows/__init__.py +9 -0
  47. dataenginex-1.0.0/src/dataenginex/ai/workflows/conditions.py +48 -0
  48. dataenginex-1.0.0/src/dataenginex/ai/workflows/dag.py +124 -0
  49. dataenginex-1.0.0/src/dataenginex/ai/workflows/human_loop.py +47 -0
  50. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/data/pipeline/run_history.py +1 -0
  51. dataenginex-1.0.0/src/dataenginex/data/quality/__init__.py +7 -0
  52. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/data/quality/gates.py +69 -2
  53. dataenginex-1.0.0/src/dataenginex/data/quality/spark.py +89 -0
  54. dataenginex-1.0.0/src/dataenginex/secops/audit.py +258 -0
  55. dataenginex-1.0.0/tests/unit/test_ai_modules.py +755 -0
  56. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_llm.py +24 -4
  57. dataenginex-1.0.0/tests/unit/test_quality_gates.py +97 -0
  58. dataenginex-1.0.0/tests/unit/test_quality_spark.py +93 -0
  59. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_run_history.py +1 -0
  60. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_secops.py +53 -0
  61. {dataenginex-0.9.9 → dataenginex-1.0.0}/uv.lock +57 -1078
  62. dataenginex-0.9.9/.release-please-manifest.json +0 -3
  63. dataenginex-0.9.9/CLAUDE.md +0 -171
  64. dataenginex-0.9.9/docs/docs-hub.md +0 -103
  65. dataenginex-0.9.9/docs/index.md +0 -10
  66. dataenginex-0.9.9/mkdocs.yml +0 -61
  67. dataenginex-0.9.9/release-please-config.json +0 -18
  68. dataenginex-0.9.9/src/dataenginex/ai/__init__.py +0 -13
  69. dataenginex-0.9.9/src/dataenginex/data/quality/__init__.py +0 -7
  70. dataenginex-0.9.9/src/dataenginex/secops/audit.py +0 -156
  71. dataenginex-0.9.9/tests/unit/test_quality_gates.py +0 -51
  72. {dataenginex-0.9.9 → dataenginex-1.0.0}/.claude/commands/new-feature.md +0 -0
  73. {dataenginex-0.9.9 → dataenginex-1.0.0}/.claude/commands/validate.md +0 -0
  74. {dataenginex-0.9.9 → dataenginex-1.0.0}/.claude/settings.json +0 -0
  75. {dataenginex-0.9.9 → dataenginex-1.0.0}/.env.template +0 -0
  76. {dataenginex-0.9.9 → dataenginex-1.0.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  77. {dataenginex-0.9.9 → dataenginex-1.0.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  78. {dataenginex-0.9.9 → dataenginex-1.0.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  79. {dataenginex-0.9.9 → dataenginex-1.0.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  80. {dataenginex-0.9.9 → dataenginex-1.0.0}/.github/dependabot.yml +0 -0
  81. {dataenginex-0.9.9 → dataenginex-1.0.0}/.github/labels.yml +0 -0
  82. {dataenginex-0.9.9 → dataenginex-1.0.0}/.github/workflows/auto-pr-dev-to-main.yml +0 -0
  83. {dataenginex-0.9.9 → dataenginex-1.0.0}/.github/workflows/auto-pr-to-dev.yml +0 -0
  84. {dataenginex-0.9.9 → dataenginex-1.0.0}/.github/workflows/claude.yml +0 -0
  85. {dataenginex-0.9.9 → dataenginex-1.0.0}/.github/workflows/docker-build-push.yml +0 -0
  86. {dataenginex-0.9.9 → dataenginex-1.0.0}/.github/workflows/enforce-dev-to-main.yml +0 -0
  87. {dataenginex-0.9.9 → dataenginex-1.0.0}/.github/workflows/label-sync.yml +0 -0
  88. {dataenginex-0.9.9 → dataenginex-1.0.0}/.github/workflows/pypi-publish.yml +0 -0
  89. {dataenginex-0.9.9 → dataenginex-1.0.0}/.github/workflows/release-dex.yml +0 -0
  90. {dataenginex-0.9.9 → dataenginex-1.0.0}/.gitleaks.toml +0 -0
  91. {dataenginex-0.9.9 → dataenginex-1.0.0}/.pre-commit-config.yaml +0 -0
  92. {dataenginex-0.9.9 → dataenginex-1.0.0}/.python-version +0 -0
  93. {dataenginex-0.9.9 → dataenginex-1.0.0}/CODEOWNERS +0 -0
  94. {dataenginex-0.9.9 → dataenginex-1.0.0}/CONTRIBUTING.md +0 -0
  95. {dataenginex-0.9.9 → dataenginex-1.0.0}/Dockerfile +0 -0
  96. {dataenginex-0.9.9 → dataenginex-1.0.0}/LICENSE +0 -0
  97. {dataenginex-0.9.9 → dataenginex-1.0.0}/docker-compose.test.yml +0 -0
  98. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/adr/0000-template.md +0 -0
  99. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/adr/0001-medallion-architecture.md +0 -0
  100. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/api-reference/api.md +0 -0
  101. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/api-reference/core.md +0 -0
  102. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/api-reference/dashboard.md +0 -0
  103. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/api-reference/data.md +0 -0
  104. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/api-reference/index.md +0 -0
  105. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/api-reference/lakehouse.md +0 -0
  106. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/api-reference/middleware.md +0 -0
  107. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/api-reference/ml.md +0 -0
  108. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/api-reference/plugins.md +0 -0
  109. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/api-reference/warehouse.md +0 -0
  110. /dataenginex-0.9.9/docs/ARCHITECTURE.md → /dataenginex-1.0.0/docs/architecture.md +0 -0
  111. /dataenginex-0.9.9/docs/RELEASE_NOTES.md → /dataenginex-1.0.0/docs/release-notes.md +0 -0
  112. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/roadmap/project-roadmap.csv +0 -0
  113. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/roadmap/project-roadmap.json +0 -0
  114. /dataenginex-0.9.9/docs/SECURITY_SCANNING.md → /dataenginex-1.0.0/docs/security-scanning.md +0 -0
  115. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/superpowers/plans/2026-03-21-phase-0-foundation.md +0 -0
  116. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/superpowers/plans/2026-03-22-dataenginex-1.0-master-plan.md +0 -0
  117. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/superpowers/plans/2026-03-22-phase-1-data-layer.md +0 -0
  118. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/superpowers/plans/2026-03-22-phase-6a-dex-engine-integration.md +0 -0
  119. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/superpowers/plans/2026-03-22-phase-6b-dex-studio-redesign.md +0 -0
  120. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/superpowers/plans/2026-03-23-careerdex-example.md +0 -0
  121. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/superpowers/plans/2026-03-23-dex-studio-direct-import.md +0 -0
  122. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/superpowers/plans/2026-03-24-dex-naming-architecture-dry.md +0 -0
  123. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/superpowers/specs/2026-03-21-dataenginex-v2-system-redesign.md +0 -0
  124. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/superpowers/specs/2026-03-22-phase-6-integration-design.md +0 -0
  125. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/superpowers/specs/2026-03-23-dex-studio-direct-import-design.md +0 -0
  126. {dataenginex-0.9.9 → dataenginex-1.0.0}/docs/superpowers/specs/2026-03-24-dex-naming-architecture-dry-design.md +0 -0
  127. {dataenginex-0.9.9 → dataenginex-1.0.0}/examples/01_hello_pipeline.py +0 -0
  128. {dataenginex-0.9.9 → dataenginex-1.0.0}/examples/02_api_quickstart.py +0 -0
  129. {dataenginex-0.9.9 → dataenginex-1.0.0}/examples/03_quality_gate.py +0 -0
  130. {dataenginex-0.9.9 → dataenginex-1.0.0}/examples/04_ml_training.py +0 -0
  131. {dataenginex-0.9.9 → dataenginex-1.0.0}/examples/05_rag_demo.py +0 -0
  132. {dataenginex-0.9.9 → dataenginex-1.0.0}/examples/06_llm_quickstart.py +0 -0
  133. {dataenginex-0.9.9 → dataenginex-1.0.0}/examples/07_api_ingestion.py +0 -0
  134. {dataenginex-0.9.9 → dataenginex-1.0.0}/examples/08_spark_ml.py +0 -0
  135. {dataenginex-0.9.9 → dataenginex-1.0.0}/examples/09_feature_engineering.py +0 -0
  136. {dataenginex-0.9.9 → dataenginex-1.0.0}/examples/10_model_analysis.py +0 -0
  137. {dataenginex-0.9.9 → dataenginex-1.0.0}/examples/GUIDE.md +0 -0
  138. {dataenginex-0.9.9 → dataenginex-1.0.0}/examples/dashboard/dashboard_config.yaml +0 -0
  139. {dataenginex-0.9.9 → dataenginex-1.0.0}/examples/dashboard/run_dashboard.py +0 -0
  140. {dataenginex-0.9.9 → dataenginex-1.0.0}/examples/dex.yaml +0 -0
  141. {dataenginex-0.9.9 → dataenginex-1.0.0}/examples/movies.csv +0 -0
  142. {dataenginex-0.9.9 → dataenginex-1.0.0}/scripts/GUIDE.md +0 -0
  143. {dataenginex-0.9.9 → dataenginex-1.0.0}/scripts/localstack/create-buckets.sh +0 -0
  144. {dataenginex-0.9.9 → dataenginex-1.0.0}/scripts/promote.sh +0 -0
  145. {dataenginex-0.9.9 → dataenginex-1.0.0}/sonar-project.properties +0 -0
  146. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/README.md +0 -0
  147. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/RELEASE_NOTES.md +0 -0
  148. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/ai/agents/__init__.py +0 -0
  149. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/ai/agents/builtin.py +0 -0
  150. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/ai/retrieval/__init__.py +0 -0
  151. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/ai/retrieval/builtin.py +0 -0
  152. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/ai/tools/__init__.py +0 -0
  153. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/ai/tools/builtin.py +0 -0
  154. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/api/__init__.py +0 -0
  155. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/api/auth.py +0 -0
  156. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/api/errors.py +0 -0
  157. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/api/factory.py +0 -0
  158. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/api/health.py +0 -0
  159. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/api/pagination.py +0 -0
  160. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/api/rate_limit.py +0 -0
  161. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/api/routers/__init__.py +0 -0
  162. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/api/routers/ai.py +0 -0
  163. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/api/routers/data.py +0 -0
  164. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/api/routers/health.py +0 -0
  165. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/api/routers/ml.py +0 -0
  166. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/api/routers/pipelines.py +0 -0
  167. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/api/routers/root.py +0 -0
  168. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/api/routers/system.py +0 -0
  169. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/api/schemas.py +0 -0
  170. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/cli/__init__.py +0 -0
  171. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/cli/main.py +0 -0
  172. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/cli/run.py +0 -0
  173. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/cli/serve.py +0 -0
  174. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/cli/train.py +0 -0
  175. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/config/__init__.py +0 -0
  176. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/config/defaults.py +0 -0
  177. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/config/loader.py +0 -0
  178. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/config/schema.py +0 -0
  179. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/core/__init__.py +0 -0
  180. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/core/exceptions.py +0 -0
  181. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/core/interfaces.py +0 -0
  182. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/core/medallion_architecture.py +0 -0
  183. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/core/quality.py +0 -0
  184. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/core/registry.py +0 -0
  185. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/core/schemas.py +0 -0
  186. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/core/validators.py +0 -0
  187. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/dashboard/__init__.py +0 -0
  188. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/dashboard/app.py +0 -0
  189. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/dashboard/panels.py +0 -0
  190. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/data/__init__.py +0 -0
  191. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/data/connectors/__init__.py +0 -0
  192. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/data/connectors/csv.py +0 -0
  193. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/data/connectors/duckdb.py +0 -0
  194. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/data/connectors/legacy.py +0 -0
  195. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/data/pipeline/__init__.py +0 -0
  196. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/data/pipeline/dag.py +0 -0
  197. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/data/pipeline/runner.py +0 -0
  198. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/data/profiler.py +0 -0
  199. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/data/registry.py +0 -0
  200. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/data/transforms/__init__.py +0 -0
  201. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/data/transforms/sql.py +0 -0
  202. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/lakehouse/__init__.py +0 -0
  203. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/lakehouse/catalog.py +0 -0
  204. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/lakehouse/partitioning.py +0 -0
  205. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/lakehouse/storage.py +0 -0
  206. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/middleware/__init__.py +0 -0
  207. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/middleware/logging_config.py +0 -0
  208. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/middleware/metrics.py +0 -0
  209. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/middleware/metrics_middleware.py +0 -0
  210. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/middleware/request_logging.py +0 -0
  211. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/middleware/tracing.py +0 -0
  212. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/ml/__init__.py +0 -0
  213. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/ml/drift.py +0 -0
  214. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/ml/features/__init__.py +0 -0
  215. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/ml/features/builtin.py +0 -0
  216. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/ml/llm.py +0 -0
  217. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/ml/metrics.py +0 -0
  218. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/ml/mlflow_registry.py +0 -0
  219. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/ml/registry.py +0 -0
  220. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/ml/scheduler.py +0 -0
  221. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/ml/serving.py +0 -0
  222. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/ml/serving_engine/__init__.py +0 -0
  223. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/ml/serving_engine/builtin.py +0 -0
  224. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/ml/tracking/__init__.py +0 -0
  225. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/ml/tracking/builtin.py +0 -0
  226. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/ml/training.py +0 -0
  227. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/ml/vectorstore.py +0 -0
  228. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/orchestration/__init__.py +0 -0
  229. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/orchestration/builtin.py +0 -0
  230. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/plugins/__init__.py +0 -0
  231. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/plugins/registry.py +0 -0
  232. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/py.typed +0 -0
  233. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/secops/__init__.py +0 -0
  234. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/secops/gate.py +0 -0
  235. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/secops/masking.py +0 -0
  236. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/secops/pii.py +0 -0
  237. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/warehouse/__init__.py +0 -0
  238. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/warehouse/lineage.py +0 -0
  239. {dataenginex-0.9.9 → dataenginex-1.0.0}/src/dataenginex/warehouse/transforms.py +0 -0
  240. {dataenginex-0.9.9 → dataenginex-1.0.0}/tasks/findings.md +0 -0
  241. {dataenginex-0.9.9 → dataenginex-1.0.0}/tasks/lessons.md +0 -0
  242. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/__init__.py +0 -0
  243. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/conformance/__init__.py +0 -0
  244. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/conformance/test_connector.py +0 -0
  245. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/conformance/test_feature_store.py +0 -0
  246. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/conformance/test_tracker.py +0 -0
  247. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/conformance/test_transform.py +0 -0
  248. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/conftest.py +0 -0
  249. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/fixtures/__init__.py +0 -0
  250. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/fixtures/sample_data.py +0 -0
  251. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/fixtures/sample_jobs.csv +0 -0
  252. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/fixtures/sample_jobs.json +0 -0
  253. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/integration/__init__.py +0 -0
  254. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/integration/test_cli_run.py +0 -0
  255. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/integration/test_config_cli.py +0 -0
  256. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/integration/test_full_app.py +0 -0
  257. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/integration/test_pipeline_e2e.py +0 -0
  258. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/integration/test_storage_real.py +0 -0
  259. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/load/__init__.py +0 -0
  260. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/__init__.py +0 -0
  261. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_agent_runtime.py +0 -0
  262. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_ai_router.py +0 -0
  263. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_api_auth.py +0 -0
  264. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_api_factory.py +0 -0
  265. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_api_pagination.py +0 -0
  266. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_api_rate_limit.py +0 -0
  267. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_api_schemas.py +0 -0
  268. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_api_validators.py +0 -0
  269. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_builtin_agent.py +0 -0
  270. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_builtin_feature_store.py +0 -0
  271. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_builtin_serving.py +0 -0
  272. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_builtin_tracker.py +0 -0
  273. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_cli_train.py +0 -0
  274. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_config_loader.py +0 -0
  275. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_config_schema.py +0 -0
  276. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_core_exceptions.py +0 -0
  277. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_core_interfaces.py +0 -0
  278. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_core_registry.py +0 -0
  279. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_csv_connector.py +0 -0
  280. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_data.py +0 -0
  281. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_data_router.py +0 -0
  282. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_drift_scheduler.py +0 -0
  283. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_duckdb_connector.py +0 -0
  284. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_errors.py +0 -0
  285. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_health.py +0 -0
  286. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_lakehouse.py +0 -0
  287. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_logging.py +0 -0
  288. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_medallion.py +0 -0
  289. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_metrics.py +0 -0
  290. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_middleware.py +0 -0
  291. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_ml.py +0 -0
  292. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_ml_router.py +0 -0
  293. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_pipeline_dag.py +0 -0
  294. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_pipeline_runner.py +0 -0
  295. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_plugins.py +0 -0
  296. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_retriever.py +0 -0
  297. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_scheduler.py +0 -0
  298. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_spark_fixtures.py +0 -0
  299. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_sql_transforms.py +0 -0
  300. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_storage_abstraction.py +0 -0
  301. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_system_router.py +0 -0
  302. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_tracing.py +0 -0
  303. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_vectorstore.py +0 -0
  304. {dataenginex-0.9.9 → dataenginex-1.0.0}/tests/unit/test_warehouse.py +0 -0
@@ -1,11 +1,11 @@
1
1
  # Release PR Template
2
2
 
3
- Use this template whenever opening a release PR (`dev → main`). Reference `RELEASE_NOTES.md` and verify QA steps before merging.
3
+ Use this template whenever opening a release PR (`dev → main`). Reference `release-notes.md` and verify QA steps before merging.
4
4
 
5
5
  ## Summary
6
6
 
7
7
  - Describe what changed (e.g., alerts, APIs, docs).
8
- - Link to the release note: [RELEASE_NOTES.md](RELEASE_NOTES.md).
8
+ - Link to the release note: [release-notes.md](release-notes.md).
9
9
  - Note any rollout considerations (e.g., Alertmanager rules, Docker image tag).
10
10
 
11
11
  ## Verification
@@ -13,7 +13,7 @@ Use this template whenever opening a release PR (`dev → main`). Reference `REL
13
13
  - `uv run poe lint`
14
14
  - `./.venv/bin/pytest -v`
15
15
  - `docker compose build`
16
- - Reload Prometheus/Alertmanager (see `OBSERVABILITY.md` → "Reloading Alert Rules").
16
+ - Reload Prometheus/Alertmanager (see `observability.md` → "Reloading Alert Rules").
17
17
 
18
18
  ## QA Checklist
19
19
 
@@ -5,6 +5,11 @@ on:
5
5
  branches: [main, dev]
6
6
  pull_request:
7
7
  branches: [main, dev]
8
+ workflow_dispatch:
9
+
10
+ schedule:
11
+ # Weekly Python version compatibility check
12
+ - cron: '0 0 * * 0'
8
13
 
9
14
  permissions:
10
15
  contents: read
@@ -25,7 +30,7 @@ jobs:
25
30
  - run: uv run poe quality
26
31
 
27
32
  test:
28
- name: Tests
33
+ name: Tests (Python 3.13)
29
34
  runs-on: ubuntu-latest
30
35
  needs: quality
31
36
  steps:
@@ -38,9 +43,27 @@ jobs:
38
43
  env:
39
44
  UV_PROJECT_ENVIRONMENT: .venv
40
45
  - run: uv run poe test-cov-core
41
- - uses: codecov/codecov-action@v5
46
+ - uses: codecov/codecov-action@v6
42
47
  with:
43
48
  flags: dataenginex
44
49
  fail_ci_if_error: false
45
50
  env:
46
51
  CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
52
+
53
+ test-compat:
54
+ name: Python Compatibility
55
+ runs-on: ubuntu-latest
56
+ if: github.event_name == 'schedule'
57
+ strategy:
58
+ matrix:
59
+ python-version: ["3.11", "3.12"]
60
+ steps:
61
+ - uses: actions/checkout@v6
62
+ - uses: astral-sh/setup-uv@v7
63
+ with:
64
+ version: "latest"
65
+ python-version: ${{ matrix.python-version }}
66
+ - run: uv sync --group ml
67
+ env:
68
+ UV_PROJECT_ENVIRONMENT: .venv
69
+ - run: uv run poe check-all
@@ -0,0 +1,18 @@
1
+ name: Notify Docs
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ paths: ['docs/**', 'src/**/**.py']
7
+
8
+ jobs:
9
+ notify:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: peter-evans/repository-dispatch@v4
13
+ with:
14
+ token: ${{ secrets.DOCS_DISPATCH_TOKEN }}
15
+ repository: TheDataEngineX/docs
16
+ event-type: docs-update
17
+ client-payload: >-
18
+ {"repo": "${{ github.repository }}", "ref": "${{ github.sha }}"}
@@ -4,6 +4,7 @@ on:
4
4
  push:
5
5
  branches:
6
6
  - main
7
+ workflow_dispatch:
7
8
 
8
9
  permissions:
9
10
  contents: write
@@ -5,6 +5,7 @@ on:
5
5
  branches: [main, dev]
6
6
  pull_request:
7
7
  branches: [main, dev]
8
+ workflow_dispatch:
8
9
 
9
10
  permissions:
10
11
  contents: read
@@ -87,3 +87,6 @@ Notes.txt
87
87
  # Claude Code — local overrides (personal, never commit)
88
88
  .claude/settings.local.json
89
89
  .superpowers/
90
+
91
+ # AI Coding Assistant
92
+ .continue/
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.10.0"
3
+ }
@@ -5,8 +5,68 @@ All notable changes to `dataenginex` will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.10.0](https://github.com/TheDataEngineX/dex/compare/v0.9.9...v0.10.0) (2026-04-01)
9
+
10
+
11
+ ### Features
12
+
13
+ * docs cleanup ([f4eff14](https://github.com/TheDataEngineX/dex/commit/f4eff14a1aeed657b715b182ac495c920f7b701f))
14
+ * docs notify ([#210](https://github.com/TheDataEngineX/dex/issues/210)) ([c36616d](https://github.com/TheDataEngineX/dex/commit/c36616d9d0ae7a97274bd40ea41f39bc26f68fe0))
15
+ * quality schema spark audit ([#212](https://github.com/TheDataEngineX/dex/issues/212)) ([2965801](https://github.com/TheDataEngineX/dex/commit/2965801257f6949a48f1c59be2f88e92294b4691))
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * add last-release-sha to anchor release-please at v0.9.9 ([7e78ca2](https://github.com/TheDataEngineX/dex/commit/7e78ca203347ff4c4000ca6ec42c335650da1b86))
21
+ * restructure release-please-config to packages format with last-release-sha ([46f0b69](https://github.com/TheDataEngineX/dex/commit/46f0b69b8372d54d26ba60eedd9095d7fb0f6cd3))
22
+ * sync dev to main ([40d5dff](https://github.com/TheDataEngineX/dex/commit/40d5dff99ae4295599badc848cd530df6eff9ffb))
23
+
24
+
25
+ ### Documentation
26
+
27
+ * docs cleanup ([#211](https://github.com/TheDataEngineX/dex/issues/211)) ([0a6b7f7](https://github.com/TheDataEngineX/dex/commit/0a6b7f70287eb7399eb17acea2fb0ad09efd0597))
28
+
8
29
  ## [Unreleased]
9
30
 
31
+ ## [1.0.0] - 2026-04-07
32
+
33
+ ### Highlights
34
+
35
+ - **Complete Data + ML + AI Framework**: All phases from the v1.0 master plan implemented — config-driven pipeline via `dex.yaml`, BackendRegistry pattern for swappable backends, unified CLI.
36
+ - **Data Layer**: DuckDB connector (default), CSV connector, PipelineRunner with DAG resolution, transforms (filter, derive, cast, deduplicate), quality gates (completeness, uniqueness), column-level lineage tracking, built-in cron scheduler.
37
+ - **ML Layer**: SQLite-backed experiment tracker, DuckDB feature store, sklearn/xgboost training integration, model registry with versioning (dev → staging → production), built-in model serving via FastAPI, PSI drift detection.
38
+ - **AI Layer**: Built-in ReAct agent runtime, Ollama LLM provider (default), tool registry (sql_query, predict, search), BM25 sparse retrieval (DuckDB FTS), dense vector retrieval (DuckDB VSS HNSW), hybrid retrieval with RRF fusion, agent memory (short-term + episodic).
39
+ - **CLI Commands**: `dex init`, `dex validate`, `dex version`, `dex serve`, `dex run`, `dex train`, `dex agent`, `dex query`.
40
+ - **API**: FastAPI app factory, JWT auth, rate limiting, health endpoints, project CRUD, pipeline run/status, data explorer, ML experiments/models, agent chat/manage, WebSocket for live logs and streaming.
41
+ - **Backend Registry Pattern**: Every subsystem follows ABC + BackendRegistry[T] pattern with built-in implementations and optional extras (Dagster, MLflow, Qdrant, LanceDB, sentence-transformers, PySpark).
42
+
43
+ ### Breaking Changes
44
+
45
+ - **FastAPI now optional**: Core install (`pip install dataenginex`) includes only lightweight deps. Install `[api]` extra for FastAPI/uvicorn: `pip install dataenginex[api]`
46
+ - **Cloud SDKs now optional**: Core install no longer requires boto3/google-cloud-storage/google-cloud-bigquery. Install `[cloud]` extra: `pip install dataenginex[cloud]`
47
+ - **Routers moved**: API routers moved to application packages. Use `from dataenginex.api import ...` directly (requires `[api]` extra)
48
+ - **Root `__init__.py` slimmed**: Re-exports removed. Import from submodules directly: `from dataenginex.api import HealthChecker` etc.
49
+
50
+ ### Added
51
+
52
+ - **Full project templates**: `dex init --template [minimal|data-pipeline|ml-project|ai-agent|full-stack|career-intelligence]`
53
+ - **Docker support**: Multi-stage Dockerfile (`ghcr.io/thedataenginex/dex`), docker-compose.yml for full stack
54
+ - **SecOps**: PII scanning in pipelines, masking, audit trail
55
+ - **Quality schema**: Spark audit integration for data quality validation
56
+ - **Examples**: 5 runnable examples in `examples/` directory
57
+
58
+ ### Verification checklist
59
+
60
+ 1. `uv run poe lint` — Ruff checks clean
61
+ 2. `uv run poe typecheck` — mypy strict (all modules)
62
+ 3. `uv run poe test` — 663 passed, 36 skipped
63
+ 4. `pip install dataenginex` — installs successfully
64
+ 5. `dex validate dex.yaml` — validates config
65
+ 6. `dex version` — shows version
66
+
67
+ [Unreleased]: https://github.com/TheDataEngineX/DEX/compare/v1.0.0...HEAD
68
+ [1.0.0]: https://github.com/TheDataEngineX/DEX/releases/tag/v1.0.0
69
+
10
70
  ## [0.7.1] - 2026-03-17
11
71
 
12
72
  ### Fixed
@@ -0,0 +1,59 @@
1
+ # CLAUDE.md — DEX (dataenginex)
2
+
3
+ Brief answers only. No explanations unless asked.
4
+ Goal is to save Claude code tokens for lower cost without loosing quality.
5
+
6
+ > Repo-specific context. Workspace-level rules, coding standards, and git conventions are in `../CLAUDE.md`.
7
+
8
+ ## Project Overview
9
+
10
+ **DEX** — unified Data + ML + AI framework. Config-driven, self-hosted, production-ready.
11
+
12
+ | Package | Location | Purpose |
13
+ |---------|----------|---------|
14
+ | `dataenginex` | `src/dataenginex/` | Core framework — config, registry, CLI, API, ML, AI (routing, runtime, memory, observability, workflows) |
15
+
16
+ **Stack:** Python 3.13+ · FastAPI · DuckDB · structlog · Pydantic · Click · Rich · uv · Ruff · mypy strict · pytest
17
+
18
+ **Version:** `uv run poe version`
19
+
20
+ **Domain:** thedataenginex.org | **Org:** github.com/TheDataEngineX
21
+
22
+ ______________________________________________________________________
23
+
24
+ ## Build & Run Commands
25
+
26
+ ```bash
27
+ # Quality
28
+ uv run poe lint # Ruff lint
29
+ uv run poe lint-fix # Ruff lint + auto-fix
30
+ uv run poe typecheck # mypy --strict (src/dataenginex/ only)
31
+ uv run poe check-all # lint + typecheck + test
32
+
33
+ # Test
34
+ uv run poe test # All tests
35
+ uv run poe test-unit # Unit tests only
36
+ uv run poe test-integration # Integration tests only
37
+ uv run poe test-cov # Tests with coverage
38
+
39
+ # CLI
40
+ dex validate dex.yaml # Validate config file
41
+ dex version # Show version + environment
42
+
43
+ # Run
44
+ uv run poe dev # Dev server (uvicorn reload, port 17000)
45
+ uv run poe docker-up # Docker compose up
46
+ uv run poe docker-down # Docker compose down
47
+
48
+ # Deps
49
+ uv run poe uv-sync # Sync deps from lockfile
50
+ uv run poe uv-lock # Regenerate lockfile
51
+ uv run poe security # Audit deps for vulnerabilities
52
+ ```
53
+
54
+ ______________________________________________________________________
55
+
56
+ ## Mandatory Validation
57
+
58
+ Run `/validate` after ANY code change. Steps 4-5 (config validation + server smoke test) are NON-NEGOTIABLE.
59
+ Tests passing ≠ app working.
@@ -0,0 +1,57 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We as members, contributors, and leaders pledge to make participation in our
6
+ community a harassment-free experience for everyone, regardless of age, body
7
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
8
+ identity and expression, level of experience, education, socio-economic status,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ We pledge to act and interact in ways that contribute to an open, welcoming,
13
+ diverse, inclusive, and healthy community.
14
+
15
+ ## Our Standards
16
+
17
+ Examples of behavior that contributes to a positive environment:
18
+
19
+ - Using welcoming and inclusive language
20
+ - Being respectful of differing viewpoints and experiences
21
+ - Gracefully accepting constructive criticism
22
+ - Focusing on what is best for the community
23
+ - Showing empathy towards other community members
24
+
25
+ Examples of unacceptable behavior:
26
+
27
+ - The use of sexualized language or imagery, and sexual attention or advances
28
+ - Trolling, insulting or derogatory comments, and personal or political attacks
29
+ - Public or private harassment
30
+ - Publishing others' private information without explicit permission
31
+ - Other conduct which could reasonably be considered inappropriate
32
+
33
+ ## Enforcement Responsibilities
34
+
35
+ Community leaders are responsible for clarifying and enforcing our standards of
36
+ acceptable behavior and will take appropriate and fair corrective action in
37
+ response to any behavior that they deem inappropriate, threatening, offensive,
38
+ or harmful.
39
+
40
+ ## Scope
41
+
42
+ This Code of Conduct applies within all community spaces, and also applies when
43
+ an individual is officially representing the community in public spaces.
44
+
45
+ ## Enforcement
46
+
47
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
48
+ reported to the community leaders responsible for enforcement at
49
+ **conduct@thedataenginex.dev**.
50
+
51
+ All complaints will be reviewed and investigated promptly and fairly.
52
+
53
+ ## Attribution
54
+
55
+ This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org),
56
+ version 2.1, available at
57
+ <https://www.contributor-covenant.org/version/2/1/code_of_conduct.html>.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dataenginex
3
- Version: 0.9.9
3
+ Version: 1.0.0
4
4
  Summary: DataEngineX - Core framework for AI/ML/Data engineering projects
5
5
  Author-email: Jay <jayapal.myaka99@gmail.com>
6
6
  License: MIT License
@@ -40,7 +40,6 @@ Requires-Dist: prometheus-client>=0.24.1
40
40
  Requires-Dist: pyarrow>=23.0.1
41
41
  Requires-Dist: pydantic>=2.10.0
42
42
  Requires-Dist: python-dotenv>=1.2.1
43
- Requires-Dist: python-json-logger>=4.0.0
44
43
  Requires-Dist: pyyaml>=6.0.3
45
44
  Requires-Dist: rich>=14.3.3
46
45
  Requires-Dist: structlog>=25.5.0
@@ -112,7 +112,7 @@ ______________________________________________________________________
112
112
 
113
113
  ## Development
114
114
 
115
- See [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md) for full setup.
115
+ See [docs/development.md](docs/development.md) for full setup.
116
116
 
117
117
  ```bash
118
118
  uv run poe check-all # lint + typecheck + tests
@@ -0,0 +1,71 @@
1
+ # Security Policy
2
+
3
+ ## Supported Versions
4
+
5
+ | Version | Supported |
6
+ |---------|-----------|
7
+ | Latest minor release (1.0.x) | ✅ |
8
+ | Previous minor release | ✅ (security fixes only) |
9
+ | Older versions | ❌ |
10
+
11
+ ## Reporting a Vulnerability
12
+
13
+ **Do NOT open a public issue for security vulnerabilities.**
14
+
15
+ Instead, please report them via one of these channels:
16
+
17
+ 1. **Email**: security@thedataenginex.dev
18
+ 2. **GitHub Security Advisories**: Use the "Report a vulnerability" button on the Security tab
19
+
20
+ ### What to Include
21
+
22
+ - Description of the vulnerability
23
+ - Steps to reproduce
24
+ - Potential impact assessment
25
+ - Suggested fix (if any)
26
+
27
+ ### Response Timeline
28
+
29
+ | Stage | Timeline |
30
+ |-------|----------|
31
+ | Acknowledgment | Within 48 hours |
32
+ | Initial assessment | Within 5 business days |
33
+ | Fix development | Within 30 days (critical), 90 days (non-critical) |
34
+ | Public disclosure | After fix is released |
35
+
36
+ ## Disclosure Policy
37
+
38
+ We follow [coordinated disclosure](https://en.wikipedia.org/wiki/Coordinated_vulnerability_disclosure).
39
+ We will credit reporters in the security advisory unless they prefer to remain anonymous.
40
+
41
+ ## Security Practices
42
+
43
+ DataEngineX follows these security practices:
44
+
45
+ - **No hardcoded secrets** — all credentials via environment variables
46
+ - **Parameterized queries** — never SQL concatenation
47
+ - **Input validation** — Pydantic models at API boundaries
48
+ - **Dependency auditing** — automated via `uv run poe security`
49
+ - **Pickle safety** — SafeUnpickler with HMAC verification for model loading
50
+ - **Container security** — non-root users, minimal base images
51
+ - **HTTPS only** — all production traffic encrypted
52
+ - **Least privilege** — minimal permissions for service accounts
53
+
54
+ ## Security-Related Dependencies
55
+
56
+ | Dependency | Purpose | Security Note |
57
+ |------------|---------|---------------|
58
+ | pydantic | Config validation | Validates all inputs |
59
+ | python-dotenv | Env var loading | Never commit .env files |
60
+ | httpx | HTTP client | Timeout configured |
61
+ | structlog | Logging | No PII in logs by default |
62
+
63
+ ## Auditing
64
+
65
+ Run security audits locally:
66
+
67
+ ```bash
68
+ uv run poe security # pip-audit for vulnerabilities
69
+ ```
70
+
71
+ CI runs `pip-audit` and dependency scanning on every PR.
@@ -355,8 +355,8 @@ ______________________________________________________________________
355
355
  **Next Steps:**
356
356
 
357
357
  - **Deployment Runbook** (in `infradex` repo) - Release procedures
358
- - **[Observability](OBSERVABILITY.md)** - Monitor applications built on DEX
359
- - **[Contributing Guide](CONTRIBUTING.md)** - Development workflow
358
+ - **[Observability](observability.md)** - Monitor applications built on DEX
359
+ - **[Contributing Guide](contributing.md)** - Development workflow
360
360
 
361
361
  ______________________________________________________________________
362
362
 
@@ -407,4 +407,4 @@ gh workflow run pypi-publish.yml -f tag=v<version>
407
407
 
408
408
  ______________________________________________________________________
409
409
 
410
- **[← Back to Documentation Hub](docs-hub.md)**
410
+ **[← Back to Documentation](index.md)**
@@ -1,8 +1,10 @@
1
- Thank you for contributing to DEX!
1
+ # Contributing to DEX
2
+
3
+ Thank you for contributing!
2
4
 
3
5
  ## Getting Started
4
6
 
5
- 1. Read [DEVELOPMENT.md](./DEVELOPMENT.md) for setup instructions
7
+ 1. Read [development.md](./development.md) for setup instructions
6
8
  1. Fork the repository
7
9
  1. Create a feature branch from `dev`
8
10
  1. Make your changes
@@ -12,10 +14,10 @@ Thank you for contributing to DEX!
12
14
 
13
15
  Use semantic commit format:
14
16
 
15
- - `feat(#123): add resume parser`
16
- - `fix(#124): handle edge case in matching`
17
- - `docs: update API docs`
18
- - `test: add parsing tests`
17
+ - `feat(#123): add DuckDB backend`
18
+ - `fix(#124): handle missing config key in registry`
19
+ - `docs: update API reference`
20
+ - `test: add backend integration tests`
19
21
  - `chore: update dependencies`
20
22
 
21
23
  ## Code Style
@@ -96,8 +98,8 @@ uv run poe check-all # Run all checks
96
98
 
97
99
  ## Questions?
98
100
 
99
- - Check [DEVELOPMENT.md](./DEVELOPMENT.md)
100
- - Review [Architecture docs](./ARCHITECTURE.md)
101
+ - Check [development.md](./development.md)
102
+ - Review [Architecture docs](./architecture.md)
101
103
  - Create a GitHub issue
102
104
  - Join #dex-dev Slack channel
103
105
 
@@ -205,8 +205,8 @@ uv run poe clean # Remove caches and build artifacts
205
205
 
206
206
  ## Resources & Support
207
207
 
208
- - **Code Style**: See [CONTRIBUTING.md](./CONTRIBUTING.md)
209
- - **Architecture**: See [ARCHITECTURE.md](./ARCHITECTURE.md)
208
+ - **Code Style**: See [contributing.md](./contributing.md)
209
+ - **Architecture**: See [architecture.md](./architecture.md)
210
210
  - **ADRs**: See [ADR-0001](./adr/0001-medallion-architecture.md) for architectural decisions
211
211
  - **Deployment**: See Deployment Runbook in the `infradex` repo
212
212
  - **Issues**: [GitHub Issues](https://github.com/TheDataEngineX/dataenginex/issues)
@@ -0,0 +1,10 @@
1
+ # DataEngineX Documentation
2
+
3
+ Welcome to the DEX docs site.
4
+
5
+ Start here:
6
+
7
+ - [Development Setup](development.md)
8
+ - [Contributing](contributing.md)
9
+ - [Architecture](architecture.md)
10
+ - [Quickstart](quickstart.md)
@@ -784,15 +784,15 @@ ______________________________________________________________________
784
784
 
785
785
  **Deployment & Operations:**
786
786
 
787
- - **[CI/CD Pipeline](CI_CD.md)** - Automated deployments
787
+ - **[CI/CD Pipeline](ci-cd.md)** - Automated deployments
788
788
  - **Deployment Runbook** (in `infradex` repo) - Deploy procedures
789
789
  - **Local K8s Setup** (in `infradex` repo) - Kubernetes setup
790
790
 
791
791
  **Development:**
792
792
 
793
- - **[SDLC](SDLC.md)** - Development workflow
794
- - **[Contributing](CONTRIBUTING.md)** - Contribution guide
793
+ - **[SDLC](sdlc.md)** - Development workflow
794
+ - **[Contributing](contributing.md)** - Contribution guide
795
795
 
796
796
  ______________________________________________________________________
797
797
 
798
- **[← Back to Documentation Hub](docs-hub.md)**
798
+ **[← Back to Documentation](index.md)**
@@ -56,8 +56,8 @@ uv run poe check-all # All of the above in one command
56
56
 
57
57
  ## Next Steps
58
58
 
59
- - [Development Guide](DEVELOPMENT.md) — full setup, editor config, and workflow
60
- - [Architecture](ARCHITECTURE.md) — medallion layers, API design, ML lifecycle
59
+ - [Development Guide](development.md) — full setup, editor config, and workflow
60
+ - [Architecture](architecture.md) — medallion layers, API design, ML lifecycle
61
61
  - [API Reference](api-reference/index.md) — auto-generated module docs
62
62
  - `examples/` directory — full list of runnable examples (01–10)
63
63
 
@@ -95,7 +95,7 @@ ______________________________________________________________________
95
95
 
96
96
  - CI, security, and quality checks as defined in the CI/CD pipeline.
97
97
 
98
- See [CI/CD Pipeline](CI_CD.md) for the authoritative list of checks.
98
+ See [CI/CD Pipeline](ci-cd.md) for the authoritative list of checks.
99
99
 
100
100
  **Exit**: All checks pass and at least one reviewer approves.
101
101
 
@@ -185,7 +185,7 @@ flowchart TD
185
185
  1. After validation in dev, open a release PR from `dev` → `main`.
186
186
  1. Merge after all required checks pass.
187
187
 
188
- See [Contributing Guide](CONTRIBUTING.md) for branch naming, local checks, and PR conventions.
188
+ See [Contributing Guide](contributing.md) for branch naming, local checks, and PR conventions.
189
189
 
190
190
  ______________________________________________________________________
191
191
 
@@ -193,8 +193,8 @@ ______________________________________________________________________
193
193
 
194
194
  **Development:**
195
195
 
196
- - **[Contributing Guide](CONTRIBUTING.md)** - Contribution workflow
197
- - **[CI/CD Pipeline](CI_CD.md)** - Automated build and deploy
196
+ - **[Contributing Guide](contributing.md)** - Contribution workflow
197
+ - **[CI/CD Pipeline](ci-cd.md)** - Automated build and deploy
198
198
 
199
199
  **Operations:**
200
200
 
@@ -203,4 +203,4 @@ ______________________________________________________________________
203
203
 
204
204
  ______________________________________________________________________
205
205
 
206
- **[← Back to Documentation Hub](docs-hub.md)**
206
+ **[← Back to Documentation](index.md)**