openlakeforge 0.2.0a1__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 (247) hide show
  1. openlakeforge-0.2.0a1/MANIFEST.in +2 -0
  2. openlakeforge-0.2.0a1/PKG-INFO +15 -0
  3. openlakeforge-0.2.0a1/README.md +52 -0
  4. openlakeforge-0.2.0a1/build_backend.py +67 -0
  5. openlakeforge-0.2.0a1/olf/__init__.py +12 -0
  6. openlakeforge-0.2.0a1/olf/_embedded/platform.json +8 -0
  7. openlakeforge-0.2.0a1/olf/_embedded/platform.tar.gz +0 -0
  8. openlakeforge-0.2.0a1/olf/auth.py +721 -0
  9. openlakeforge-0.2.0a1/olf/aws_credential_process.py +16 -0
  10. openlakeforge-0.2.0a1/olf/azure_bridge.py +95 -0
  11. openlakeforge-0.2.0a1/olf/catalog.py +153 -0
  12. openlakeforge-0.2.0a1/olf/cli.py +108 -0
  13. openlakeforge-0.2.0a1/olf/clients/__init__.py +9 -0
  14. openlakeforge-0.2.0a1/olf/clients/base.py +79 -0
  15. openlakeforge-0.2.0a1/olf/clients/dagster.py +278 -0
  16. openlakeforge-0.2.0a1/olf/clients/openmetadata.py +68 -0
  17. openlakeforge-0.2.0a1/olf/clients/superset.py +50 -0
  18. openlakeforge-0.2.0a1/olf/commands/__init__.py +3 -0
  19. openlakeforge-0.2.0a1/olf/commands/_project.py +29 -0
  20. openlakeforge-0.2.0a1/olf/commands/_shared.py +70 -0
  21. openlakeforge-0.2.0a1/olf/commands/artifacts.py +126 -0
  22. openlakeforge-0.2.0a1/olf/commands/auth.py +148 -0
  23. openlakeforge-0.2.0a1/olf/commands/catalog.py +154 -0
  24. openlakeforge-0.2.0a1/olf/commands/checks.py +697 -0
  25. openlakeforge-0.2.0a1/olf/commands/contracts.py +63 -0
  26. openlakeforge-0.2.0a1/olf/commands/dbt.py +82 -0
  27. openlakeforge-0.2.0a1/olf/commands/deployment.py +237 -0
  28. openlakeforge-0.2.0a1/olf/commands/diagnostics.py +115 -0
  29. openlakeforge-0.2.0a1/olf/commands/distribution.py +80 -0
  30. openlakeforge-0.2.0a1/olf/commands/domain.py +40 -0
  31. openlakeforge-0.2.0a1/olf/commands/e2e.py +132 -0
  32. openlakeforge-0.2.0a1/olf/commands/floe.py +95 -0
  33. openlakeforge-0.2.0a1/olf/commands/images.py +75 -0
  34. openlakeforge-0.2.0a1/olf/commands/init.py +20 -0
  35. openlakeforge-0.2.0a1/olf/commands/k8s.py +20 -0
  36. openlakeforge-0.2.0a1/olf/commands/layers.py +26 -0
  37. openlakeforge-0.2.0a1/olf/commands/openmetadata.py +73 -0
  38. openlakeforge-0.2.0a1/olf/commands/product.py +54 -0
  39. openlakeforge-0.2.0a1/olf/commands/release.py +421 -0
  40. openlakeforge-0.2.0a1/olf/commands/revision.py +140 -0
  41. openlakeforge-0.2.0a1/olf/commands/runtime.py +64 -0
  42. openlakeforge-0.2.0a1/olf/commands/smoke.py +23 -0
  43. openlakeforge-0.2.0a1/olf/commands/source.py +35 -0
  44. openlakeforge-0.2.0a1/olf/commands/superset.py +125 -0
  45. openlakeforge-0.2.0a1/olf/commands/toolchain.py +133 -0
  46. openlakeforge-0.2.0a1/olf/config.py +33 -0
  47. openlakeforge-0.2.0a1/olf/contracts.py +546 -0
  48. openlakeforge-0.2.0a1/olf/contracts_check.py +628 -0
  49. openlakeforge-0.2.0a1/olf/dashboard_checks.py +105 -0
  50. openlakeforge-0.2.0a1/olf/deployment/__init__.py +8 -0
  51. openlakeforge-0.2.0a1/olf/deployment/artifact_steps.py +92 -0
  52. openlakeforge-0.2.0a1/olf/deployment/charts.py +498 -0
  53. openlakeforge-0.2.0a1/olf/deployment/cloud/__init__.py +1 -0
  54. openlakeforge-0.2.0a1/olf/deployment/cloud/artifacts.py +123 -0
  55. openlakeforge-0.2.0a1/olf/deployment/cloud/aws.py +198 -0
  56. openlakeforge-0.2.0a1/olf/deployment/cloud/azure.py +218 -0
  57. openlakeforge-0.2.0a1/olf/deployment/cloud/backend.py +148 -0
  58. openlakeforge-0.2.0a1/olf/deployment/cloud/config.py +390 -0
  59. openlakeforge-0.2.0a1/olf/deployment/cloud/forward.py +44 -0
  60. openlakeforge-0.2.0a1/olf/deployment/cloud/foundation.py +196 -0
  61. openlakeforge-0.2.0a1/olf/deployment/cloud/images.py +108 -0
  62. openlakeforge-0.2.0a1/olf/deployment/cloud/platform.py +109 -0
  63. openlakeforge-0.2.0a1/olf/deployment/cloud/provider.py +284 -0
  64. openlakeforge-0.2.0a1/olf/deployment/cloud/teardown.py +57 -0
  65. openlakeforge-0.2.0a1/olf/deployment/context.py +369 -0
  66. openlakeforge-0.2.0a1/olf/deployment/contract_env.py +72 -0
  67. openlakeforge-0.2.0a1/olf/deployment/engine.py +205 -0
  68. openlakeforge-0.2.0a1/olf/deployment/env_settings.py +46 -0
  69. openlakeforge-0.2.0a1/olf/deployment/errors.py +113 -0
  70. openlakeforge-0.2.0a1/olf/deployment/floe_manifests.py +382 -0
  71. openlakeforge-0.2.0a1/olf/deployment/inspection.py +125 -0
  72. openlakeforge-0.2.0a1/olf/deployment/kube_ops.py +105 -0
  73. openlakeforge-0.2.0a1/olf/deployment/local/__init__.py +3 -0
  74. openlakeforge-0.2.0a1/olf/deployment/local/artifacts.py +110 -0
  75. openlakeforge-0.2.0a1/olf/deployment/local/config.py +276 -0
  76. openlakeforge-0.2.0a1/olf/deployment/local/forward.py +91 -0
  77. openlakeforge-0.2.0a1/olf/deployment/local/foundation.py +117 -0
  78. openlakeforge-0.2.0a1/olf/deployment/local/images.py +102 -0
  79. openlakeforge-0.2.0a1/olf/deployment/local/platform.py +178 -0
  80. openlakeforge-0.2.0a1/olf/deployment/local/prefetch.py +166 -0
  81. openlakeforge-0.2.0a1/olf/deployment/local/provider.py +203 -0
  82. openlakeforge-0.2.0a1/olf/deployment/local/teardown.py +88 -0
  83. openlakeforge-0.2.0a1/olf/deployment/portforward.py +169 -0
  84. openlakeforge-0.2.0a1/olf/deployment/project_code.py +33 -0
  85. openlakeforge-0.2.0a1/olf/deployment/retry.py +61 -0
  86. openlakeforge-0.2.0a1/olf/deployment/status.py +62 -0
  87. openlakeforge-0.2.0a1/olf/distribution.py +408 -0
  88. openlakeforge-0.2.0a1/olf/e2e/__init__.py +16 -0
  89. openlakeforge-0.2.0a1/olf/e2e/_artifacts.py +187 -0
  90. openlakeforge-0.2.0a1/olf/e2e/_assertions.py +144 -0
  91. openlakeforge-0.2.0a1/olf/e2e/_dagster.py +81 -0
  92. openlakeforge-0.2.0a1/olf/e2e/_health.py +180 -0
  93. openlakeforge-0.2.0a1/olf/e2e/_layers.py +21 -0
  94. openlakeforge-0.2.0a1/olf/e2e/_preflight.py +54 -0
  95. openlakeforge-0.2.0a1/olf/e2e/_runner.py +280 -0
  96. openlakeforge-0.2.0a1/olf/e2e/_shell.py +187 -0
  97. openlakeforge-0.2.0a1/olf/e2e/_trino.py +168 -0
  98. openlakeforge-0.2.0a1/olf/floe.py +229 -0
  99. openlakeforge-0.2.0a1/olf/glue.py +99 -0
  100. openlakeforge-0.2.0a1/olf/initialization.py +170 -0
  101. openlakeforge-0.2.0a1/olf/k8s.py +379 -0
  102. openlakeforge-0.2.0a1/olf/layers.py +39 -0
  103. openlakeforge-0.2.0a1/olf/log.py +22 -0
  104. openlakeforge-0.2.0a1/olf/openmetadata/__init__.py +16 -0
  105. openlakeforge-0.2.0a1/olf/openmetadata/_config.py +175 -0
  106. openlakeforge-0.2.0a1/olf/openmetadata/_orchestration.py +447 -0
  107. openlakeforge-0.2.0a1/olf/openmetadata/_payloads.py +85 -0
  108. openlakeforge-0.2.0a1/olf/openmetadata/_reconciliation.py +222 -0
  109. openlakeforge-0.2.0a1/olf/polaris.py +211 -0
  110. openlakeforge-0.2.0a1/olf/project_code_check.py +235 -0
  111. openlakeforge-0.2.0a1/olf/release/__init__.py +24 -0
  112. openlakeforge-0.2.0a1/olf/release/_compatibility.py +342 -0
  113. openlakeforge-0.2.0a1/olf/release/_manifest.py +168 -0
  114. openlakeforge-0.2.0a1/olf/release/_readiness.py +505 -0
  115. openlakeforge-0.2.0a1/olf/retry.py +32 -0
  116. openlakeforge-0.2.0a1/olf/revision.py +218 -0
  117. openlakeforge-0.2.0a1/olf/s3.py +171 -0
  118. openlakeforge-0.2.0a1/olf/scaffold/__init__.py +9 -0
  119. openlakeforge-0.2.0a1/olf/scaffold/_commit.py +229 -0
  120. openlakeforge-0.2.0a1/olf/scaffold/_csv.py +66 -0
  121. openlakeforge-0.2.0a1/olf/scaffold/_lakehouse_edit.py +347 -0
  122. openlakeforge-0.2.0a1/olf/scaffold/_shared.py +92 -0
  123. openlakeforge-0.2.0a1/olf/scaffold/_templates.py +370 -0
  124. openlakeforge-0.2.0a1/olf/scaffold/domain.py +125 -0
  125. openlakeforge-0.2.0a1/olf/scaffold/product.py +259 -0
  126. openlakeforge-0.2.0a1/olf/scaffold/source.py +68 -0
  127. openlakeforge-0.2.0a1/olf/smoke.py +91 -0
  128. openlakeforge-0.2.0a1/olf/superset.py +320 -0
  129. openlakeforge-0.2.0a1/olf/toolchain/__init__.py +25 -0
  130. openlakeforge-0.2.0a1/olf/toolchain/download.py +110 -0
  131. openlakeforge-0.2.0a1/olf/toolchain/errors.py +27 -0
  132. openlakeforge-0.2.0a1/olf/toolchain/install.py +60 -0
  133. openlakeforge-0.2.0a1/olf/toolchain/manager.py +281 -0
  134. openlakeforge-0.2.0a1/olf/toolchain/platform.py +60 -0
  135. openlakeforge-0.2.0a1/olf/toolchain/spec.py +144 -0
  136. openlakeforge-0.2.0a1/olf/tooling/__init__.py +8 -0
  137. openlakeforge-0.2.0a1/olf/tooling/aws.py +187 -0
  138. openlakeforge-0.2.0a1/olf/tooling/azure.py +161 -0
  139. openlakeforge-0.2.0a1/olf/tooling/docker.py +229 -0
  140. openlakeforge-0.2.0a1/olf/tooling/helm.py +185 -0
  141. openlakeforge-0.2.0a1/olf/tooling/kind.py +80 -0
  142. openlakeforge-0.2.0a1/olf/tooling/kubectl.py +221 -0
  143. openlakeforge-0.2.0a1/olf/tooling/process.py +252 -0
  144. openlakeforge-0.2.0a1/olf/tooling/redact.py +72 -0
  145. openlakeforge-0.2.0a1/olf/tooling/resolver.py +149 -0
  146. openlakeforge-0.2.0a1/olf/tooling/terraform.py +218 -0
  147. openlakeforge-0.2.0a1/openlakeforge.egg-info/PKG-INFO +15 -0
  148. openlakeforge-0.2.0a1/openlakeforge.egg-info/SOURCES.txt +245 -0
  149. openlakeforge-0.2.0a1/openlakeforge.egg-info/dependency_links.txt +1 -0
  150. openlakeforge-0.2.0a1/openlakeforge.egg-info/entry_points.txt +2 -0
  151. openlakeforge-0.2.0a1/openlakeforge.egg-info/requires.txt +10 -0
  152. openlakeforge-0.2.0a1/openlakeforge.egg-info/top_level.txt +1 -0
  153. openlakeforge-0.2.0a1/pyproject.toml +61 -0
  154. openlakeforge-0.2.0a1/setup.cfg +4 -0
  155. openlakeforge-0.2.0a1/tests/test_artifacts.py +64 -0
  156. openlakeforge-0.2.0a1/tests/test_auth.py +822 -0
  157. openlakeforge-0.2.0a1/tests/test_catalog.py +175 -0
  158. openlakeforge-0.2.0a1/tests/test_checks.py +171 -0
  159. openlakeforge-0.2.0a1/tests/test_cli.py +575 -0
  160. openlakeforge-0.2.0a1/tests/test_cli_contracts.py +28 -0
  161. openlakeforge-0.2.0a1/tests/test_cli_deployment.py +203 -0
  162. openlakeforge-0.2.0a1/tests/test_cli_e2e.py +221 -0
  163. openlakeforge-0.2.0a1/tests/test_cli_toolchain.py +108 -0
  164. openlakeforge-0.2.0a1/tests/test_clients_superset.py +59 -0
  165. openlakeforge-0.2.0a1/tests/test_cloud_artifacts.py +266 -0
  166. openlakeforge-0.2.0a1/tests/test_cloud_aws.py +346 -0
  167. openlakeforge-0.2.0a1/tests/test_cloud_azure.py +390 -0
  168. openlakeforge-0.2.0a1/tests/test_cloud_config.py +429 -0
  169. openlakeforge-0.2.0a1/tests/test_cloud_foundation.py +397 -0
  170. openlakeforge-0.2.0a1/tests/test_cloud_images.py +126 -0
  171. openlakeforge-0.2.0a1/tests/test_cloud_platform.py +163 -0
  172. openlakeforge-0.2.0a1/tests/test_cloud_provider.py +404 -0
  173. openlakeforge-0.2.0a1/tests/test_cloud_teardown.py +92 -0
  174. openlakeforge-0.2.0a1/tests/test_component_catalog.py +21 -0
  175. openlakeforge-0.2.0a1/tests/test_contracts.py +225 -0
  176. openlakeforge-0.2.0a1/tests/test_contracts_check.py +502 -0
  177. openlakeforge-0.2.0a1/tests/test_contracts_toolchain.py +124 -0
  178. openlakeforge-0.2.0a1/tests/test_dbt.py +53 -0
  179. openlakeforge-0.2.0a1/tests/test_deployment_artifact_steps.py +139 -0
  180. openlakeforge-0.2.0a1/tests/test_deployment_charts.py +296 -0
  181. openlakeforge-0.2.0a1/tests/test_deployment_context.py +298 -0
  182. openlakeforge-0.2.0a1/tests/test_deployment_contract_env.py +101 -0
  183. openlakeforge-0.2.0a1/tests/test_deployment_engine.py +184 -0
  184. openlakeforge-0.2.0a1/tests/test_deployment_floe_manifests.py +377 -0
  185. openlakeforge-0.2.0a1/tests/test_deployment_kube_ops.py +152 -0
  186. openlakeforge-0.2.0a1/tests/test_deployment_portforward.py +234 -0
  187. openlakeforge-0.2.0a1/tests/test_deployment_status.py +72 -0
  188. openlakeforge-0.2.0a1/tests/test_diagnostics.py +35 -0
  189. openlakeforge-0.2.0a1/tests/test_distribution.py +175 -0
  190. openlakeforge-0.2.0a1/tests/test_e2e_artifacts.py +185 -0
  191. openlakeforge-0.2.0a1/tests/test_e2e_assertions.py +438 -0
  192. openlakeforge-0.2.0a1/tests/test_e2e_dagster.py +470 -0
  193. openlakeforge-0.2.0a1/tests/test_e2e_health.py +265 -0
  194. openlakeforge-0.2.0a1/tests/test_e2e_layers.py +16 -0
  195. openlakeforge-0.2.0a1/tests/test_e2e_preflight.py +56 -0
  196. openlakeforge-0.2.0a1/tests/test_e2e_runner.py +455 -0
  197. openlakeforge-0.2.0a1/tests/test_e2e_trino.py +109 -0
  198. openlakeforge-0.2.0a1/tests/test_floe.py +72 -0
  199. openlakeforge-0.2.0a1/tests/test_glue.py +181 -0
  200. openlakeforge-0.2.0a1/tests/test_initialization.py +352 -0
  201. openlakeforge-0.2.0a1/tests/test_inventory.py +322 -0
  202. openlakeforge-0.2.0a1/tests/test_k8s.py +368 -0
  203. openlakeforge-0.2.0a1/tests/test_layers.py +41 -0
  204. openlakeforge-0.2.0a1/tests/test_local_artifacts.py +154 -0
  205. openlakeforge-0.2.0a1/tests/test_local_config.py +203 -0
  206. openlakeforge-0.2.0a1/tests/test_local_forward.py +103 -0
  207. openlakeforge-0.2.0a1/tests/test_local_foundation.py +206 -0
  208. openlakeforge-0.2.0a1/tests/test_local_images.py +172 -0
  209. openlakeforge-0.2.0a1/tests/test_local_platform.py +238 -0
  210. openlakeforge-0.2.0a1/tests/test_local_prefetch.py +171 -0
  211. openlakeforge-0.2.0a1/tests/test_local_provider.py +185 -0
  212. openlakeforge-0.2.0a1/tests/test_local_teardown.py +165 -0
  213. openlakeforge-0.2.0a1/tests/test_make_deployment_targets.py +185 -0
  214. openlakeforge-0.2.0a1/tests/test_openmetadata_config.py +226 -0
  215. openlakeforge-0.2.0a1/tests/test_openmetadata_orchestration.py +498 -0
  216. openlakeforge-0.2.0a1/tests/test_openmetadata_payloads.py +39 -0
  217. openlakeforge-0.2.0a1/tests/test_openmetadata_reconciliation.py +113 -0
  218. openlakeforge-0.2.0a1/tests/test_polaris.py +95 -0
  219. openlakeforge-0.2.0a1/tests/test_process.py +252 -0
  220. openlakeforge-0.2.0a1/tests/test_project_code_check.py +51 -0
  221. openlakeforge-0.2.0a1/tests/test_project_code_context.py +36 -0
  222. openlakeforge-0.2.0a1/tests/test_redact.py +124 -0
  223. openlakeforge-0.2.0a1/tests/test_release_compatibility.py +234 -0
  224. openlakeforge-0.2.0a1/tests/test_release_manifest.py +125 -0
  225. openlakeforge-0.2.0a1/tests/test_release_readiness.py +503 -0
  226. openlakeforge-0.2.0a1/tests/test_release_verify.py +223 -0
  227. openlakeforge-0.2.0a1/tests/test_retry.py +145 -0
  228. openlakeforge-0.2.0a1/tests/test_revision.py +146 -0
  229. openlakeforge-0.2.0a1/tests/test_runtime.py +89 -0
  230. openlakeforge-0.2.0a1/tests/test_scaffold.py +1371 -0
  231. openlakeforge-0.2.0a1/tests/test_smoke.py +120 -0
  232. openlakeforge-0.2.0a1/tests/test_superset.py +88 -0
  233. openlakeforge-0.2.0a1/tests/test_tool_resolver.py +49 -0
  234. openlakeforge-0.2.0a1/tests/test_toolchain_download.py +151 -0
  235. openlakeforge-0.2.0a1/tests/test_toolchain_install.py +137 -0
  236. openlakeforge-0.2.0a1/tests/test_toolchain_manager.py +539 -0
  237. openlakeforge-0.2.0a1/tests/test_toolchain_platform.py +35 -0
  238. openlakeforge-0.2.0a1/tests/test_toolchain_resolver.py +174 -0
  239. openlakeforge-0.2.0a1/tests/test_toolchain_spec.py +104 -0
  240. openlakeforge-0.2.0a1/tests/test_toolchain_windows_compat.py +27 -0
  241. openlakeforge-0.2.0a1/tests/test_tooling_aws.py +133 -0
  242. openlakeforge-0.2.0a1/tests/test_tooling_azure.py +114 -0
  243. openlakeforge-0.2.0a1/tests/test_tooling_docker.py +254 -0
  244. openlakeforge-0.2.0a1/tests/test_tooling_helm.py +147 -0
  245. openlakeforge-0.2.0a1/tests/test_tooling_kind.py +104 -0
  246. openlakeforge-0.2.0a1/tests/test_tooling_kubectl.py +176 -0
  247. openlakeforge-0.2.0a1/tests/test_tooling_terraform.py +212 -0
