data-product-forge 0.7.10__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (459) hide show
  1. data_product_forge-0.7.10.dist-info/METADATA +523 -0
  2. data_product_forge-0.7.10.dist-info/RECORD +459 -0
  3. data_product_forge-0.7.10.dist-info/WHEEL +5 -0
  4. data_product_forge-0.7.10.dist-info/entry_points.txt +9 -0
  5. data_product_forge-0.7.10.dist-info/licenses/LICENSE +202 -0
  6. data_product_forge-0.7.10.dist-info/licenses/NOTICE +29 -0
  7. data_product_forge-0.7.10.dist-info/top_level.txt +1 -0
  8. fluid_build/__init__.py +226 -0
  9. fluid_build/__main__.py +21 -0
  10. fluid_build/auth.py +109 -0
  11. fluid_build/build-manifest.yaml +353 -0
  12. fluid_build/cli/__init__.py +549 -0
  13. fluid_build/cli/__main__.py +21 -0
  14. fluid_build/cli/_command_center.py +329 -0
  15. fluid_build/cli/_common.py +188 -0
  16. fluid_build/cli/_io.py +38 -0
  17. fluid_build/cli/_logging.py +62 -0
  18. fluid_build/cli/agent_specs/domain_keywords.yaml +78 -0
  19. fluid_build/cli/agent_specs/finance.yaml +293 -0
  20. fluid_build/cli/agent_specs/healthcare.yaml +254 -0
  21. fluid_build/cli/agent_specs/retail.yaml +295 -0
  22. fluid_build/cli/agent_specs/telco.yaml +248 -0
  23. fluid_build/cli/ai_setup.py +796 -0
  24. fluid_build/cli/apply.py +1115 -0
  25. fluid_build/cli/artifact_ci_state.py +388 -0
  26. fluid_build/cli/artifact_discovery_cache.py +140 -0
  27. fluid_build/cli/artifact_envelope.py +182 -0
  28. fluid_build/cli/artifact_paths.py +271 -0
  29. fluid_build/cli/artifact_receipts.py +311 -0
  30. fluid_build/cli/artifact_scan.py +242 -0
  31. fluid_build/cli/artifact_writer.py +216 -0
  32. fluid_build/cli/auth.py +2481 -0
  33. fluid_build/cli/bootstrap.py +558 -0
  34. fluid_build/cli/compile.py +228 -0
  35. fluid_build/cli/config.py +688 -0
  36. fluid_build/cli/console.py +103 -0
  37. fluid_build/cli/context.py +87 -0
  38. fluid_build/cli/contract_tests.py +63 -0
  39. fluid_build/cli/contract_validation.py +1288 -0
  40. fluid_build/cli/core.py +466 -0
  41. fluid_build/cli/datamesh_manager.py +508 -0
  42. fluid_build/cli/demo.py +396 -0
  43. fluid_build/cli/diff.py +136 -0
  44. fluid_build/cli/docs_build.py +49 -0
  45. fluid_build/cli/doctor.py +661 -0
  46. fluid_build/cli/errors.py +270 -0
  47. fluid_build/cli/execute.py +343 -0
  48. fluid_build/cli/export.py +221 -0
  49. fluid_build/cli/export_opds.py +58 -0
  50. fluid_build/cli/forge.py +891 -0
  51. fluid_build/cli/forge_agent_specs.py +367 -0
  52. fluid_build/cli/forge_agents.py +152 -0
  53. fluid_build/cli/forge_context.py +353 -0
  54. fluid_build/cli/forge_contract_factory.py +228 -0
  55. fluid_build/cli/forge_contract_fragments.py +159 -0
  56. fluid_build/cli/forge_copilot_agent.py +551 -0
  57. fluid_build/cli/forge_copilot_agent_loop.py +366 -0
  58. fluid_build/cli/forge_copilot_contract_helpers.py +967 -0
  59. fluid_build/cli/forge_copilot_discovery.py +561 -0
  60. fluid_build/cli/forge_copilot_interview.py +1029 -0
  61. fluid_build/cli/forge_copilot_llm_providers.py +1734 -0
  62. fluid_build/cli/forge_copilot_memory.py +786 -0
  63. fluid_build/cli/forge_copilot_memory_mixin.py +291 -0
  64. fluid_build/cli/forge_copilot_personal_memory.py +268 -0
  65. fluid_build/cli/forge_copilot_prompts.py +424 -0
  66. fluid_build/cli/forge_copilot_response_schema.py +263 -0
  67. fluid_build/cli/forge_copilot_runtime.py +934 -0
  68. fluid_build/cli/forge_copilot_scaffold_mixin.py +402 -0
  69. fluid_build/cli/forge_copilot_schema_inference.py +695 -0
  70. fluid_build/cli/forge_copilot_skills_cache.py +134 -0
  71. fluid_build/cli/forge_copilot_taxonomy.py +531 -0
  72. fluid_build/cli/forge_copilot_tools.py +340 -0
  73. fluid_build/cli/forge_dialogs.py +837 -0
  74. fluid_build/cli/forge_domain_agent_base.py +349 -0
  75. fluid_build/cli/forge_domain_enrichment.py +194 -0
  76. fluid_build/cli/forge_modes.py +2506 -0
  77. fluid_build/cli/forge_team_memory.py +250 -0
  78. fluid_build/cli/forge_ui.py +552 -0
  79. fluid_build/cli/forge_validation.py +302 -0
  80. fluid_build/cli/generate.py +146 -0
  81. fluid_build/cli/generate_airflow.py +187 -0
  82. fluid_build/cli/generate_ci.py +86 -0
  83. fluid_build/cli/generate_schedule.py +312 -0
  84. fluid_build/cli/generate_standard.py +264 -0
  85. fluid_build/cli/generate_transformation.py +294 -0
  86. fluid_build/cli/help_advanced.py +106 -0
  87. fluid_build/cli/help_formatter.py +882 -0
  88. fluid_build/cli/hooks.py +147 -0
  89. fluid_build/cli/ide.py +1024 -0
  90. fluid_build/cli/import_cmd.py +602 -0
  91. fluid_build/cli/industry_skills/__init__.py +233 -0
  92. fluid_build/cli/industry_skills/_tools.yaml +29 -0
  93. fluid_build/cli/industry_skills/finance.yaml +51 -0
  94. fluid_build/cli/industry_skills/healthcare.yaml +53 -0
  95. fluid_build/cli/industry_skills/retail.yaml +55 -0
  96. fluid_build/cli/industry_skills/telco.yaml +48 -0
  97. fluid_build/cli/init.py +1927 -0
  98. fluid_build/cli/init_samples.py +168 -0
  99. fluid_build/cli/init_scan.py +335 -0
  100. fluid_build/cli/market.py +3315 -0
  101. fluid_build/cli/marketplace.py +594 -0
  102. fluid_build/cli/next_steps.py +197 -0
  103. fluid_build/cli/odcs.py +469 -0
  104. fluid_build/cli/odps_standard.py +335 -0
  105. fluid_build/cli/opds.py +449 -0
  106. fluid_build/cli/orchestration.py +1023 -0
  107. fluid_build/cli/performance.py +543 -0
  108. fluid_build/cli/pipeline_generator.py +512 -0
  109. fluid_build/cli/plan.py +586 -0
  110. fluid_build/cli/plugins.py +917 -0
  111. fluid_build/cli/policy_apply.py +94 -0
  112. fluid_build/cli/policy_check.py +529 -0
  113. fluid_build/cli/policy_compile.py +59 -0
  114. fluid_build/cli/preview.py +58 -0
  115. fluid_build/cli/product_add.py +169 -0
  116. fluid_build/cli/product_new.py +70 -0
  117. fluid_build/cli/provider_action_executor.py +279 -0
  118. fluid_build/cli/provider_cmds.py +71 -0
  119. fluid_build/cli/provider_init.py +392 -0
  120. fluid_build/cli/publish.py +514 -0
  121. fluid_build/cli/resilience.py +529 -0
  122. fluid_build/cli/scaffold_ci.py +194 -0
  123. fluid_build/cli/scaffold_composer.py +80 -0
  124. fluid_build/cli/security.py +535 -0
  125. fluid_build/cli/skills_cmd.py +263 -0
  126. fluid_build/cli/split.py +154 -0
  127. fluid_build/cli/status.py +476 -0
  128. fluid_build/cli/test.py +701 -0
  129. fluid_build/cli/validate.py +778 -0
  130. fluid_build/cli/verify.py +985 -0
  131. fluid_build/cli/version_cmd.py +305 -0
  132. fluid_build/cli/viz_graph.py +1634 -0
  133. fluid_build/cli/viz_plan.py +68 -0
  134. fluid_build/cli/viz_provider_actions.py +356 -0
  135. fluid_build/cli/workspace.py +1133 -0
  136. fluid_build/cli/workspace_config.py +299 -0
  137. fluid_build/config.py +18 -0
  138. fluid_build/config_manager.py +561 -0
  139. fluid_build/contract_tests.py +403 -0
  140. fluid_build/credentials/__init__.py +93 -0
  141. fluid_build/credentials/adapters.py +242 -0
  142. fluid_build/credentials/dotenv_store.py +183 -0
  143. fluid_build/credentials/encrypted_store.py +204 -0
  144. fluid_build/credentials/keyring_store.py +132 -0
  145. fluid_build/credentials/resolver.py +389 -0
  146. fluid_build/engines/__init__.py +65 -0
  147. fluid_build/engines/base.py +180 -0
  148. fluid_build/engines/dataflow/__init__.py +255 -0
  149. fluid_build/engines/dataform/__init__.py +324 -0
  150. fluid_build/engines/dbt/__init__.py +129 -0
  151. fluid_build/engines/dbt/models.py +318 -0
  152. fluid_build/engines/dbt/profiles.py +129 -0
  153. fluid_build/engines/dbt/project_yml.py +80 -0
  154. fluid_build/engines/dbt/schema_yml.py +181 -0
  155. fluid_build/engines/dbt/sources.py +124 -0
  156. fluid_build/engines/glue/__init__.py +252 -0
  157. fluid_build/engines/registry.py +106 -0
  158. fluid_build/engines/spark/__init__.py +286 -0
  159. fluid_build/engines/sql/__init__.py +88 -0
  160. fluid_build/engines/sql/scripts.py +131 -0
  161. fluid_build/errors.py +120 -0
  162. fluid_build/features.yaml +383 -0
  163. fluid_build/forge/__init__.py +166 -0
  164. fluid_build/forge/core/__init__.py +91 -0
  165. fluid_build/forge/core/deployment.py +1084 -0
  166. fluid_build/forge/core/engine.py +1087 -0
  167. fluid_build/forge/core/interfaces.py +360 -0
  168. fluid_build/forge/core/monitoring.py +947 -0
  169. fluid_build/forge/core/performance.py +194 -0
  170. fluid_build/forge/core/pipeline_templates.py +1608 -0
  171. fluid_build/forge/core/provider_actions.py +391 -0
  172. fluid_build/forge/core/registry.py +585 -0
  173. fluid_build/forge/core/simple_registry.py +224 -0
  174. fluid_build/forge/core/testing.py +445 -0
  175. fluid_build/forge/core/validation.py +678 -0
  176. fluid_build/forge/extensions/__init__.py +59 -0
  177. fluid_build/forge/extensions/ai_assistant.py +115 -0
  178. fluid_build/forge/extensions/environment_validator.py +150 -0
  179. fluid_build/forge/extensions/project_history.py +91 -0
  180. fluid_build/forge/generators/__init__.py +55 -0
  181. fluid_build/forge/generators/config_generator.py +391 -0
  182. fluid_build/forge/generators/contract_generator.py +65 -0
  183. fluid_build/forge/generators/readme_generator.py +141 -0
  184. fluid_build/forge/providers/__init__.py +62 -0
  185. fluid_build/forge/providers/aws.py +75 -0
  186. fluid_build/forge/providers/gcp.py +84 -0
  187. fluid_build/forge/providers/local.py +521 -0
  188. fluid_build/forge/providers/snowflake.py +79 -0
  189. fluid_build/forge/registration.py +157 -0
  190. fluid_build/forge/simple_forge.py +291 -0
  191. fluid_build/forge/simple_registration.py +161 -0
  192. fluid_build/forge/templates/__init__.py +72 -0
  193. fluid_build/forge/templates/analytics.py +1081 -0
  194. fluid_build/forge/templates/etl_pipeline.py +179 -0
  195. fluid_build/forge/templates/ml_pipeline.py +196 -0
  196. fluid_build/forge/templates/starter.py +562 -0
  197. fluid_build/forge/templates/streaming.py +182 -0
  198. fluid_build/loader.py +404 -0
  199. fluid_build/logging_utils.py +58 -0
  200. fluid_build/observability/__init__.py +32 -0
  201. fluid_build/observability/config.py +142 -0
  202. fluid_build/observability/git.py +160 -0
  203. fluid_build/observability/reporter.py +425 -0
  204. fluid_build/observability/secret_redactor.py +218 -0
  205. fluid_build/policy/__init__.py +15 -0
  206. fluid_build/policy/agent_policy.py +354 -0
  207. fluid_build/policy/compiler.py +210 -0
  208. fluid_build/policy/guardrails.py +22 -0
  209. fluid_build/policy/schema_engine.py +594 -0
  210. fluid_build/policy/sovereignty.py +226 -0
  211. fluid_build/provider/__init__.py +16 -0
  212. fluid_build/providers/__init__.py +581 -0
  213. fluid_build/providers/_sql_safety.py +61 -0
  214. fluid_build/providers/aws/__init__.py +65 -0
  215. fluid_build/providers/aws/actions/__init__.py +28 -0
  216. fluid_build/providers/aws/actions/athena.py +465 -0
  217. fluid_build/providers/aws/actions/cloudwatch.py +251 -0
  218. fluid_build/providers/aws/actions/events.py +170 -0
  219. fluid_build/providers/aws/actions/glue.py +876 -0
  220. fluid_build/providers/aws/actions/iam.py +437 -0
  221. fluid_build/providers/aws/actions/kinesis.py +797 -0
  222. fluid_build/providers/aws/actions/lambda_fn.py +220 -0
  223. fluid_build/providers/aws/actions/redshift.py +375 -0
  224. fluid_build/providers/aws/actions/s3.py +296 -0
  225. fluid_build/providers/aws/actions/secretsmanager.py +233 -0
  226. fluid_build/providers/aws/actions/sns.py +296 -0
  227. fluid_build/providers/aws/actions/sqs.py +289 -0
  228. fluid_build/providers/aws/actions/stepfunctions.py +28 -0
  229. fluid_build/providers/aws/aws.py +1497 -0
  230. fluid_build/providers/aws/codegen/__init__.py +25 -0
  231. fluid_build/providers/aws/codegen/airflow.py +668 -0
  232. fluid_build/providers/aws/codegen/dagster.py +368 -0
  233. fluid_build/providers/aws/codegen/prefect.py +346 -0
  234. fluid_build/providers/aws/plan/__init__.py +20 -0
  235. fluid_build/providers/aws/plan/export.py +35 -0
  236. fluid_build/providers/aws/plan/orchestration.py +357 -0
  237. fluid_build/providers/aws/plan/planner.py +681 -0
  238. fluid_build/providers/aws/plan/schedule.py +751 -0
  239. fluid_build/providers/aws/provider.py +949 -0
  240. fluid_build/providers/aws/tests/__init__.py +18 -0
  241. fluid_build/providers/aws/types.py +453 -0
  242. fluid_build/providers/aws/util/__init__.py +18 -0
  243. fluid_build/providers/aws/util/agent_policy.py +296 -0
  244. fluid_build/providers/aws/util/auth.py +75 -0
  245. fluid_build/providers/aws/util/circuit_breaker.py +353 -0
  246. fluid_build/providers/aws/util/config.py +86 -0
  247. fluid_build/providers/aws/util/credentials.py +350 -0
  248. fluid_build/providers/aws/util/ddl.py +441 -0
  249. fluid_build/providers/aws/util/dependencies.py +253 -0
  250. fluid_build/providers/aws/util/formats.py +290 -0
  251. fluid_build/providers/aws/util/logging.py +87 -0
  252. fluid_build/providers/aws/util/metadata.py +469 -0
  253. fluid_build/providers/aws/util/metrics.py +262 -0
  254. fluid_build/providers/aws/util/names.py +157 -0
  255. fluid_build/providers/aws/util/retry.py +104 -0
  256. fluid_build/providers/aws/util/s3_policies.py +322 -0
  257. fluid_build/providers/aws/util/sovereignty.py +323 -0
  258. fluid_build/providers/aws/util/validation.py +335 -0
  259. fluid_build/providers/aws_validation.py +335 -0
  260. fluid_build/providers/base.py +464 -0
  261. fluid_build/providers/bigquery_validation.py +345 -0
  262. fluid_build/providers/catalogs/__init__.py +69 -0
  263. fluid_build/providers/catalogs/base.py +223 -0
  264. fluid_build/providers/catalogs/datamesh_manager.py +134 -0
  265. fluid_build/providers/catalogs/fluid_cc/__init__.py +19 -0
  266. fluid_build/providers/catalogs/fluid_cc/provider.py +305 -0
  267. fluid_build/providers/common/__init__.py +27 -0
  268. fluid_build/providers/common/auth.py +102 -0
  269. fluid_build/providers/common/codegen_utils.py +320 -0
  270. fluid_build/providers/common/metrics.py +116 -0
  271. fluid_build/providers/common/resilience.py +126 -0
  272. fluid_build/providers/datamesh_manager/__init__.py +36 -0
  273. fluid_build/providers/datamesh_manager/datamesh_manager.py +1734 -0
  274. fluid_build/providers/gcp/__init__.py +58 -0
  275. fluid_build/providers/gcp/actions/__init__.py +34 -0
  276. fluid_build/providers/gcp/actions/bigquery.py +1354 -0
  277. fluid_build/providers/gcp/actions/composer.py +682 -0
  278. fluid_build/providers/gcp/actions/dataflow.py +232 -0
  279. fluid_build/providers/gcp/actions/iam.py +458 -0
  280. fluid_build/providers/gcp/actions/pubsub.py +839 -0
  281. fluid_build/providers/gcp/actions/run.py +183 -0
  282. fluid_build/providers/gcp/actions/scheduler.py +275 -0
  283. fluid_build/providers/gcp/actions/storage.py +755 -0
  284. fluid_build/providers/gcp/bq.py +89 -0
  285. fluid_build/providers/gcp/codegen/__init__.py +32 -0
  286. fluid_build/providers/gcp/codegen/airflow.py +350 -0
  287. fluid_build/providers/gcp/codegen/dagster.py +398 -0
  288. fluid_build/providers/gcp/codegen/prefect.py +361 -0
  289. fluid_build/providers/gcp/composer.py +40 -0
  290. fluid_build/providers/gcp/gcp.py +655 -0
  291. fluid_build/providers/gcp/gcs.py +60 -0
  292. fluid_build/providers/gcp/iam.py +65 -0
  293. fluid_build/providers/gcp/plan/__init__.py +16 -0
  294. fluid_build/providers/gcp/plan/bq_modeler.py +446 -0
  295. fluid_build/providers/gcp/plan/export.py +447 -0
  296. fluid_build/providers/gcp/plan/planner.py +569 -0
  297. fluid_build/providers/gcp/plan/schedule.py +553 -0
  298. fluid_build/providers/gcp/provider.py +908 -0
  299. fluid_build/providers/gcp/provider_action_handler.py +319 -0
  300. fluid_build/providers/gcp/pubsub.py +50 -0
  301. fluid_build/providers/gcp/util/__init__.py +16 -0
  302. fluid_build/providers/gcp/util/auth.py +320 -0
  303. fluid_build/providers/gcp/util/config.py +169 -0
  304. fluid_build/providers/gcp/util/logging.py +275 -0
  305. fluid_build/providers/gcp/util/names.py +526 -0
  306. fluid_build/providers/gcp/util/retry.py +415 -0
  307. fluid_build/providers/local/__init__.py +20 -0
  308. fluid_build/providers/local/docker_executor.py +419 -0
  309. fluid_build/providers/local/ducksql.py +68 -0
  310. fluid_build/providers/local/local.py +837 -0
  311. fluid_build/providers/local/mocks.py +351 -0
  312. fluid_build/providers/local/planner.py +639 -0
  313. fluid_build/providers/local/samples.py +621 -0
  314. fluid_build/providers/local/util/__init__.py +60 -0
  315. fluid_build/providers/local/util/logging.py +307 -0
  316. fluid_build/providers/local/util/retry.py +419 -0
  317. fluid_build/providers/local_validation.py +440 -0
  318. fluid_build/providers/odcs/__init__.py +27 -0
  319. fluid_build/providers/odcs/odcs-schema-v3.1.0.json +2928 -0
  320. fluid_build/providers/odcs/odcs.py +1441 -0
  321. fluid_build/providers/odps/__init__.py +22 -0
  322. fluid_build/providers/odps/odps.py +1035 -0
  323. fluid_build/providers/odps/serializer.py +195 -0
  324. fluid_build/providers/odps/validator.py +261 -0
  325. fluid_build/providers/odps_standard/__init__.py +27 -0
  326. fluid_build/providers/odps_standard/odps.py +562 -0
  327. fluid_build/providers/quality_engine.py +625 -0
  328. fluid_build/providers/snowflake/__init__.py +49 -0
  329. fluid_build/providers/snowflake/actions/__init__.py +16 -0
  330. fluid_build/providers/snowflake/actions/database.py +128 -0
  331. fluid_build/providers/snowflake/actions/grants.py +156 -0
  332. fluid_build/providers/snowflake/actions/procedure.py +112 -0
  333. fluid_build/providers/snowflake/actions/schema.py +140 -0
  334. fluid_build/providers/snowflake/actions/share.py +77 -0
  335. fluid_build/providers/snowflake/actions/sql.py +81 -0
  336. fluid_build/providers/snowflake/actions/stream.py +120 -0
  337. fluid_build/providers/snowflake/actions/table.py +495 -0
  338. fluid_build/providers/snowflake/actions/task.py +186 -0
  339. fluid_build/providers/snowflake/actions/udf.py +102 -0
  340. fluid_build/providers/snowflake/actions/view.py +149 -0
  341. fluid_build/providers/snowflake/codegen/__init__.py +32 -0
  342. fluid_build/providers/snowflake/codegen/airflow.py +281 -0
  343. fluid_build/providers/snowflake/codegen/dagster.py +195 -0
  344. fluid_build/providers/snowflake/codegen/prefect.py +212 -0
  345. fluid_build/providers/snowflake/connection.py +219 -0
  346. fluid_build/providers/snowflake/connection_enhanced.py +466 -0
  347. fluid_build/providers/snowflake/credentials.py +345 -0
  348. fluid_build/providers/snowflake/errors.py +241 -0
  349. fluid_build/providers/snowflake/governance.py +824 -0
  350. fluid_build/providers/snowflake/iam.py +95 -0
  351. fluid_build/providers/snowflake/monitoring/__init__.py +24 -0
  352. fluid_build/providers/snowflake/monitoring/performance.py +465 -0
  353. fluid_build/providers/snowflake/orchestration/__init__.py +30 -0
  354. fluid_build/providers/snowflake/orchestration/airflow_generator.py +325 -0
  355. fluid_build/providers/snowflake/orchestration/common.py +110 -0
  356. fluid_build/providers/snowflake/plan/__init__.py +20 -0
  357. fluid_build/providers/snowflake/plan/export.py +102 -0
  358. fluid_build/providers/snowflake/plan/planner.py +630 -0
  359. fluid_build/providers/snowflake/provider_enhanced.py +599 -0
  360. fluid_build/providers/snowflake/registry.py +450 -0
  361. fluid_build/providers/snowflake/snowflake.py +1336 -0
  362. fluid_build/providers/snowflake/tests/__init__.py +16 -0
  363. fluid_build/providers/snowflake/types.py +402 -0
  364. fluid_build/providers/snowflake/util/__init__.py +16 -0
  365. fluid_build/providers/snowflake/util/auth.py +212 -0
  366. fluid_build/providers/snowflake/util/circuit_breaker.py +360 -0
  367. fluid_build/providers/snowflake/util/config.py +603 -0
  368. fluid_build/providers/snowflake/util/logging.py +187 -0
  369. fluid_build/providers/snowflake/util/metadata.py +203 -0
  370. fluid_build/providers/snowflake/util/names.py +137 -0
  371. fluid_build/providers/snowflake/util/retry.py +253 -0
  372. fluid_build/providers/snowflake/util.py +53 -0
  373. fluid_build/providers/snowflake_validation.py +367 -0
  374. fluid_build/providers/validation_cache.py +366 -0
  375. fluid_build/providers/validation_provider.py +335 -0
  376. fluid_build/runtimes/__init__.py +15 -0
  377. fluid_build/runtimes/airflow_provider_actions.py +344 -0
  378. fluid_build/runtimes/dataform_gcp.py +211 -0
  379. fluid_build/runtimes/dbt_bigquery.py +35 -0
  380. fluid_build/runtimes/dbt_duckdb.py +35 -0
  381. fluid_build/schedulers/__init__.py +61 -0
  382. fluid_build/schedulers/airflow/__init__.py +376 -0
  383. fluid_build/schedulers/base.py +129 -0
  384. fluid_build/schedulers/dagster/__init__.py +363 -0
  385. fluid_build/schedulers/prefect/__init__.py +313 -0
  386. fluid_build/schedulers/registry.py +106 -0
  387. fluid_build/schedulers/synthesis.py +127 -0
  388. fluid_build/schema.py +284 -0
  389. fluid_build/schema_manager.py +741 -0
  390. fluid_build/schemas/__init__.py +16 -0
  391. fluid_build/schemas/fluid-schema-0.4.0.json +944 -0
  392. fluid_build/schemas/fluid-schema-0.5.7.json +2195 -0
  393. fluid_build/schemas/fluid-schema-0.7.1.json +3497 -0
  394. fluid_build/schemas/fluid-schema-0.7.2.json +3811 -0
  395. fluid_build/secrets.py +335 -0
  396. fluid_build/structured_logging.py +310 -0
  397. fluid_build/templates/README.md +132 -0
  398. fluid_build/templates/contract-documentation/README.md +121 -0
  399. fluid_build/templates/contract-documentation/contract.fluid.yaml +103 -0
  400. fluid_build/templates/contract-documentation/data/products.csv +4 -0
  401. fluid_build/templates/csv-basics/README.md +253 -0
  402. fluid_build/templates/csv-basics/contract.fluid.yaml +99 -0
  403. fluid_build/templates/csv-basics/data/customers.csv +11 -0
  404. fluid_build/templates/customer-360/README.md +464 -0
  405. fluid_build/templates/customer-360/contract.fluid.yaml +260 -0
  406. fluid_build/templates/customer-360/data/customers.csv +11 -0
  407. fluid_build/templates/customer-360/data/interactions.csv +17 -0
  408. fluid_build/templates/customer-360/data/orders.csv +21 -0
  409. fluid_build/templates/data-quality-validation/README.md +361 -0
  410. fluid_build/templates/data-quality-validation/contract.fluid.yaml +148 -0
  411. fluid_build/templates/data-quality-validation/data/products.csv +11 -0
  412. fluid_build/templates/environment-configuration/README.md +284 -0
  413. fluid_build/templates/environment-configuration/config/dev.yaml +14 -0
  414. fluid_build/templates/environment-configuration/config/prod.yaml +14 -0
  415. fluid_build/templates/environment-configuration/contract.fluid.yaml +90 -0
  416. fluid_build/templates/environment-configuration/data/users.csv +6 -0
  417. fluid_build/templates/external-sql-files/README.md +188 -0
  418. fluid_build/templates/external-sql-files/contract.fluid.yaml +117 -0
  419. fluid_build/templates/external-sql-files/data/sales.csv +11 -0
  420. fluid_build/templates/external-sql-files/sql/calculate_revenue.sql +15 -0
  421. fluid_build/templates/external-sql-files/sql/daily_summary.sql +15 -0
  422. fluid_build/templates/first-dag/README.md +421 -0
  423. fluid_build/templates/first-dag/contract.fluid.yaml +177 -0
  424. fluid_build/templates/first-dag/data/customers.csv +11 -0
  425. fluid_build/templates/first-dag/data/orders.csv +13 -0
  426. fluid_build/templates/hello-world/README.md +184 -0
  427. fluid_build/templates/hello-world/contract.fluid.yaml +48 -0
  428. fluid_build/templates/incremental-processing/README.md +241 -0
  429. fluid_build/templates/incremental-processing/contract.fluid.yaml +111 -0
  430. fluid_build/templates/incremental-processing/data/transactions.csv +11 -0
  431. fluid_build/templates/multi-source/README.md +308 -0
  432. fluid_build/templates/multi-source/contract.fluid.yaml +146 -0
  433. fluid_build/templates/multi-source/data/customers.csv +9 -0
  434. fluid_build/templates/multi-source/data/orders.csv +23 -0
  435. fluid_build/templates/multiple-outputs/README.md +104 -0
  436. fluid_build/templates/multiple-outputs/contract.fluid.yaml +136 -0
  437. fluid_build/templates/multiple-outputs/data/events.csv +13 -0
  438. fluid_build/templates/pipeline-orchestration/README.md +323 -0
  439. fluid_build/templates/pipeline-orchestration/contract.fluid.yaml +121 -0
  440. fluid_build/templates/pipeline-orchestration/data/customers.csv +6 -0
  441. fluid_build/templates/pipeline-orchestration/data/inventory.csv +6 -0
  442. fluid_build/templates/pipeline-orchestration/data/sales.csv +9 -0
  443. fluid_build/templates/testing-your-contract/README.md +99 -0
  444. fluid_build/templates/testing-your-contract/contract.fluid.yaml +64 -0
  445. fluid_build/templates/testing-your-contract/data/orders.csv +4 -0
  446. fluid_build/templates/testing-your-contract/tests/test_orders.yaml +32 -0
  447. fluid_build/tools/__init__.py +15 -0
  448. fluid_build/tools/contract_tests.py +42 -0
  449. fluid_build/tools/diagnostics.py +38 -0
  450. fluid_build/tools/diff.py +26 -0
  451. fluid_build/tools/plan.py +33 -0
  452. fluid_build/tools/visualizer.py +29 -0
  453. fluid_build/util/__init__.py +15 -0
  454. fluid_build/util/contract.py +379 -0
  455. fluid_build/util/cron.py +32 -0
  456. fluid_build/util/io.py +40 -0
  457. fluid_build/util/network.py +386 -0
  458. fluid_build/util/schema.py +18 -0
  459. fluid_build/validation.py +610 -0
