fdai-deployment-cli 0.1.2__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 (202) hide show
  1. fdai_deployment_cli-0.1.2/PKG-INFO +112 -0
  2. fdai_deployment_cli-0.1.2/README.md +102 -0
  3. fdai_deployment_cli-0.1.2/pyproject.toml +50 -0
  4. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/__about__.py +3 -0
  5. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/__init__.py +5 -0
  6. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/__main__.py +5 -0
  7. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/acr_publish.py +585 -0
  8. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/aks_catalog_review.py +137 -0
  9. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/aks_historical_reconciliation.py +732 -0
  10. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/aks_job_environment.py +59 -0
  11. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/aks_job_execution.py +794 -0
  12. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/aks_kubernetes_defaults.py +66 -0
  13. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/aks_preflight.py +422 -0
  14. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/aks_readiness.py +220 -0
  15. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/aks_service_update.py +180 -0
  16. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/aks_workload_jobs.py +281 -0
  17. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/application_state_adoption.py +347 -0
  18. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/azure_actor.py +61 -0
  19. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/azure_naming.py +252 -0
  20. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/azure_retail_prices.py +173 -0
  21. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/bootstrap_approval.py +99 -0
  22. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/bootstrap_channel.py +321 -0
  23. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/bootstrap_executor.py +311 -0
  24. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/bootstrap_plan.py +237 -0
  25. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/bootstrap_reconcile.py +402 -0
  26. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/bootstrap_support.py +138 -0
  27. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/bootstrap_worker.py +448 -0
  28. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/bundle.py +352 -0
  29. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/capacity.py +143 -0
  30. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/catalog_review_profile.py +306 -0
  31. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/cli.py +798 -0
  32. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/cli_help.py +214 -0
  33. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/cli_parser.py +791 -0
  34. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/cli_plan.py +450 -0
  35. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/compiler.py +99 -0
  36. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/console_artifact.py +218 -0
  37. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/console_config.py +214 -0
  38. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/console_update.py +832 -0
  39. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/contracts.py +307 -0
  40. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/control_package.py +140 -0
  41. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/deadline_transport.py +70 -0
  42. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/deployment_cost.py +131 -0
  43. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/deployment_deadline.py +28 -0
  44. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/deployment_kit.py +790 -0
  45. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/deployment_kit_cache.py +191 -0
  46. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/deployment_progress.py +648 -0
  47. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/development_authority_cli.py +56 -0
  48. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/development_authority_profile.py +319 -0
  49. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/doctor.py +136 -0
  50. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/entitlement_preflight.py +68 -0
  51. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/entitlement_transport.py +49 -0
  52. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/entra_bootstrap.py +579 -0
  53. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/entra_control_profile.py +214 -0
  54. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/entra_graph.py +349 -0
  55. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/entra_profiles.py +215 -0
  56. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/entra_source.py +244 -0
  57. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/execution_bundle.py +478 -0
  58. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/execution_copies.py +63 -0
  59. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/foundation_adoption.py +438 -0
  60. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/foundation_adoption_evidence.py +245 -0
  61. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/foundation_adoption_host.py +157 -0
  62. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/foundation_adoption_transport.py +51 -0
  63. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/foundation_failure.py +72 -0
  64. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/foundation_image.py +168 -0
  65. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/foundation_input.py +235 -0
  66. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/foundation_output.py +154 -0
  67. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/foundation_plan.py +381 -0
  68. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/foundation_process.py +64 -0
  69. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/foundation_progress.py +231 -0
  70. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/github_actions.py +171 -0
  71. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/github_apply_artifact.py +259 -0
  72. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/github_artifact_io.py +48 -0
  73. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/github_dispatch.py +248 -0
  74. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/github_plan_artifact.py +181 -0
  75. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/github_provider_artifact.py +170 -0
  76. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/github_transport.py +46 -0
  77. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/github_workflow_values.py +312 -0
  78. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/hub_image_deploy.py +354 -0
  79. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/hub_image_stage.py +162 -0
  80. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/hub_image_trust.py +281 -0
  81. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/hub_ownership.py +161 -0
  82. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/hub_workload_handoff.py +264 -0
  83. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/hub_workload_handoff_inputs.py +227 -0
  84. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/identity_profile.py +227 -0
  85. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/image_targets.py +197 -0
  86. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/installation_scope.py +280 -0
  87. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/license.py +311 -0
  88. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/license_issue.py +239 -0
  89. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/lifecycle_authorization.py +252 -0
  90. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/lifecycle_commands.py +173 -0
  91. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/lifecycle_configuration.py +722 -0
  92. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/lifecycle_configuration_artifact.py +45 -0
  93. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/lifecycle_configuration_cli.py +324 -0
  94. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/lifecycle_configuration_document.py +74 -0
  95. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/lifecycle_configuration_entities.py +146 -0
  96. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/lifecycle_configuration_package.py +492 -0
  97. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/lifecycle_configuration_publication.py +277 -0
  98. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/lifecycle_configuration_publication_cli.py +191 -0
  99. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/lifecycle_configuration_sealing.py +127 -0
  100. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/lifecycle_enrollment.py +45 -0
  101. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/lifecycle_infrastructure_agent.py +174 -0
  102. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/lifecycle_installation_binding.py +65 -0
  103. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/lifecycle_native.py +247 -0
  104. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/lifecycle_native_reconciliation.py +568 -0
  105. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/lifecycle_native_transition.py +339 -0
  106. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/lifecycle_ownership_exclusion.py +78 -0
  107. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/lifecycle_plan.py +800 -0
  108. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/lifecycle_promotion.py +185 -0
  109. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/lifecycle_release.py +308 -0
  110. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/lifecycle_self_upgrade.py +202 -0
  111. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/lifecycle_upgrade_bundle.py +176 -0
  112. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/notification_recipients_input.py +222 -0
  113. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/observer_artifact.py +106 -0
  114. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/oci_archive.py +353 -0
  115. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/offline_kit.py +797 -0
  116. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/offline_prepare.py +135 -0
  117. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/operational_evidence_verifier_input.py +575 -0
  118. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/plan_input.py +101 -0
  119. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/private_output.py +192 -0
  120. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/profile.py +70 -0
  121. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/progress.py +183 -0
  122. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/readiness.py +286 -0
  123. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/run_command_receiver.py +418 -0
  124. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/runtime_build.py +386 -0
  125. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/runtime_profile.py +287 -0
  126. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/runtime_release.py +745 -0
  127. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/runtime_stage.py +82 -0
  128. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/runtime_support_installation.py +215 -0
  129. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/simulation.py +80 -0
  130. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/source_application_inputs.py +397 -0
  131. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/source_azure.py +586 -0
  132. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/source_change_cli.py +107 -0
  133. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/source_change_parser.py +75 -0
  134. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/source_change_plan.py +181 -0
  135. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/source_changed_update.py +196 -0
  136. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/source_deploy.py +170 -0
  137. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/source_foundation.py +174 -0
  138. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/source_host_tools.py +163 -0
  139. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/source_image_stage.py +400 -0
  140. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/source_input.py +173 -0
  141. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/source_projection.py +164 -0
  142. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/source_receiver.py +76 -0
  143. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/source_recovery.py +264 -0
  144. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/source_runtime.py +81 -0
  145. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/source_runtime_support.py +368 -0
  146. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/source_service_update.py +726 -0
  147. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/source_service_update_cli.py +47 -0
  148. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/source_snapshot.py +178 -0
  149. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/source_teardown.py +574 -0
  150. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/source_terraform.py +85 -0
  151. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/source_transport.py +399 -0
  152. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_aks_inventory.py +558 -0
  153. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_aks_job_execution.py +769 -0
  154. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_aks_nodepool_guard.py +141 -0
  155. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_application.py +977 -0
  156. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_application_completion.py +151 -0
  157. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_application_input_recovery.py +107 -0
  158. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_application_recovery.py +116 -0
  159. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_approval_input.py +24 -0
  160. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_catalog_checkpoint.py +122 -0
  161. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_catalog_review.py +251 -0
  162. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_checkpoint_failure.py +127 -0
  163. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_console_publish.py +174 -0
  164. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_database_principals.py +41 -0
  165. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_deploy.py +638 -0
  166. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_development_authority.py +166 -0
  167. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_foundation_adoption.py +87 -0
  168. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_foundation_transition.py +767 -0
  169. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_host.py +4608 -0
  170. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_host_rebind.py +226 -0
  171. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_host_residual.py +104 -0
  172. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_host_state.py +145 -0
  173. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_host_values.py +563 -0
  174. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_kubernetes_tools.py +100 -0
  175. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_license_installation.py +177 -0
  176. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_management_egress.py +83 -0
  177. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_migration_evidence.py +38 -0
  178. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_operational_evidence.py +356 -0
  179. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_planned_outputs.py +147 -0
  180. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_private_access_probe.py +100 -0
  181. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_product_profile.py +110 -0
  182. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_remote_prepare.py +442 -0
  183. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_residual_apply.py +540 -0
  184. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_residual_successor.py +431 -0
  185. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_review.py +266 -0
  186. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_service_update_finalization.py +116 -0
  187. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_service_update_recovery.py +277 -0
  188. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_stage_targets.py +325 -0
  189. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_status.py +67 -0
  190. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_terraform_environment.py +237 -0
  191. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_transfer_cleanup.py +237 -0
  192. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/standalone_trial_activation.py +193 -0
  193. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/state.py +434 -0
  194. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/state_handoff.py +253 -0
  195. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/status_projection.py +97 -0
  196. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/support_install.py +257 -0
  197. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/target.py +46 -0
  198. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/trust/capabilities.json +62 -0
  199. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/trust/deployment-bundle-root.pub +3 -0
  200. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/trust/deployment-release-root.pub +3 -0
  201. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/trust/upstream-signing-key.pub +3 -0
  202. fdai_deployment_cli-0.1.2/src/fdai_deployment_cli/trust_roots.py +50 -0