@@ -0,0 +1,2 @@
1
+ include build_backend.py
2
+ recursive-include olf/_embedded *.json *.tar.gz
@@ -0,0 +1,15 @@
1
+ Metadata-Version: 2.4
2
+ Name: openlakeforge
3
+ Version: 0.2.0a1
4
+ Summary: OpenLakeForge deployment tooling: cross-environment contract, API, and artifact helpers behind the olf CLI.
5
+ Requires-Python: >=3.12
6
+ Requires-Dist: azure-identity<2,>=1.25
7
+ Requires-Dist: azure-mgmt-containerservice<42,>=41
8
+ Requires-Dist: azure-mgmt-resource<25,>=24
9
+ Requires-Dist: boto3<2,>=1.34
10
+ Requires-Dist: jsonschema<5,>=4.23
11
+ Requires-Dist: openlakeforge-domain-model==0.2.0a1
12
+ Requires-Dist: python-hcl2<7,>=6
13
+ Requires-Dist: PyYAML<7,>=6
14
+ Requires-Dist: requests<3,>=2.32
15
+ Requires-Dist: typer<1,>=0.12
@@ -0,0 +1,52 @@
1
+ # olf — OpenLakeForge deployment tooling
2
+
3
+ `olf` is the supported OpenLakeForge interface. It owns repository
4
+ orchestration for local, AWS, and Azure: Terraform/Helm sequencing, provider
5
+ contract hydration, artifacts, checks, diagnostics, and release helpers.
6
+ Terraform remains the state/drift engine and Helm remains the chart/release
7
+ engine; `olf` invokes both with structured argv, retries, and diagnostics. See
8
+ [ADR 0008](../../docs/adr/0008-olf-owns-orchestration-and-toolchain.md).
9
+
10
+ `olf` also owns its own versioned Terraform, Helm, kubectl, and kind under
11
+ `OLF_HOME` (default `~/.openlakeforge`) - a host installation of those tools
12
+ is not required. `OLF_TOOLCHAIN_MODE=host` resolves them from `PATH` instead.
13
+ See [ADR 0008](../../docs/adr/0008-olf-owns-orchestration-and-toolchain.md).
14
+
15
+ ## Commands
16
+
17
+ | Command | Purpose |
18
+ | --- | --- |
19
+ | `olf init [--empty]` | Create a writable `lakehouse_code/` project in the current directory from the packaged demo, or an empty transitional project. |
20
+ | `olf doctor --provider P [--phase PHASE]` / `olf plan --provider P [--phase PHASE]` | Read-only preflight and Terraform planning with typed provider/profile/phase options; provisions the managed toolchain as a side effect. |
21
+ | `olf deploy\|destroy\|status\|forward --provider P` | Orchestrate a provider lifecycle without shell wrappers. |
22
+ | `olf auth login\|status\|logout --provider aws\|azure` | Authenticate through AWS IAM Identity Center or Microsoft Entra SDKs; no cloud CLI required (ADR 0008). |
23
+ | `olf toolchain list\|install\|path\|clean` | Inspect, provision, or remove the managed Terraform/Helm/kubectl/kind toolchain under `OLF_HOME`. |
24
+ | `olf check structure\|components\|contracts\|infra\|project-code\|dbt\|lockfiles\|all` | Repository validation gates. |
25
+ | `olf contracts env\|check` | Print the resolved provider contract environment, or validate it against the active provider/profile. |
26
+ | `olf dbt parse [--project-dir D]` | Render dbt profiles and run `dbt deps`/`dbt parse` for one or every product Gold project. |
27
+ | `olf source new NAME --resource R` / `olf domain new NAME --input SRC/RESOURCE` / `olf product new DOMAIN/PRODUCT --input ... --gold-table T` | Golden-path scaffolding for a Bronze source, Silver domain, or Gold product. |
28
+ | `olf layers enabled --profile P` | List which medallion/governance/analytics layers a profile enables. |
29
+ | `olf images build\|load project-code\|superset` | Local Docker build and Kind load operations. |
30
+ | `olf diagnostics collect OUTPUT_DIR` | Collect bounded host, Docker, Kubernetes, event, and pod-log evidence. |
31
+ | `olf catalog sync-namespaces [--dry-run] [--prune]` | Reconcile catalog namespaces (Polaris) or databases (Glue) with domain descriptors (ADR 0002). Runs first in the artifacts phase, before any table is written. It creates, adopts matching legacy namespaces, and relocates OpenLakeForge-managed namespaces. `--prune` removes only OpenLakeForge-managed catalog metadata and retains object-store files; foreign namespaces are never changed. Unsupported providers fail explicitly. |
32
+ | `olf floe render-profile\|generate-manifests` | Render the Floe EnvironmentProfile YAML for the active contract env, or generate domain Floe manifests. |
33
+ | `olf artifacts upload-manifests --via port-forward\|direct` | Publish domain Floe manifests to the ops bucket (in-cluster S3 or cloud S3). |
34
+ | `olf revision compute\|publish\|verify --runtime-root D` | Compute, publish, or verify an immutable Floe runtime-artifact revision. Publication writes `floe/revisions/sha256/<digest>/...` and does not activate that revision. |
35
+ | `olf superset deploy-reports` / `export-reports` | Build/import or export Superset report bundles. |
36
+ | `olf openmetadata deploy-metadata` | Seed OpenMetadata domains, data products, and medallion containers over REST. |
37
+ | `olf k8s set-project-code-image --image X` | Point every Dagster surface at a pushed project-code image, trigger one coordinated restart, and wait for its rollout. |
38
+ | `olf smoke run` | Deploy a bounded Slim environment and validate one product pipeline through to a queryable Gold table. |
39
+ | `olf e2e run --env local\|azure\|aws [--suite full\|smoke]` | Run shared end-to-end validation. All environments default to `full`; use `--suite smoke` for preflight-only checks. |
40
+ | `olf release manifest\|checksums\|compatibility-matrix\|check\|build-bundle\|verify-install` | Build release metadata, run the release-readiness gate, assemble the release bundle, and verify a clean-checkout install. |
41
+ | `olf distribution list\|path\|verify\|clean` | Inspect or verify the embedded platform payload shipped inside the `openlakeforge` wheel/sdist. |
42
+
43
+ ## Development
44
+
45
+ ```sh
46
+ uv sync --project tools/olf
47
+ uv run --project tools/olf pytest
48
+ uv run --project tools/olf ruff check tools/olf
49
+ ```
50
+
51
+ Make is optional, deprecated checkout compatibility. Its targets are one-line
52
+ delegates to the same commands and are not the supported product interface.
@@ -0,0 +1,67 @@
1
+ """PEP 517 wrapper that embeds the OpenLakeForge platform payload."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import tomllib
6
+ from pathlib import Path
7
+
8
+ from setuptools import build_meta as _setuptools
9
+
10
+
11
+ def _ensure_embedded_payload() -> None:
12
+ """Generate payload data when building from a checkout.
13
+
14
+ An sdist already contains the generated files, so a wheel rebuilt from it
15
+ does not need the repository's Terraform and Helm source tree.
16
+ """
17
+ project_root = Path(__file__).resolve().parent
18
+ repository_root = project_root.parents[1]
19
+ embedded = project_root / "olf" / "_embedded"
20
+ archive = embedded / "platform.tar.gz"
21
+ metadata = embedded / "platform.json"
22
+ if not (repository_root / "infra").is_dir():
23
+ if archive.is_file() and metadata.is_file():
24
+ return
25
+ raise RuntimeError("embedded platform payload is missing and repository assets are unavailable")
26
+
27
+ from olf.distribution import build_embedded_payload
28
+
29
+ payload = build_embedded_payload(repository_root, archive=archive, metadata_path=metadata)
30
+ package_version = tomllib.loads((project_root / "pyproject.toml").read_text(encoding="utf-8"))["project"]["version"]
31
+ if payload["package_version"] != package_version:
32
+ raise RuntimeError(
33
+ "payload package version does not match tools/olf/pyproject.toml: "
34
+ f"{payload['package_version']!r} != {package_version!r}"
35
+ )
36
+
37
+
38
+ def build_wheel(wheel_directory: str, config_settings=None, metadata_directory=None) -> str: # noqa: ANN001
39
+ _ensure_embedded_payload()
40
+ return _setuptools.build_wheel(wheel_directory, config_settings, metadata_directory)
41
+
42
+
43
+ def build_sdist(sdist_directory: str, config_settings=None) -> str: # noqa: ANN001
44
+ _ensure_embedded_payload()
45
+ return _setuptools.build_sdist(sdist_directory, config_settings)
46
+
47
+
48
+ def prepare_metadata_for_build_wheel(metadata_directory: str, config_settings=None) -> str: # noqa: ANN001
49
+ _ensure_embedded_payload()
50
+ return _setuptools.prepare_metadata_for_build_wheel(metadata_directory, config_settings)
51
+
52
+
53
+ def build_editable(wheel_directory: str, config_settings=None, metadata_directory=None) -> str: # noqa: ANN001
54
+ _ensure_embedded_payload()
55
+ return _setuptools.build_editable(wheel_directory, config_settings, metadata_directory)
56
+
57
+
58
+ def get_requires_for_build_wheel(config_settings=None): # noqa: ANN001, ANN201
59
+ return _setuptools.get_requires_for_build_wheel(config_settings)
60
+
61
+
62
+ def get_requires_for_build_sdist(config_settings=None): # noqa: ANN001, ANN201
63
+ return _setuptools.get_requires_for_build_sdist(config_settings)
64
+
65
+
66
+ def get_requires_for_build_editable(config_settings=None): # noqa: ANN001, ANN201
67
+ return _setuptools.get_requires_for_build_editable(config_settings)
@@ -0,0 +1,12 @@
1
+ """OpenLakeForge deployment tooling."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from importlib.metadata import PackageNotFoundError, version
6
+
7
+ try:
8
+ __version__ = version("openlakeforge")
9
+ except PackageNotFoundError:
10
+ # Editable/source execution before package metadata exists. The release
11
+ # command validates this fallback against release/component-catalog.yaml.
12
+ __version__ = "0.2.0a1"
@@ -0,0 +1,8 @@
1
+ {
2
+ "archive": "platform.tar.gz",
3
+ "distribution_version": "0.2.0-alpha.1",
4
+ "manifest_sha256": "966dcfcf9e6b6f00a3c71ea3584a18c2159d5f394fa00327292ffe688c4a840c",
5
+ "package_version": "0.2.0a1",
6
+ "schema_version": 1,
7
+ "sha256": "26c8c9fcc323d3d370baa4910167e8be5083d123fd84306d75d925ef471e28c6"
8
+ }