@@ -0,0 +1,523 @@
1
+ Metadata-Version: 2.4
2
+ Name: data-product-forge
3
+ Version: 0.7.10
4
+ Summary: FLUID Build System: plan/apply/visualize data products across providers (GCP, Snowflake, Local) with policy & contract tests.
5
+ Author: Agentics Transformation Pty Ltd
6
+ License-Expression: Apache-2.0
7
+ Project-URL: Homepage, https://agenticstiger.github.io/forge_docs/
8
+ Project-URL: Repository, https://github.com/Agenticstiger/forge-cli
9
+ Project-URL: Issues, https://github.com/Agenticstiger/forge-cli/issues
10
+ Project-URL: Documentation, https://agenticstiger.github.io/forge_docs/
11
+ Project-URL: Changelog, https://github.com/Agenticstiger/forge-cli/blob/main/CHANGELOG.md
12
+ Keywords: data products,FLUID,opds,gitops,gcp,snowflake,duckdb,composer,dbt,dataform
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Intended Audience :: Information Technology
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Topic :: Software Development :: Build Tools
22
+ Classifier: Topic :: System :: Systems Administration
23
+ Requires-Python: >=3.9
24
+ Description-Content-Type: text/markdown
25
+ License-File: LICENSE
26
+ License-File: NOTICE
27
+ Requires-Dist: click>=8.1
28
+ Requires-Dist: pyyaml>=6.0
29
+ Requires-Dist: jsonschema>=4.22
30
+ Requires-Dist: rich>=13.7
31
+ Requires-Dist: pydantic>=2.7
32
+ Requires-Dist: typing-extensions>=4.8
33
+ Requires-Dist: jinja2>=3.1
34
+ Requires-Dist: httpx>=0.27
35
+ Requires-Dist: colorama>=0.4.6; platform_system == "Windows"
36
+ Provides-Extra: sdk
37
+ Requires-Dist: fluid-provider-sdk>=0.1.0; extra == "sdk"
38
+ Provides-Extra: local
39
+ Requires-Dist: duckdb>=1.0; extra == "local"
40
+ Requires-Dist: pandas>=2.2; extra == "local"
41
+ Provides-Extra: gcp
42
+ Requires-Dist: google-auth>=2.29; extra == "gcp"
43
+ Requires-Dist: google-auth-oauthlib>=1.2; extra == "gcp"
44
+ Requires-Dist: google-cloud-bigquery>=3.20; extra == "gcp"
45
+ Requires-Dist: google-cloud-storage>=2.16; extra == "gcp"
46
+ Requires-Dist: google-cloud-iam>=2.15; python_version >= "3.10" and extra == "gcp"
47
+ Requires-Dist: dbt-bigquery>=1.7; python_version >= "3.10" and extra == "gcp"
48
+ Provides-Extra: snowflake
49
+ Requires-Dist: snowflake-connector-python>=4.4; extra == "snowflake"
50
+ Requires-Dist: snowflake-snowpark-python>=1.15; python_version >= "3.10" and extra == "snowflake"
51
+ Requires-Dist: dbt-snowflake>=1.7; python_version >= "3.10" and extra == "snowflake"
52
+ Provides-Extra: viz
53
+ Requires-Dist: graphviz>=0.20; extra == "viz"
54
+ Provides-Extra: opds
55
+ Requires-Dist: ruamel.yaml>=0.18; extra == "opds"
56
+ Provides-Extra: tui
57
+ Requires-Dist: textual>=0.58; extra == "tui"
58
+ Provides-Extra: copilot
59
+ Requires-Dist: pyarrow>=14; extra == "copilot"
60
+ Requires-Dist: fastavro>=1.9; extra == "copilot"
61
+ Provides-Extra: docs
62
+ Requires-Dist: mkdocs>=1.6; extra == "docs"
63
+ Requires-Dist: mkdocs-material>=9.5; extra == "docs"
64
+ Provides-Extra: dev
65
+ Requires-Dist: pytest>=7.4; extra == "dev"
66
+ Requires-Dist: pytest-cov>=4.1; extra == "dev"
67
+ Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
68
+ Requires-Dist: pytest-randomly>=3.15; extra == "dev"
69
+ Requires-Dist: mypy>=1.10; extra == "dev"
70
+ Requires-Dist: ruff>=0.5; extra == "dev"
71
+ Requires-Dist: types-PyYAML>=6.0.12; extra == "dev"
72
+ Requires-Dist: black==25.11.0; extra == "dev"
73
+ Requires-Dist: requests>=2.32.5; extra == "dev"
74
+ Provides-Extra: all
75
+ Requires-Dist: data-product-forge[copilot,dev,docs,gcp,local,opds,snowflake,tui,viz]; extra == "all"
76
+ Dynamic: license-file
77
+
78
+ <div align="center">
79
+
80
+ <img src="assets/fluid-forge-logo.png" alt="FLUID Forge" width="480">
81
+
82
+ <br><br>
83
+
84
+ ### Stop writing boilerplate. Start declaring Data Products.
85
+
86
+ **The declarative control plane for data engineering in the Agentic Era.**
87
+
88
+ [![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://python.org)
89
+ [![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)
90
+ [![PyPI](https://img.shields.io/pypi/v/data-product-forge.svg)](https://pypi.org/project/data-product-forge/)
91
+ [![CI](https://github.com/Agenticstiger/forge-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/Agenticstiger/forge-cli/actions/workflows/ci.yml)
92
+
93
+ [Documentation](https://agenticstiger.github.io/forge_docs/) · [Getting Started](https://agenticstiger.github.io/forge_docs/getting-started/) · [FLUID Specification](https://open-data-protocol.github.io/fluid/) · [The Book](https://a.co/d/04zTi7aQ) · [Community](https://github.com/Agenticstiger/forge-cli/discussions)
94
+
95
+ </div>
96
+
97
+
98
+ ---
99
+
100
+ ## 🌊 What is FLUID?
101
+
102
+ **FLUID** (Federated Layered Universal Instructional Declaration) is an open-source declarative framework for building, validating, and deploying data products across any cloud. You write a single YAML contract describing *what* your data product is — its schema, quality rules, access policies, and scheduling — and FLUID Forge compiles that into provider-specific infrastructure (BigQuery, Snowflake, AWS Glue, Athena, or local DuckDB) with full governance baked in.
103
+
104
+ Think of it as **Terraform for data products**: one contract, many clouds, zero boilerplate.
105
+
106
+ ```
107
+ contract.fluid.yaml → fluid validate → fluid plan → fluid apply
108
+ (declare) (check) (preview) (deploy)
109
+ ```
110
+
111
+ ---
112
+
113
+ ## 🤯 Why We Built This
114
+
115
+ Data engineering is stuck in the dark ages of imperative spaghetti code. You want to ship data products fast, but compliance teams demand governance. You end up with **Configuration Sprawl**: `.tf` files for Terraform, `schema.yml` for dbt, `.rego` for OPA, and a web of Airflow DAGs.
116
+
117
+ **FLUID Forge is the compiler that ends the chaos.** You declare what your data product *is*. The CLI compiles that into a validated, deterministic execution plan across any supported cloud.
118
+
119
+ ### The Old Way vs. The FLUID Way
120
+
121
+ | 🛑 **The Old Way** (Imperative Chaos) | ✨ **The FLUID Way** (Declarative Order) |
122
+ |----------------------------------------|------------------------------------------|
123
+ | Weeks of boilerplate to wire up IaC, SQL, and DAGs. | **Minutes** to deploy. Just declare your intent and apply. |
124
+ | Vendor lock-in. Your DAGs only work on one cloud. | **Provider-agnostic.** Switch clouds by changing one line of YAML. |
125
+ | Governance as an afterthought. Manual compliance tickets. | **Governance-as-Code.** Policies compile to native IAM before deployment. |
126
+ | "Works on my machine." Broken production deploys. | **Deterministic plans.** See exactly what will change before it runs. |
127
+ | AI hallucinations. Agents don't understand your tables. | **Semantic Truth.** Built-in OSI semantics so LLMs query perfectly. |
128
+
129
+ ---
130
+
131
+
132
+ ## ⚡ 60 Seconds to Magic
133
+
134
+ Data engineering shouldn't require weeks of handwritten infrastructure code, bespoke CI/CD pipelines, and copy-pasted SQL.
135
+
136
+ **What Terraform did for infrastructure, FLUID Forge does for data products.**
137
+
138
+ ```bash
139
+ # 1. Install the CLI
140
+ pip install data-product-forge
141
+
142
+ # 2. Validate your data product contract
143
+ fluid validate contract.fluid.yaml
144
+
145
+ # 3. See exactly what will happen
146
+ fluid plan contract.fluid.yaml
147
+
148
+ # 4. Deploy infrastructure, logic, and governance — instantly
149
+ fluid apply contract.fluid.yaml
150
+ ```
151
+
152
+ That's it. You just deployed a **versioned, governed, and orchestrated Data Product** from a single YAML file.
153
+
154
+ > **Want to move from local to Google Cloud?**
155
+ > `pip install "data-product-forge[gcp]"` → change `platform: local` to `platform: gcp` → run `fluid apply`. **Done.**
156
+
157
+ ---
158
+
159
+ ## 🖥️ First-Time Setup from Source
160
+
161
+ Choose your platform below for step-by-step instructions.
162
+
163
+ ### Prerequisites
164
+
165
+ | Requirement | Version |
166
+ |-------------|---------|
167
+ | **Python** | 3.9 or higher |
168
+ | **pip** | Latest recommended |
169
+ | **Git** | Any recent version |
170
+
171
+ ---
172
+
173
+ <details>
174
+ <summary><strong>🍎 macOS</strong></summary>
175
+
176
+ #### 1. Install system dependencies
177
+
178
+ ```bash
179
+ # Install Xcode Command Line Tools (includes Git and make)
180
+ xcode-select --install
181
+
182
+ # Or install Python & Git via Homebrew (recommended)
183
+ brew install python git
184
+ ```
185
+
186
+ #### 2. Verify Python
187
+
188
+ ```bash
189
+ python3 --version # Should print Python 3.9+
190
+ ```
191
+
192
+ #### 3. Clone and install
193
+
194
+ ```bash
195
+ git clone https://github.com/Agenticstiger/forge-cli.git
196
+ cd forge-cli
197
+
198
+ # Create a virtual environment (recommended)
199
+ python3 -m venv .venv
200
+ source .venv/bin/activate
201
+
202
+ # Install in editable mode with the local provider
203
+ pip install --upgrade pip wheel
204
+ pip install -e ".[local]"
205
+ ```
206
+
207
+ #### 4. Verify the installation
208
+
209
+ ```bash
210
+ fluid --version
211
+ fluid validate examples/01-hello-world/contract.fluid.yaml
212
+ ```
213
+
214
+ > **Tip:** You can also run the automated setup script:
215
+ > ```bash
216
+ > chmod +x setup.sh && ./setup.sh
217
+ > ```
218
+
219
+ </details>
220
+
221
+ <details>
222
+ <summary><strong>🐧 Ubuntu / Debian Linux</strong></summary>
223
+
224
+ #### 1. Install system dependencies
225
+
226
+ ```bash
227
+ sudo apt update
228
+ sudo apt install -y python3 python3-venv python3-pip git build-essential
229
+ ```
230
+
231
+ #### 2. Verify Python
232
+
233
+ ```bash
234
+ python3 --version # Should print Python 3.9+
235
+ ```
236
+
237
+ #### 3. Clone and install
238
+
239
+ ```bash
240
+ git clone https://github.com/Agenticstiger/forge-cli.git
241
+ cd forge-cli
242
+
243
+ # Create a virtual environment (recommended)
244
+ python3 -m venv .venv
245
+ source .venv/bin/activate
246
+
247
+ # Install in editable mode with the local provider
248
+ pip install --upgrade pip wheel
249
+ pip install -e ".[local]"
250
+ ```
251
+
252
+ #### 4. Verify the installation
253
+
254
+ ```bash
255
+ fluid --version
256
+ fluid validate examples/01-hello-world/contract.fluid.yaml
257
+ ```
258
+
259
+ > **Tip:** You can also run the automated setup script:
260
+ > ```bash
261
+ > chmod +x setup.sh && ./setup.sh
262
+ > ```
263
+
264
+ </details>
265
+
266
+ <details>
267
+ <summary><strong>🪟 Windows</strong></summary>
268
+
269
+ #### 1. Install Python
270
+
271
+ Download and install Python 3.9+ from [python.org](https://www.python.org/downloads/).
272
+
273
+ > **Important:** Check **"Add Python to PATH"** during installation.
274
+
275
+ #### 2. Install Git
276
+
277
+ Download and install Git from [git-scm.com](https://git-scm.com/download/win), or install via a package manager:
278
+
279
+ ```powershell
280
+ # Via winget
281
+ winget install Git.Git
282
+
283
+ # Or via Chocolatey
284
+ choco install git
285
+ ```
286
+
287
+ #### 3. Verify prerequisites
288
+
289
+ ```powershell
290
+ python --version # Should print Python 3.9+
291
+ git --version
292
+ ```
293
+
294
+ #### 4. Clone and install
295
+
296
+ **PowerShell:**
297
+ ```powershell
298
+ git clone https://github.com/Agenticstiger/forge-cli.git
299
+ cd forge-cli
300
+
301
+ # Create a virtual environment (recommended)
302
+ python -m venv .venv
303
+ .venv\Scripts\Activate.ps1
304
+
305
+ # Install in editable mode with the local provider
306
+ pip install --upgrade pip wheel
307
+ pip install -e ".[local]"
308
+ ```
309
+
310
+ **Command Prompt (cmd):**
311
+ ```cmd
312
+ git clone https://github.com/Agenticstiger/forge-cli.git
313
+ cd forge-cli
314
+
315
+ python -m venv .venv
316
+ .venv\Scripts\activate.bat
317
+
318
+ pip install --upgrade pip wheel
319
+ pip install -e ".[local]"
320
+ ```
321
+
322
+ #### 5. Verify the installation
323
+
324
+ ```powershell
325
+ fluid --version
326
+ fluid validate examples\01-hello-world\contract.fluid.yaml
327
+ ```
328
+
329
+ > **Tip:** You can also run the automated setup script:
330
+ > - **PowerShell:** `.\setup.ps1`
331
+ > - **Command Prompt:** `setup.bat`
332
+
333
+ </details>
334
+
335
+ ---
336
+
337
+ ### Installing additional providers
338
+
339
+ Once the base install is working, add cloud providers as needed:
340
+
341
+ ```bash
342
+ pip install -e ".[gcp]" # + Google Cloud (BigQuery, GCS, Composer)
343
+ pip install -e ".[snowflake]" # + Snowflake
344
+ pip install -e ".[all]" # Everything (all providers + dev tools)
345
+ ```
346
+
347
+
348
+
349
+ ## 🧬 Anatomy of a FLUID Contract
350
+
351
+ Everything starts with `contract.fluid.yaml` — the **single source of truth** for your data product's entire lifecycle.
352
+
353
+ ```yaml
354
+ fluidVersion: "0.7.1"
355
+ kind: DataProduct
356
+ id: example.customer_360
357
+ name: Customer 360
358
+ domain: analytics
359
+
360
+ metadata:
361
+ layer: Gold
362
+ owner:
363
+ team: data-platform
364
+ email: platform@example.com
365
+
366
+ # 1. THE LOGIC — How is it built?
367
+ builds:
368
+ - id: transform_customer
369
+ pattern: embedded-logic
370
+ engine: sql
371
+ properties:
372
+ sql: |
373
+ SELECT user_id, email, LTV
374
+ FROM raw.users JOIN raw.orders USING (user_id)
375
+
376
+ # 2. THE INTERFACE — What does it output?
377
+ exposes:
378
+ - exposeId: customer_profiles
379
+ kind: table
380
+ binding:
381
+ platform: snowflake # ← Change to 'gcp' or 'aws' instantly
382
+ format: snowflake_table
383
+ location:
384
+ database: PROD
385
+ schema: GOLD
386
+ table: CUST_360
387
+ contract:
388
+ schema:
389
+ - name: email
390
+ type: string
391
+ sensitivity: pii # ← Triggers auto-masking/encryption
392
+
393
+ # 3. THE GOVERNANCE — Who (or what) can access it?
394
+ accessPolicy:
395
+ grants:
396
+ - principal: "group:marketing@example.com"
397
+ permissions: ["read"]
398
+
399
+ agentPolicy: # ← Agentic Era Governance
400
+ allowedModels: ["gpt-4", "claude-3"]
401
+ allowedUseCases: ["analysis", "summarization"]
402
+ ```
403
+
404
+ ---
405
+
406
+ ## 🔌 Providers — Bring Your Own Cloud
407
+
408
+ Providers are the bridge between your declarative contract and your target execution environment.
409
+
410
+ | Provider | Target Ecosystem | Superpowers |
411
+ |----------|-----------------|-------------|
412
+ | 💻 **local** | DuckDB, Local FS | Zero-config. Runs anywhere. Perfect for dev/test. |
413
+ | ☁️ **gcp** | Google Cloud | BigQuery, GCS, Composer (Airflow), Dataform, IAM. |
414
+ | 🌩️ **aws** | Amazon Web Services | S3, Glue, Athena, Redshift, MWAA, IAM. |
415
+ | ❄️ **snowflake** | Snowflake | Databases, schemas, streams, tasks, RBAC, sharing. |
416
+
417
+ > Export-only providers for open data standards: **odps**, **odcs**, **datamesh-manager**.
418
+
419
+ ---
420
+
421
+ ## 🛠️ Installation
422
+
423
+ FLUID Forge is modular. Install only what you need.
424
+
425
+ ```bash
426
+ pip install data-product-forge # Minimal — CLI + Local/DuckDB provider
427
+ pip install "data-product-forge[gcp]" # + Google Cloud
428
+ pip install "data-product-forge[aws]" # + AWS
429
+ pip install "data-product-forge[snowflake]" # + Snowflake
430
+ pip install "data-product-forge[all]" # Everything
431
+ ```
432
+
433
+ > 💡 **Tip:** We recommend [pipx](https://pipx.pypa.io/) for an isolated global install:
434
+ > `pipx install "data-product-forge[all]"`
435
+
436
+ ---
437
+
438
+ ## 💻 CLI Command Reference
439
+
440
+ FLUID Forge is designed to feel as natural as `git` or `terraform`.
441
+
442
+ ### Core Lifecycle
443
+
444
+ ```bash
445
+ fluid init # Scaffold a new Data Product contract
446
+ fluid validate contract.fluid.yaml # Validate schema, dependencies, syntax
447
+ fluid plan contract.fluid.yaml # Generate a deterministic execution plan
448
+ fluid apply contract.fluid.yaml # Execute the plan against your target provider
449
+ fluid verify contract.fluid.yaml # Post-deployment data quality & compliance checks
450
+ ```
451
+
452
+ ### AI & Code Generation
453
+
454
+ ```bash
455
+ fluid forge # 🤖 Interactive, AI-powered project creation
456
+ fluid generate-airflow contract.fluid.yaml # Compile contract → native Airflow DAG
457
+ fluid generate-pipeline contract.fluid.yaml # Scaffold transformation code
458
+ ```
459
+
460
+ ### Governance & Compliance
461
+
462
+ ```bash
463
+ fluid policy-compile contract.fluid.yaml # Translate policies → native IAM
464
+ fluid contract-tests contract.fluid.yaml # Run assertion suites
465
+ ```
466
+
467
+ ### Visualization
468
+
469
+ ```bash
470
+ fluid graph contract.fluid.yaml # Graphviz DAG of internal lineage
471
+ fluid docs contract.fluid.yaml # Auto-generate documentation from contract
472
+ ```
473
+
474
+ ---
475
+
476
+ ## 🎓 Templates
477
+
478
+ Don't start from scratch. `fluid init` ships with battle-tested enterprise patterns:
479
+
480
+ ```bash
481
+ fluid init --template customer-360
482
+ ```
483
+
484
+ | Template | What You Get |
485
+ |----------|-------------|
486
+ | `hello-world` | The basics — start here |
487
+ | `incremental-processing` | Append/Merge load patterns |
488
+ | `multi-source` | Complex DAG dependency orchestration |
489
+ | `policy-examples` | Advanced RBAC and AI agent governance |
490
+
491
+ ---
492
+
493
+ ## 🤝 Contributing
494
+
495
+ FLUID Forge is community-driven. We want your ideas, providers, and pull requests!
496
+
497
+ 1. Fork the repo
498
+ 2. Run `make setup` for a full dev environment
499
+ 3. Check out [CONTRIBUTING.md](CONTRIBUTING.md) for style guides and architecture overview
500
+
501
+ Please read our [Code of Conduct](CODE_OF_CONDUCT.md) before participating.
502
+
503
+ To report security vulnerabilities, see [SECURITY.md](SECURITY.md).
504
+
505
+ ---
506
+
507
+ ## License
508
+
509
+ [Apache License 2.0](LICENSE) · Copyright 2024–2026 Agentics Transformation Pty Ltd
510
+
511
+ ---
512
+
513
+ <div align="center">
514
+
515
+ **Built for the future of data. Built for the Agentic Era.**
516
+
517
+ [Documentation](https://agenticstiger.github.io/forge_docs/) · [FLUID Specification](https://open-data-protocol.github.io/fluid/) · [The Book](https://a.co/d/04zTi7aQ) · [PyPI](https://pypi.org/project/data-product-forge/) · [Issues](https://github.com/Agenticstiger/forge-cli/issues)
518
+
519
+ ---
520
+
521
+ 🇿🇦 **Proudly developed by [dustlabs.co.za](https://dustlabs.co.za)**
522
+
523
+ </div>