@@ -0,0 +1,112 @@
1
+ Metadata-Version: 2.4
2
+ Name: fdai-deployment-cli
3
+ Version: 0.1.2
4
+ Summary: Installable FDAI deployment and subscription genesis CLI
5
+ Requires-Python: >=3.12
6
+ Requires-Dist: cryptography<51,>=45
7
+ Requires-Dist: fdai-service-contracts==0.1.0
8
+ Requires-Dist: rich<15,>=14
9
+ Description-Content-Type: text/markdown
10
+
11
+ # FDAI Deployment CLI
12
+
13
+ `fdai-deployment-cli` installs the `fdaictl` command. You can install it from a connected package
14
+ source or from a small signed offline wheelhouse. Package installation does not authenticate to
15
+ Azure or grant deployment authority.
16
+
17
+ ## Install from a signed offline package
18
+
19
+ The offline package contains the CLI wheel, its dependency wheels, one requirements file, one
20
+ checksum list, and one detached Ed25519 signature.
21
+
22
+ Verify and install it with standard tools:
23
+
24
+ ```bash
25
+ tar -xzf fdai-deployment-cli-0.1.1-offline.tar.gz
26
+ cd package
27
+ openssl pkeyutl -verify -pubin \
28
+ -inkey /private/trusted-package-signer.pub \
29
+ -rawin -in SHA256SUMS -sigfile SHA256SUMS.sig
30
+ sha256sum -c SHA256SUMS
31
+ python -m pip install --no-index --find-links wheels -r requirements.txt
32
+ fdaictl --version
33
+ ```
34
+
35
+ The trusted public key should come from the operator, not from the package being verified. Pip
36
+ handles interpreter, ABI, platform, dependency, and installation compatibility.
37
+
38
+ ## Build the offline package
39
+
40
+ Use one operator-held Ed25519 private key:
41
+
42
+ ```bash
43
+ scripts/deployment/release/build-signed-python-package.sh \
44
+ --out /private/fdai-python-package \
45
+ --signing-key /private/deployment-signing-key.pem
46
+ ```
47
+
48
+ The private key must be an owner-only mode-`0600` file. The builder produces:
49
+
50
+ ```text
51
+ fdai-python-package/
52
+ fdai-deployment-cli-0.1.1-offline.tar.gz
53
+ signer.pub
54
+ package/
55
+ INSTALL.txt
56
+ requirements.txt
57
+ SHA256SUMS
58
+ SHA256SUMS.sig
59
+ wheels/
60
+ ```
61
+
62
+ No TUF root, nested bundle signature, artifact profile, SBOM, provenance document, deployment
63
+ appliance, runtime image, or Azure receipt is required to complete the Python package.
64
+
65
+ ## Install from a clone
66
+
67
+ For connected development, use the locked repository environment:
68
+
69
+ ```bash
70
+ uv tool install --from ./packages/deployment-cli fdai-deployment-cli
71
+ fdaictl --version
72
+ ```
73
+
74
+ See the
75
+ [deployment quickstart](../../docs/user-guide/deploy-quickstart.md#install-the-command-once)
76
+ for PATH setup, updates, and editable development.
77
+
78
+ ## Use the command
79
+
80
+ Run `fdaictl --help` for the current command tree. Common entry points include:
81
+
82
+ | Command | Purpose |
83
+ |---------|---------|
84
+ | `fdaictl version` | Show the installed CLI version. |
85
+ | `fdaictl doctor` | Check local tools and Azure authentication. |
86
+ | `fdaictl provision inspect` | Inspect a target without changing it. |
87
+ | `fdaictl provision azure` | Start the guarded Azure deployment coordinator. |
88
+ | `fdaictl onboard guided --simulate` | Rehearse the finite stage graph without Azure changes. |
89
+
90
+ Package verification and Azure deployment are separate operations. Azure plans, approvals, Managed
91
+ Identity, recovery, migrations, service health, and cleanup remain deployment-owner controls after
92
+ the CLI is installed.
93
+
94
+ ## Progress output
95
+
96
+ Interactive text mode shows the current deployment phase and elapsed time. Use `--progress plain`
97
+ for line-oriented logs, `--progress off` to hide progress, or `--output json` for machine output.
98
+ Progress is not readiness evidence; the final deployment receipts remain authoritative.
99
+
100
+ ## Test
101
+
102
+ Run the package tests with:
103
+
104
+ ```bash
105
+ uv run --project packages/deployment-cli pytest -q --no-cov packages/deployment-cli/tests
106
+ uv run pytest -q --no-cov tests/integration/scripts/test_package_assurance.py \
107
+ tests/integration/scripts/test_signed_python_package.py
108
+ ```
109
+
110
+ See [Package Assurance](../../docs/roadmap/architecture/package-assurance.md) for the minimal signing
111
+ contract and [Installable Deployment CLI](../../docs/roadmap/deployment/installable-deployment-cli.md)
112
+ for Azure deployment behavior.
@@ -0,0 +1,102 @@
1
+ # FDAI Deployment CLI
2
+
3
+ `fdai-deployment-cli` installs the `fdaictl` command. You can install it from a connected package
4
+ source or from a small signed offline wheelhouse. Package installation does not authenticate to
5
+ Azure or grant deployment authority.
6
+
7
+ ## Install from a signed offline package
8
+
9
+ The offline package contains the CLI wheel, its dependency wheels, one requirements file, one
10
+ checksum list, and one detached Ed25519 signature.
11
+
12
+ Verify and install it with standard tools:
13
+
14
+ ```bash
15
+ tar -xzf fdai-deployment-cli-0.1.1-offline.tar.gz
16
+ cd package
17
+ openssl pkeyutl -verify -pubin \
18
+ -inkey /private/trusted-package-signer.pub \
19
+ -rawin -in SHA256SUMS -sigfile SHA256SUMS.sig
20
+ sha256sum -c SHA256SUMS
21
+ python -m pip install --no-index --find-links wheels -r requirements.txt
22
+ fdaictl --version
23
+ ```
24
+
25
+ The trusted public key should come from the operator, not from the package being verified. Pip
26
+ handles interpreter, ABI, platform, dependency, and installation compatibility.
27
+
28
+ ## Build the offline package
29
+
30
+ Use one operator-held Ed25519 private key:
31
+
32
+ ```bash
33
+ scripts/deployment/release/build-signed-python-package.sh \
34
+ --out /private/fdai-python-package \
35
+ --signing-key /private/deployment-signing-key.pem
36
+ ```
37
+
38
+ The private key must be an owner-only mode-`0600` file. The builder produces:
39
+
40
+ ```text
41
+ fdai-python-package/
42
+ fdai-deployment-cli-0.1.1-offline.tar.gz
43
+ signer.pub
44
+ package/
45
+ INSTALL.txt
46
+ requirements.txt
47
+ SHA256SUMS
48
+ SHA256SUMS.sig
49
+ wheels/
50
+ ```
51
+
52
+ No TUF root, nested bundle signature, artifact profile, SBOM, provenance document, deployment
53
+ appliance, runtime image, or Azure receipt is required to complete the Python package.
54
+
55
+ ## Install from a clone
56
+
57
+ For connected development, use the locked repository environment:
58
+
59
+ ```bash
60
+ uv tool install --from ./packages/deployment-cli fdai-deployment-cli
61
+ fdaictl --version
62
+ ```
63
+
64
+ See the
65
+ [deployment quickstart](../../docs/user-guide/deploy-quickstart.md#install-the-command-once)
66
+ for PATH setup, updates, and editable development.
67
+
68
+ ## Use the command
69
+
70
+ Run `fdaictl --help` for the current command tree. Common entry points include:
71
+
72
+ | Command | Purpose |
73
+ |---------|---------|
74
+ | `fdaictl version` | Show the installed CLI version. |
75
+ | `fdaictl doctor` | Check local tools and Azure authentication. |
76
+ | `fdaictl provision inspect` | Inspect a target without changing it. |
77
+ | `fdaictl provision azure` | Start the guarded Azure deployment coordinator. |
78
+ | `fdaictl onboard guided --simulate` | Rehearse the finite stage graph without Azure changes. |
79
+
80
+ Package verification and Azure deployment are separate operations. Azure plans, approvals, Managed
81
+ Identity, recovery, migrations, service health, and cleanup remain deployment-owner controls after
82
+ the CLI is installed.
83
+
84
+ ## Progress output
85
+
86
+ Interactive text mode shows the current deployment phase and elapsed time. Use `--progress plain`
87
+ for line-oriented logs, `--progress off` to hide progress, or `--output json` for machine output.
88
+ Progress is not readiness evidence; the final deployment receipts remain authoritative.
89
+
90
+ ## Test
91
+
92
+ Run the package tests with:
93
+
94
+ ```bash
95
+ uv run --project packages/deployment-cli pytest -q --no-cov packages/deployment-cli/tests
96
+ uv run pytest -q --no-cov tests/integration/scripts/test_package_assurance.py \
97
+ tests/integration/scripts/test_signed_python_package.py
98
+ ```
99
+
100
+ See [Package Assurance](../../docs/roadmap/architecture/package-assurance.md) for the minimal signing
101
+ contract and [Installable Deployment CLI](../../docs/roadmap/deployment/installable-deployment-cli.md)
102
+ for Azure deployment behavior.
@@ -0,0 +1,50 @@
1
+ [project]
2
+ name = "fdai-deployment-cli"
3
+ version = "0.1.2"
4
+ description = "Installable FDAI deployment and subscription genesis CLI"
5
+ readme = "README.md"
6
+ requires-python = ">=3.12"
7
+ dependencies = [
8
+ "cryptography>=45,<51",
9
+ "fdai-service-contracts==0.1.0",
10
+ "rich>=14,<15",
11
+ ]
12
+
13
+ [dependency-groups]
14
+ dev = [
15
+ "mypy>=1.13,<2",
16
+ "pyte>=0.8,<0.9",
17
+ "pytest>=9.0.3,<10",
18
+ "pytest-cov>=5,<7",
19
+ "ruff>=0.7,<1",
20
+ ]
21
+ release = ["pip==26.2.1"]
22
+
23
+ [project.scripts]
24
+ fdaictl = "fdai_deployment_cli.cli:main"
25
+
26
+ [build-system]
27
+ requires = ["hatchling==1.31.0"]
28
+ build-backend = "hatchling.build"
29
+
30
+ [tool.hatch.build.targets.wheel]
31
+ packages = ["src/fdai_deployment_cli"]
32
+
33
+ [tool.hatch.build.targets.sdist]
34
+ include = ["src/fdai_deployment_cli", "pyproject.toml", "README.md"]
35
+
36
+ [tool.ruff]
37
+ line-length = 100
38
+ target-version = "py312"
39
+
40
+ [tool.mypy]
41
+ python_version = "3.12"
42
+ strict = true
43
+ files = ["src/fdai_deployment_cli"]
44
+
45
+ [tool.pytest.ini_options]
46
+ addopts = ["-ra", "--strict-markers", "--strict-config"]
47
+ testpaths = ["tests"]
48
+
49
+ [tool.uv.sources]
50
+ fdai-service-contracts = { path = "../service-contracts", editable = true }
@@ -0,0 +1,3 @@
1
+ """Package version for the independently installable deployment CLI."""
2
+
3
+ __version__ = "0.1.2"
@@ -0,0 +1,5 @@
1
+ """Installable, fail-closed FDAI deployment orchestration."""
2
+
3
+ from fdai_deployment_cli.__about__ import __version__
4
+
5
+ __all__ = ["__version__"]
@@ -0,0 +1,5 @@
1
+ """Module entry point for ``python -m fdai.deployment_cli``."""
2
+
3
+ from fdai_deployment_cli.cli import main
4
+
5
+ raise SystemExit(main())