@ngocsangairvds/vsaf 3.1.26 → 3.2.1

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 (305) hide show
  1. package/package.json +2 -2
  2. package/src/global.js +70 -10
  3. package/tools/skills/vds-scripts-skill/.openskills.json +6 -0
  4. package/tools/skills/vds-scripts-skill/QUALITY.md +44 -0
  5. package/tools/skills/vds-scripts-skill/SKILL.md +135 -0
  6. package/tools/skills/vds-scripts-skill/references/audit-commands.md +171 -0
  7. package/tools/skills/vds-scripts-skill/references/capability-index.md +34 -0
  8. package/tools/skills/vds-scripts-skill/references/development-commands.md +12 -0
  9. package/tools/skills/vds-scripts-skill/references/google-sheets.md +73 -0
  10. package/tools/skills/vds-scripts-skill/references/integration-commands.md +17 -0
  11. package/tools/skills/vds-scripts-skill/references/platform-bootstrap.md +31 -0
  12. package/tools/skills/vds-scripts-skill/references/specialist-routing.md +14 -0
  13. package/tools/skills/vds-scripts-skill/references/validation-commands.md +15 -0
  14. package/tools/skills/vsaf-build/SKILL.md +32 -2
  15. package/tools/skills/vsaf-push-prd/SKILL.md +43 -40
  16. package/tools/skills/vsaf-push-srs/SKILL.md +44 -41
  17. package/tools/skills/vsaf-ship/SKILL.md +41 -10
  18. package/tools/skills/vsaf-test/SKILL.md +8 -0
  19. package/tools/vds-scripts/.mcp.json +11 -0
  20. package/tools/vds-scripts/.secrets.baseline +133 -0
  21. package/tools/vds-scripts/AGENTS.md +152 -0
  22. package/tools/vds-scripts/CLAUDE.md +101 -0
  23. package/tools/vds-scripts/CLI_COMMAND_OPTIMIZATION.md +156 -0
  24. package/tools/vds-scripts/PACKAGE_P125B_IMPLEMENTATION_SUMMARY.md +131 -0
  25. package/tools/vds-scripts/PROJECT_COMPLETION_SUMMARY.md +45 -0
  26. package/tools/vds-scripts/README.md +97 -0
  27. package/tools/vds-scripts/bitbucket_manifest_mapping.toml +34 -0
  28. package/tools/vds-scripts/bitbucket_orchestrator/ARCHITECTURE_ANALYSIS.md +258 -0
  29. package/tools/vds-scripts/bitbucket_orchestrator/BITBUCKET_API_PRACTICES.md +393 -0
  30. package/tools/vds-scripts/bitbucket_orchestrator/EVALUATION_REPORT.md +61 -0
  31. package/tools/vds-scripts/bitbucket_orchestrator/FEATURES.md +908 -0
  32. package/tools/vds-scripts/bitbucket_orchestrator/README.md +687 -0
  33. package/tools/vds-scripts/bitbucket_orchestrator/pyproject.toml +40 -0
  34. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/__init__.py +20 -0
  35. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/async_client.py +657 -0
  36. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/cli.py +2108 -0
  37. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/client.py +2534 -0
  38. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/config.py +171 -0
  39. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/errors.py +67 -0
  40. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/factory.py +185 -0
  41. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/protocols.py +244 -0
  42. package/tools/vds-scripts/bitbucket_orchestrator/tests/__init__.py +8 -0
  43. package/tools/vds-scripts/bitbucket_orchestrator/tests/conftest.py +65 -0
  44. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_advanced_search.py +151 -0
  45. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_async_client.py +546 -0
  46. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_branch_permissions.py +145 -0
  47. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_cli.py +115 -0
  48. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client.py +157 -0
  49. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_branch_conditions.py +79 -0
  50. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_code_advanced.py +163 -0
  51. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_code_file.py +32 -0
  52. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_deployment_environments.py +194 -0
  53. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_issues.py +164 -0
  54. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_pipelines_advanced.py +179 -0
  55. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_pr_blockers.py +119 -0
  56. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_repository_variables.py +156 -0
  57. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code.py +98 -0
  58. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code_advanced.py +282 -0
  59. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code_insights.py +335 -0
  60. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_conditions.py +147 -0
  61. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_config.py +131 -0
  62. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_deployment_env.py +352 -0
  63. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_factory.py +371 -0
  64. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_fork_operations.py +204 -0
  65. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_issue_cli.py +261 -0
  66. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_pipeline_advanced.py +270 -0
  67. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_pr_blocker.py +204 -0
  68. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_protocols.py +334 -0
  69. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_repo_settings.py +343 -0
  70. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_repo_variables.py +270 -0
  71. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_webhooks.py +189 -0
  72. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_workspace.py +233 -0
  73. package/tools/vds-scripts/bitbucket_orchestrator/uv.lock +742 -0
  74. package/tools/vds-scripts/confluence_orchestrator/Dockerfile +19 -0
  75. package/tools/vds-scripts/confluence_orchestrator/README.md +412 -0
  76. package/tools/vds-scripts/confluence_orchestrator/SYNC_SCRIPTS.md +127 -0
  77. package/tools/vds-scripts/confluence_orchestrator/SYNC_STANDARDIZATION.md +108 -0
  78. package/tools/vds-scripts/confluence_orchestrator/pyproject.toml +48 -0
  79. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/__init__.py +20 -0
  80. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/cli.py +2532 -0
  81. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/config.py +175 -0
  82. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/content.py +290 -0
  83. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/content_v2.py +94 -0
  84. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/crawl_tree.py +1835 -0
  85. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/errors.py +80 -0
  86. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/eventing.py +109 -0
  87. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/http.py +1114 -0
  88. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/orchestration.py +165 -0
  89. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/reporting.py +78 -0
  90. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/tree.py +121 -0
  91. package/tools/vds-scripts/confluence_orchestrator/sync_pdfs_from_markdown.py +213 -0
  92. package/tools/vds-scripts/confluence_orchestrator/sync_pdfs_to_confluence.py +305 -0
  93. package/tools/vds-scripts/confluence_orchestrator/sync_png_attachments.py +305 -0
  94. package/tools/vds-scripts/confluence_orchestrator/tests/__init__.py +0 -0
  95. package/tools/vds-scripts/confluence_orchestrator/tests/conftest.py +8 -0
  96. package/tools/vds-scripts/confluence_orchestrator/tests/test_advanced_content.py +224 -0
  97. package/tools/vds-scripts/confluence_orchestrator/tests/test_advanced_search.py +188 -0
  98. package/tools/vds-scripts/confluence_orchestrator/tests/test_cache_management.py +247 -0
  99. package/tools/vds-scripts/confluence_orchestrator/tests/test_cli.py +499 -0
  100. package/tools/vds-scripts/confluence_orchestrator/tests/test_config.py +83 -0
  101. package/tools/vds-scripts/confluence_orchestrator/tests/test_content.py +186 -0
  102. package/tools/vds-scripts/confluence_orchestrator/tests/test_content_flags.py +27 -0
  103. package/tools/vds-scripts/confluence_orchestrator/tests/test_crawl_tree.py +2250 -0
  104. package/tools/vds-scripts/confluence_orchestrator/tests/test_draft_management.py +223 -0
  105. package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing.py +71 -0
  106. package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_chaos.py +37 -0
  107. package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_rate_limit.py +44 -0
  108. package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_timeout.py +49 -0
  109. package/tools/vds-scripts/confluence_orchestrator/tests/test_export.py +230 -0
  110. package/tools/vds-scripts/confluence_orchestrator/tests/test_history.py +204 -0
  111. package/tools/vds-scripts/confluence_orchestrator/tests/test_http.py +117 -0
  112. package/tools/vds-scripts/confluence_orchestrator/tests/test_orchestration.py +91 -0
  113. package/tools/vds-scripts/confluence_orchestrator/tests/test_reporting.py +24 -0
  114. package/tools/vds-scripts/confluence_orchestrator/tests/test_search_cql.py +34 -0
  115. package/tools/vds-scripts/confluence_orchestrator/tests/test_space_management.py +237 -0
  116. package/tools/vds-scripts/confluence_orchestrator/tests/test_space_permissions.py +332 -0
  117. package/tools/vds-scripts/confluence_orchestrator/tests/test_user_group_management.py +388 -0
  118. package/tools/vds-scripts/confluence_orchestrator/uv.lock +1023 -0
  119. package/tools/vds-scripts/git_orchestrator/ENHANCEMENT_SUMMARY.md +119 -0
  120. package/tools/vds-scripts/git_orchestrator/README.md +280 -0
  121. package/tools/vds-scripts/git_orchestrator/VERIFICATION_REPORT.md +152 -0
  122. package/tools/vds-scripts/git_orchestrator/pyproject.toml +35 -0
  123. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/__init__.py +7 -0
  124. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/__main__.py +4 -0
  125. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/cli.py +847 -0
  126. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/logging_config.py +63 -0
  127. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/manifest.py +129 -0
  128. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/orchestrator.py +819 -0
  129. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/reporting.py +53 -0
  130. package/tools/vds-scripts/git_orchestrator/tests/__init__.py +0 -0
  131. package/tools/vds-scripts/git_orchestrator/tests/test_cli_settings.py +21 -0
  132. package/tools/vds-scripts/git_orchestrator/tests/test_integration.py +74 -0
  133. package/tools/vds-scripts/git_orchestrator/tests/test_manifest.py +79 -0
  134. package/tools/vds-scripts/git_orchestrator/tests/test_orchestrator.py +204 -0
  135. package/tools/vds-scripts/git_orchestrator/tests/test_public_api.py +236 -0
  136. package/tools/vds-scripts/git_orchestrator/tests/test_resilience.py +345 -0
  137. package/tools/vds-scripts/git_orchestrator/uv.lock +271 -0
  138. package/tools/vds-scripts/jira_orchestrator/README.md +770 -0
  139. package/tools/vds-scripts/jira_orchestrator/pyproject.toml +39 -0
  140. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/__init__.py +1 -0
  141. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/adapter.py +1320 -0
  142. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/cli.py +2271 -0
  143. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/config.py +138 -0
  144. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/errors.py +67 -0
  145. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/reporting.py +65 -0
  146. package/tools/vds-scripts/jira_orchestrator/tests/__init__.py +1 -0
  147. package/tools/vds-scripts/jira_orchestrator/tests/conftest.py +86 -0
  148. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_agile_list_payloads.py +54 -0
  149. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_bulk_operations.py +69 -0
  150. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_components.py +57 -0
  151. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_createmeta.py +45 -0
  152. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_dashboard.py +117 -0
  153. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_issue_properties.py +54 -0
  154. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_permissions_compat.py +42 -0
  155. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_reindex.py +42 -0
  156. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_remote_links.py +76 -0
  157. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_transitions.py +91 -0
  158. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_user_management.py +110 -0
  159. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_version_management.py +133 -0
  160. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_watchers.py +41 -0
  161. package/tools/vds-scripts/jira_orchestrator/tests/test_advanced_search.py +164 -0
  162. package/tools/vds-scripts/jira_orchestrator/tests/test_agile.py +256 -0
  163. package/tools/vds-scripts/jira_orchestrator/tests/test_application_properties.py +193 -0
  164. package/tools/vds-scripts/jira_orchestrator/tests/test_backlog.py +91 -0
  165. package/tools/vds-scripts/jira_orchestrator/tests/test_bulk_operations.py +277 -0
  166. package/tools/vds-scripts/jira_orchestrator/tests/test_cli.py +106 -0
  167. package/tools/vds-scripts/jira_orchestrator/tests/test_components.py +106 -0
  168. package/tools/vds-scripts/jira_orchestrator/tests/test_config.py +164 -0
  169. package/tools/vds-scripts/jira_orchestrator/tests/test_dashboard.py +122 -0
  170. package/tools/vds-scripts/jira_orchestrator/tests/test_discover_fields.py +207 -0
  171. package/tools/vds-scripts/jira_orchestrator/tests/test_filter_management.py +333 -0
  172. package/tools/vds-scripts/jira_orchestrator/tests/test_issue_archiving.py +164 -0
  173. package/tools/vds-scripts/jira_orchestrator/tests/test_issue_links.py +257 -0
  174. package/tools/vds-scripts/jira_orchestrator/tests/test_issue_properties.py +171 -0
  175. package/tools/vds-scripts/jira_orchestrator/tests/test_link_types.py +314 -0
  176. package/tools/vds-scripts/jira_orchestrator/tests/test_parse_set.py +37 -0
  177. package/tools/vds-scripts/jira_orchestrator/tests/test_permissions.py +273 -0
  178. package/tools/vds-scripts/jira_orchestrator/tests/test_reindex.py +81 -0
  179. package/tools/vds-scripts/jira_orchestrator/tests/test_remote_links.py +254 -0
  180. package/tools/vds-scripts/jira_orchestrator/tests/test_security_schemes.py +170 -0
  181. package/tools/vds-scripts/jira_orchestrator/tests/test_transitions_changelog.py +114 -0
  182. package/tools/vds-scripts/jira_orchestrator/tests/test_user_management.py +226 -0
  183. package/tools/vds-scripts/jira_orchestrator/tests/test_version_management.py +339 -0
  184. package/tools/vds-scripts/jira_orchestrator/tests/test_watchers.py +101 -0
  185. package/tools/vds-scripts/jira_orchestrator/tests/test_worklog.py +223 -0
  186. package/tools/vds-scripts/jira_orchestrator/uv.lock +738 -0
  187. package/tools/vds-scripts/mcp_server/Dockerfile +34 -0
  188. package/tools/vds-scripts/mcp_server/README.md +140 -0
  189. package/tools/vds-scripts/mcp_server/pyproject.toml +42 -0
  190. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/__init__.py +4 -0
  191. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/config.py +36 -0
  192. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/server.py +66 -0
  193. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/__init__.py +14 -0
  194. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/bitbucket_tools.py +47 -0
  195. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/confluence_tools.py +59 -0
  196. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/git_tools.py +71 -0
  197. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/jira_tools.py +63 -0
  198. package/tools/vds-scripts/mcp_server/tests/__init__.py +2 -0
  199. package/tools/vds-scripts/mcp_server/tests/conftest.py +29 -0
  200. package/tools/vds-scripts/mcp_server/tests/unit/__init__.py +2 -0
  201. package/tools/vds-scripts/mcp_server/tests/unit/test_bitbucket_tools.py +25 -0
  202. package/tools/vds-scripts/mcp_server/tests/unit/test_confluence_tools.py +25 -0
  203. package/tools/vds-scripts/mcp_server/tests/unit/test_git_tools.py +32 -0
  204. package/tools/vds-scripts/mcp_server/tests/unit/test_jira_tools.py +32 -0
  205. package/tools/vds-scripts/mcp_server/tests/verification/__init__.py +2 -0
  206. package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_confluence_tools.py +40 -0
  207. package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_jira_tools.py +37 -0
  208. package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_tool_registration.py +47 -0
  209. package/tools/vds-scripts/mcp_server/uv.lock +1032 -0
  210. package/tools/vds-scripts/mypy.ini +5 -0
  211. package/tools/vds-scripts/pyproject.toml +29 -0
  212. package/tools/vds-scripts/repo-manifest.yaml +273 -0
  213. package/tools/vds-scripts/repo-manifest.yaml.example +25 -0
  214. package/tools/vds-scripts/scripts/BRD-Validation-API.postman_collection.json +706 -0
  215. package/tools/vds-scripts/scripts/BRD-Validation-README.md +308 -0
  216. package/tools/vds-scripts/scripts/README.md +162 -0
  217. package/tools/vds-scripts/scripts/bootstrap_uv.sh +30 -0
  218. package/tools/vds-scripts/scripts/brd-validation-environment.json +51 -0
  219. package/tools/vds-scripts/scripts/brd-validation-test-results.json +13023 -0
  220. package/tools/vds-scripts/scripts/brd_coverage_report.json +276 -0
  221. package/tools/vds-scripts/scripts/create_memory_session.py +35 -0
  222. package/tools/vds-scripts/scripts/deployment/load_docker_images_offline.sh +90 -0
  223. package/tools/vds-scripts/scripts/final_completion_report.md +139 -0
  224. package/tools/vds-scripts/scripts/folder_structure_report.json +321 -0
  225. package/tools/vds-scripts/scripts/generate_completion_report.py +125 -0
  226. package/tools/vds-scripts/scripts/generate_intellij_modules.py +150 -0
  227. package/tools/vds-scripts/scripts/link_integrity_report.json +807 -0
  228. package/tools/vds-scripts/scripts/move_audit_artifact_pages.py +255 -0
  229. package/tools/vds-scripts/scripts/move_audit_artifact_pages_rest.py +165 -0
  230. package/tools/vds-scripts/scripts/move_wrong_dept_pages.py +216 -0
  231. package/tools/vds-scripts/scripts/save_intellij_memories.py +120 -0
  232. package/tools/vds-scripts/scripts/save_memories_to_vds_ai.py +83 -0
  233. package/tools/vds-scripts/scripts/save_memories_vds_style.py +129 -0
  234. package/tools/vds-scripts/scripts/search_intellij_memories.py +50 -0
  235. package/tools/vds-scripts/scripts/setup_intellij_workspace.py +65 -0
  236. package/tools/vds-scripts/scripts/target-state-automation/README.md +89 -0
  237. package/tools/vds-scripts/scripts/target-state-automation/confluence_sync_coordinator.sh +27 -0
  238. package/tools/vds-scripts/scripts/target-state-automation/coordination.sh +114 -0
  239. package/tools/vds-scripts/scripts/target-state-automation/diagram_coordinator.sh +25 -0
  240. package/tools/vds-scripts/scripts/target-state-automation/docs_root.sh +22 -0
  241. package/tools/vds-scripts/scripts/target-state-automation/generate_diagrams.sh +22 -0
  242. package/tools/vds-scripts/scripts/target-state-automation/markdown_coordinator.sh +25 -0
  243. package/tools/vds-scripts/scripts/target-state-automation/progress_dashboard.sh +17 -0
  244. package/tools/vds-scripts/scripts/target-state-automation/schema_coordinator.sh +25 -0
  245. package/tools/vds-scripts/scripts/target-state-automation/sync_confluence.sh +30 -0
  246. package/tools/vds-scripts/scripts/target-state-automation/update_dependencies.sh +19 -0
  247. package/tools/vds-scripts/scripts/target-state-automation/validate_links.sh +86 -0
  248. package/tools/vds-scripts/scripts/target-state-automation/validate_markdown.sh +52 -0
  249. package/tools/vds-scripts/scripts/target-state-automation/validate_schemas.sh +26 -0
  250. package/tools/vds-scripts/scripts/target-state-automation/validate_structure.sh +98 -0
  251. package/tools/vds-scripts/scripts/update_modules_xml.py +190 -0
  252. package/tools/vds-scripts/scripts/uv-workspace-alignment-verification-2026-03-25.md +128 -0
  253. package/tools/vds-scripts/scripts/validate_brd_coverage.py +179 -0
  254. package/tools/vds-scripts/scripts/validate_folder_structure.py +240 -0
  255. package/tools/vds-scripts/scripts/validate_link_integrity.py +272 -0
  256. package/tools/vds-scripts/scripts/vds_sh_helpers.sh +180 -0
  257. package/tools/vds-scripts/scripts/verification/phase2_portable_paths_ubuntu_docker.sh +26 -0
  258. package/tools/vds-scripts/scripts/worktree_uv.sh +48 -0
  259. package/tools/vds-scripts/uv.lock +8 -0
  260. package/tools/vds-scripts/vds_cli/README.md +126 -0
  261. package/tools/vds-scripts/vds_cli/VERIFICATION_REPORT.md +41 -0
  262. package/tools/vds-scripts/vds_cli/pyproject.toml +38 -0
  263. package/tools/vds-scripts/vds_cli/src/vds_cli/__init__.py +3 -0
  264. package/tools/vds-scripts/vds_cli/src/vds_cli/cli.py +173 -0
  265. package/tools/vds-scripts/vds_cli/src/vds_cli/docs_sync.py +1203 -0
  266. package/tools/vds-scripts/vds_cli/src/vds_cli/env.py +41 -0
  267. package/tools/vds-scripts/vds_cli/src/vds_cli/google_sheets_orchestrator/__init__.py +3 -0
  268. package/tools/vds-scripts/vds_cli/src/vds_cli/google_sheets_orchestrator/google_sheets_orchestrator.py +198 -0
  269. package/tools/vds-scripts/vds_cli/src/vds_cli/router.py +93 -0
  270. package/tools/vds-scripts/vds_cli/src/vds_cli/sync_api.py +647 -0
  271. package/tools/vds-scripts/vds_cli/src/vds_cli/sync_service.py +266 -0
  272. package/tools/vds-scripts/vds_cli/tests/__init__.py +2 -0
  273. package/tools/vds-scripts/vds_cli/tests/conftest.py +49 -0
  274. package/tools/vds-scripts/vds_cli/tests/unit/__init__.py +2 -0
  275. package/tools/vds-scripts/vds_cli/tests/unit/test_cli.py +143 -0
  276. package/tools/vds-scripts/vds_cli/tests/unit/test_docs_sync.py +422 -0
  277. package/tools/vds-scripts/vds_cli/tests/unit/test_env.py +51 -0
  278. package/tools/vds-scripts/vds_cli/tests/unit/test_router.py +72 -0
  279. package/tools/vds-scripts/vds_cli/tests/unit/test_sync_api.py +357 -0
  280. package/tools/vds-scripts/vds_cli/tests/unit/test_sync_service.py +160 -0
  281. package/tools/vds-scripts/vds_cli/tests/verification/__init__.py +2 -0
  282. package/tools/vds-scripts/vds_cli/tests/verification/test_bitbucket_real.py +33 -0
  283. package/tools/vds-scripts/vds_cli/tests/verification/test_confluence_real.py +35 -0
  284. package/tools/vds-scripts/vds_cli/tests/verification/test_jira_real.py +41 -0
  285. package/tools/vds-scripts/vds_cli/uv.lock +524 -0
  286. package/tools/vds-scripts/vds_cli_common/README.md +190 -0
  287. package/tools/vds-scripts/vds_cli_common/pyproject.toml +92 -0
  288. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/__init__.py +34 -0
  289. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/completers.py +139 -0
  290. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/context.py +201 -0
  291. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/env.py +119 -0
  292. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/errors.py +318 -0
  293. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/output.py +284 -0
  294. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/paths.py +78 -0
  295. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/testing.py +213 -0
  296. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/version.py +85 -0
  297. package/tools/vds-scripts/vds_cli_common/tests/__init__.py +1 -0
  298. package/tools/vds-scripts/vds_cli_common/tests/test_completers.py +148 -0
  299. package/tools/vds-scripts/vds_cli_common/tests/test_context.py +192 -0
  300. package/tools/vds-scripts/vds_cli_common/tests/test_env.py +102 -0
  301. package/tools/vds-scripts/vds_cli_common/tests/test_errors.py +186 -0
  302. package/tools/vds-scripts/vds_cli_common/tests/test_output.py +229 -0
  303. package/tools/vds-scripts/vds_cli_common/tests/test_paths.py +61 -0
  304. package/tools/vds-scripts/vds_cli_common/tests/test_testing.py +138 -0
  305. package/tools/vds-scripts/vds_cli_common/tests/test_version.py +64 -0
@@ -0,0 +1,19 @@
1
+ # syntax=docker/dockerfile:1
2
+ FROM python:3.12-slim
3
+
4
+ # Install uv
5
+ RUN apt-get update && apt-get install -y curl ca-certificates && rm -rf /var/lib/apt/lists/* \
6
+ && curl -LsSf https://astral.sh/uv/install.sh | sh && echo "export PATH=\"$HOME/.cargo/bin:$PATH\"" >> /etc/profile
7
+
8
+ WORKDIR /app
9
+ COPY confluence_orchestrator/pyproject.toml /app/
10
+ COPY confluence_orchestrator/uv.lock /app/
11
+
12
+ # Sync deps (frozen)
13
+ RUN /root/.cargo/bin/uv sync --frozen
14
+
15
+ # Copy sources
16
+ COPY confluence_orchestrator/src /app/src
17
+
18
+ # Default command: run CLI help via uvx
19
+ CMD ["/root/.cargo/bin/uvx", "vds-confluence-cli", "--help"]
@@ -0,0 +1,412 @@
1
+ # VDS Confluence Orchestrator
2
+
3
+ Python toolkit for Confluence operations using the `atlassian-python-api` SDK. The project closely mirrors the existing
4
+ git orchestrator: uv-managed environment, Typer CLI, httpx client with structured logging, and JSON/Markdown run
5
+ reports.
6
+
7
+ ## Quick Start
8
+
9
+ ```bash
10
+ cd vds-scripts
11
+ # Optional: sync every orchestrator once
12
+ ./scripts/bootstrap_uv.sh
13
+
14
+ # Package-specific sync & tests
15
+ uv sync --project confluence_orchestrator --extra dev
16
+ uv run --project confluence_orchestrator pytest
17
+ ```
18
+
19
+ Run the CLI directly (uv automatically loads the project environment once it has been synced at least once):
20
+
21
+ ```bash
22
+ uv run --project confluence_orchestrator vds-confluence-cli --help
23
+ ```
24
+
25
+ **Agent-friendly output**
26
+ - When using `vds-cli`, pass Typer flags after `--` (e.g. `vds-cli confluence -- --json-only content ...`).
27
+ - `--json-only` prints JSON to stdout and skips reports/markdown (logging suppressed).
28
+ - `--no-reports` keeps normal console output while avoiding filesystem writes.
29
+
30
+ Common commands (short form):
31
+ ```bash
32
+ uv run --project confluence_orchestrator vds-confluence-cli content page 99647801 --server external --expand body.storage
33
+ uv run --project confluence_orchestrator vds-confluence-cli export page --page-id 99647801 --output page.pdf
34
+ ```
35
+
36
+ Via vds-cli router:
37
+ ```bash
38
+ uv run --project vds_cli vds-cli confluence -- content page 99647801 --server external --expand body.storage
39
+ ```
40
+
41
+ Full command examples:
42
+ ```bash
43
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli --help
44
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli get 99647801 --server external -- --strip-markup
45
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli content page 99647801 --server external --expand body.storage
46
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli content create-page --space TTTC --title "Automation" --body-file ./examples/page_storage.html
47
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli content add-attachment 99647801 --file ./diagram.png --comment "Latest architecture diagram"
48
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli content delete-attachment 99647801 --filename Current_Architecture_Reference.pdf
49
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli batch-native scan --cql "space = TTTC" --limit 10 --json
50
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli webhook-native create --name "Notify" --url https://example.com/hook --event page_created --json
51
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli space-permissions get --space-key TTTC --json
52
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli space-permissions set --space-key TTTC --group "confluence-users" --operation read --yes --json
53
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli space-management archive --space-key TTTC --yes --json
54
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli space-management trash-list --space-key TTTC --limit 25 --json
55
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli space-management trash-remove --space-key TTTC --yes --json
56
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli group list --limit 50 --json
57
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli group members --group "confluence-users" --limit 100 --json
58
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli user get --username testuser --json
59
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli user get --userkey key123 --expand status,details --json
60
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli user password --username testuser --new-password "newpass123" --yes --json
61
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli user group-add --username testuser --group "confluence-users" --yes --json
62
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli user group-remove --username testuser --group "confluence-users" --yes --json
63
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli export page --page-id 99647801 --output page.pdf
64
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli export space --space-key TTTC --export-type pdf --json
65
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli draft get --page-id 12345 --json
66
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli draft list --space-key TTTC --limit 50 --json
67
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli draft remove --page-id 12345 --yes --json
68
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli content ancestors 99647801 --json
69
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli content move 99647801 --target-title "Parent" --position append --yes --json
70
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli content tables 99647801 --json
71
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli content regex 99647801 --pattern "\d+" --json
72
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli content restrictions 99647801 --json
73
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli history get --page-id 99647801 --json
74
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli history version --page-id 99647801 --version 2 --json
75
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli history remove --page-id 99647801 --version 2 --yes --json
76
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli cache statistics --json
77
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli cache flush --yes --json
78
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli cache flush --cache-name "com.gliffy.cache.gon" --yes --json
79
+ uv run --project confluence_orchestrator python -m confluence_orchestrator.cli cache size --json
80
+ ```
81
+
82
+ The unified `vds_cli` still routes `confluence` commands through this project, so the usual workflow is:
83
+
84
+ ```bash
85
+ uv run --project vds_cli vds-cli env load
86
+ uv run --project vds_cli vds-cli confluence get 99647801 --server external -- --strip-markup
87
+ ```
88
+
89
+ Run reports are written to `vds-scripts/reports/confluence_runs/YYYY/MM/DD/<timestamp>.json` (plus Markdown unless
90
+ `--no-markdown` is used).
91
+
92
+ ## Linting
93
+
94
+ We use Ruff for linting/formatting:
95
+
96
+ ```bash
97
+ uv run --extra dev ruff check
98
+ uv run --extra dev ruff format
99
+ ```
100
+
101
+ ## Project Layout
102
+
103
+ - `src/confluence_orchestrator/config.py` – environment loader (`~/.vds/.env` + repo `.env`)
104
+ - `src/confluence_orchestrator/http.py` – shared httpx client with retry/backoff
105
+ - `src/confluence_orchestrator/cli.py` – Typer CLI bridging legacy bash scripts **and** exposing native `content`
106
+ subcommands
107
+ - `src/confluence_orchestrator/content.py` – REST v1 helper layer (read + write: pages, templates, attachments,
108
+ attachment deletion by filename/ID)
109
+ - `src/confluence_orchestrator/content_v2.py` – REST v2 adapter (read-only pages/templates/search)
110
+ - `src/confluence_orchestrator/orchestration.py` – Batch polling + webhook management utilities
111
+ - `src/confluence_orchestrator/reporting.py` – JSON/Markdown run reports
112
+ - `tests/` – pytest suite using httpx MockTransport and Typer CliRunner
113
+
114
+ ## Available Commands
115
+
116
+ ### Search Operations
117
+
118
+ - **`search`** - CQL search with advanced options
119
+
120
+ ```bash
121
+ # Basic CQL search
122
+ uv run --project vds_cli vds-cli confluence search --cql "type = page AND space = TTTC" --limit 25
123
+
124
+ # Advanced CQL search with excerpt and pagination
125
+ uv run --project vds_cli vds-cli confluence search --cql "type = page" --advanced --excerpt "highlighted" --start 10 --limit 50
126
+
127
+ # Advanced search with expand options
128
+ uv run --project vds_cli vds-cli confluence search --cql "title ~ 'test'" --advanced --expand "body.storage,space" --limit 25
129
+ ```
130
+
131
+ > **Note**: Use `--advanced` flag or `--excerpt` parameter to enable advanced search with additional options like
132
+ > excerpt strategies and expanded pagination.
133
+
134
+ - **`search-by-space-type`** - Search by space and/or content type (helper that builds CQL automatically)
135
+
136
+ ```bash
137
+ # Search by space only
138
+ uv run --project vds_cli vds-cli confluence search-by-space-type --space TTTC --limit 50
139
+
140
+ # Search by content type only
141
+ uv run --project vds_cli vds-cli confluence search-by-space-type --type page --limit 25
142
+
143
+ # Search by both space and type
144
+ uv run --project vds_cli vds-cli confluence search-by-space-type --space TTTC --type page --start 0 --limit 50
145
+
146
+ # With expand options
147
+ uv run --project vds_cli vds-cli confluence search-by-space-type --space TTTC --type blogpost --expand "body.storage,version"
148
+ ```
149
+
150
+ > **Note**: At least one of `--space` or `--type` must be provided. This helper automatically builds the CQL query for
151
+ > you.
152
+
153
+ ### User & Group Management
154
+
155
+ - **`group list`** - List all groups
156
+
157
+ ```bash
158
+ uv run --project vds_cli vds-cli confluence group list --limit 50
159
+ uv run --project vds_cli vds-cli confluence group list --start 0 --limit 100
160
+ ```
161
+
162
+ - **`group members`** - Get group members
163
+
164
+ ```bash
165
+ uv run --project vds_cli vds-cli confluence group members --group "confluence-users"
166
+ uv run --project vds_cli vds-cli confluence group members --group "admins" --start 0 --limit 100
167
+ ```
168
+
169
+ - **`user get`** - Get user details
170
+
171
+ ```bash
172
+ # By username
173
+ uv run --project vds_cli vds-cli confluence user get --username testuser
174
+ uv run --project vds_cli vds-cli confluence user get --username testuser --expand status,details
175
+
176
+ # By user key
177
+ uv run --project vds_cli vds-cli confluence user get --userkey key123
178
+ ```
179
+
180
+ - **`user password`** - Change user password (requires confirmation)
181
+
182
+ ```bash
183
+ uv run --project vds_cli vds-cli confluence user password \
184
+ --username testuser \
185
+ --new-password "newpass123" \
186
+ --yes
187
+ ```
188
+
189
+ > **Security Note**: Password changes require `--yes` flag for confirmation. Use strong passwords and follow security
190
+ > best practices.
191
+
192
+ - **`user group-add`** - Add user to group (requires confirmation)
193
+
194
+ ```bash
195
+ uv run --project vds_cli vds-cli confluence user group-add \
196
+ --username testuser \
197
+ --group "confluence-users" \
198
+ --yes
199
+ ```
200
+
201
+ - **`user group-remove`** - Remove user from group (requires confirmation)
202
+
203
+ ```bash
204
+ uv run --project vds_cli vds-cli confluence user group-remove \
205
+ --username testuser \
206
+ --group "confluence-users" \
207
+ --yes
208
+ ```
209
+
210
+ ### Export Operations
211
+
212
+ - **`export page`** - Export page as PDF
213
+
214
+ ```bash
215
+ # Export to file
216
+ uv run --project vds_cli vds-cli confluence export page --page-id 99647801 --output page.pdf
217
+
218
+ # Export to stdout (binary)
219
+ uv run --project vds_cli vds-cli confluence export page --page-id 99647801 > page.pdf
220
+
221
+ # API version is auto-detected (Cloud vs Server based on URL)
222
+ uv run --project vds_cli vds-cli confluence export page --page-id 99647801 --output page.pdf
223
+ ```
224
+
225
+ > **Note**: API version is automatically detected based on server URL (Cloud vs Server). The `--api-version` flag is
226
+ > accepted for CLI compatibility but the SDK auto-detects the mode from client initialization.
227
+
228
+ - **`export space`** - Get space export download URL
229
+
230
+ ```bash
231
+ # PDF export
232
+ uv run --project vds_cli vds-cli confluence export space --space-key TTTC --export-type pdf
233
+
234
+ # HTML export
235
+ uv run --project vds_cli vds-cli confluence export space --space-key TTTC --export-type html
236
+
237
+ # XML export
238
+ uv run --project vds_cli vds-cli confluence export space --space-key TTTC --export-type xml
239
+ ```
240
+
241
+ > **Note**: Export types supported: `pdf`, `html`, `xml`. The command returns a download URL that can be used to fetch
242
+ > the exported content.
243
+
244
+ ### Draft Management (Server-only)
245
+
246
+ - **`draft get`** - Get draft page by ID
247
+
248
+ ```bash
249
+ uv run --project vds_cli vds-cli confluence draft get --page-id 12345
250
+ ```
251
+
252
+ > **Note**: Server/Data Center only. Not available in Cloud.
253
+
254
+ - **`draft list`** - List all draft pages in a space
255
+
256
+ ```bash
257
+ uv run --project vds_cli vds-cli confluence draft list --space-key TTTC --limit 50
258
+ ```
259
+
260
+ > **Note**: Server/Data Center only. Returns draft pages that haven't been published.
261
+
262
+ - **`draft remove`** - Remove a draft page
263
+
264
+ ```bash
265
+ uv run --project vds_cli vds-cli confluence draft remove --page-id 12345 --yes
266
+ ```
267
+
268
+ > **Warning**: Server/Data Center only. Requires `--yes` flag for confirmation. This permanently removes the draft.
269
+
270
+ ### Advanced Content Operations
271
+
272
+ - **`content ancestors`** - Get page ancestors (parent pages)
273
+
274
+ ```bash
275
+ uv run --project vds_cli vds-cli confluence content ancestors 99647801
276
+ ```
277
+
278
+ > Returns the hierarchy of parent pages for a given page.
279
+
280
+ - **`content move`** - Move page to a new location
281
+
282
+ ```bash
283
+ # Move page as child of target page
284
+ uv run --project vds_cli vds-cli confluence content move 99647801 \
285
+ --target-title "Parent Page" \
286
+ --position append \
287
+ --yes
288
+
289
+ # Move page before target page
290
+ uv run --project vds_cli vds-cli confluence content move 99647801 \
291
+ --target-title "Sibling Page" \
292
+ --position before \
293
+ --yes
294
+ ```
295
+
296
+ > **Notes**:
297
+ >
298
+ > - Requires `--yes` flag for confirmation
299
+ > - `--position` can be: `append` (as child), `before`, or `after` (as sibling)
300
+ > - `--target-title` is the title of the target page
301
+
302
+ - **`content tables`** - Extract tables from page
303
+
304
+ ```bash
305
+ uv run --project vds_cli vds-cli confluence content tables 99647801
306
+ ```
307
+
308
+ > Extracts all tables from the page content and returns structured table data.
309
+
310
+ - **`content regex`** - Extract regex matches from page
311
+
312
+ ```bash
313
+ # Extract email addresses
314
+ uv run --project vds_cli vds-cli confluence content regex 99647801 \
315
+ --pattern "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"
316
+
317
+ # Extract version numbers
318
+ uv run --project vds_cli vds-cli confluence content regex 99647801 \
319
+ --pattern "v\d+\.\d+\.\d+"
320
+ ```
321
+
322
+ > **Note**: Uses Python regex syntax. Returns all matches found in the page content.
323
+
324
+ - **`content restrictions`** - Get content restrictions
325
+
326
+ ```bash
327
+ uv run --project vds_cli vds-cli confluence content restrictions 99647801
328
+ ```
329
+
330
+ > Returns all viewing/editing restrictions configured for the content.
331
+
332
+ ### History & Versioning
333
+
334
+ - **`history get`** - Get page history
335
+
336
+ ```bash
337
+ uv run --project vds_cli vds-cli confluence history get --page-id 99647801
338
+ ```
339
+
340
+ > Returns the complete version history of a page, including all versions and their metadata.
341
+
342
+ - **`history version`** - Get specific version
343
+
344
+ ```bash
345
+ uv run --project vds_cli vds-cli confluence history version --page-id 99647801 --version 2
346
+ ```
347
+
348
+ > Returns the content of a specific version of a page.
349
+
350
+ - **`history remove`** - Remove history (experimental)
351
+
352
+ ```bash
353
+ uv run --project vds_cli vds-cli confluence history remove --page-id 99647801 --version 2 --yes
354
+ ```
355
+
356
+ > **Warning**: Experimental feature. Requires `--yes` flag for confirmation. Permanently removes a specific version
357
+ > from the page history.
358
+
359
+ ### Cache Management (Server-only)
360
+
361
+ - **`cache statistics`** - Get cache statistics
362
+
363
+ ```bash
364
+ uv run --project vds_cli vds-cli confluence cache statistics
365
+ uv run --project vds_cli vds-cli confluence cache statistics --server external
366
+ ```
367
+
368
+ > **Note**: Server/Data Center only. Returns cache hit/miss statistics and performance metrics.
369
+
370
+ - **`cache flush`** - Flush cache
371
+
372
+ ```bash
373
+ # Flush all caches
374
+ uv run --project vds_cli vds-cli confluence cache flush --yes
375
+
376
+ # Flush specific cache package
377
+ uv run --project vds_cli vds-cli confluence cache flush --cache-name "com.gliffy.cache.gon" --yes
378
+ ```
379
+
380
+ > **Warning**: Server/Data Center only. Requires `--yes` flag for confirmation. Flushes all caches or a specific cache
381
+ > package (e.g., `com.gliffy.cache.gon`).
382
+
383
+ - **`cache size`** - Get cache size information
384
+
385
+ ```bash
386
+ uv run --project vds_cli vds-cli confluence cache size
387
+ uv run --project vds_cli vds-cli confluence cache size --server external
388
+ ```
389
+
390
+ > **Note**: Server/Data Center only. Returns total cache size and cache count information.
391
+
392
+ ### Space Permissions & Management
393
+
394
+ - **`space-permissions`** - Manage space permissions (get, set, remove)
395
+ - **`space-management`** - Manage space lifecycle (archive, trash-list, trash-remove)
396
+
397
+ ## Recently Added
398
+
399
+ - ✅ Advanced Search Operations (advanced CQL search, search-by-space-type) - **NEW**
400
+ - ✅ Cache Management (Server-only: cache statistics/flush/size) - **NEW**
401
+ - ✅ History & Versioning (history get/version/remove) - **NEW**
402
+ - ✅ Advanced Content Operations (ancestors, move, tables, regex, restrictions) - **NEW**
403
+ - ✅ Draft Management (Server-only: draft get/list/remove) - **NEW**
404
+ - ✅ Export Operations (page PDF export, space export URLs) - **NEW**
405
+ - ✅ User & Group Management (group list/members, user get/password/group-add/group-remove) - **NEW**
406
+ - ✅ Space Permissions Management - **NEW**
407
+ - ✅ Space Management (archive, trash operations) - **NEW**
408
+
409
+ ## Pending Work (Phase 2+)
410
+
411
+ - Pagination helpers + structured analytics exports
412
+ - Final hand-off from bash modules once feature parity is reached
@@ -0,0 +1,127 @@
1
+ # Confluence Sync Scripts
2
+
3
+ This directory contains standalone sync scripts for synchronizing local files with Confluence attachments.
4
+
5
+ ## Standard Practice: Use VDS CLI
6
+
7
+ **✅ RECOMMENDED**: Use the unified VDS CLI to run sync commands:
8
+
9
+ ```bash
10
+ # Sync PDFs to Confluence
11
+ uv run --project vds_cli vds-cli confluence sync pdfs \
12
+ <page_id> \
13
+ --dir /path/to/pdf/directory \
14
+ --server external
15
+
16
+ # Sync PNGs to Confluence
17
+ uv run --project vds_cli vds-cli confluence sync pngs \
18
+ <page_id> \
19
+ --dir /path/to/png/directory \
20
+ --server external
21
+
22
+ # Regenerate PDFs from markdown (via PDF orchestrator)
23
+ uv run --project vds_cli vds-cli pdf -- md2pdf file.md -o file.pdf
24
+ ```
25
+
26
+ ## Standalone Script Execution
27
+
28
+ If you need to run scripts directly (e.g., for automation or debugging), use:
29
+
30
+ ```bash
31
+ cd /path/to/vds-scripts/confluence_orchestrator
32
+
33
+ # Sync PDFs
34
+ uv run --project confluence_orchestrator python sync_pdfs_to_confluence.py \
35
+ sync <page_id> --dir /path/to/pdfs --server external
36
+
37
+ # Sync PNGs
38
+ uv run --project confluence_orchestrator python sync_png_attachments.py \
39
+ sync <page_id> --dir /path/to/pngs --server external
40
+
41
+ # Regenerate PDFs from markdown
42
+ uv run --project confluence_orchestrator python sync_pdfs_from_markdown.py \
43
+ /path/to/target-state
44
+ ```
45
+
46
+ ## Scripts
47
+
48
+ ### `sync_pdfs_to_confluence.py`
49
+
50
+ Syncs local PDF files with Confluence page attachments.
51
+
52
+ **Commands**:
53
+ - `list <page_id>` - List PDF attachments on a page
54
+ - `sync <page_id> --dir <directory>` - Sync PDFs from directory to page
55
+
56
+ **Options**:
57
+ - `--server` - Confluence server (internal|external)
58
+ - `--pattern` - Filter PDF files by pattern
59
+ - `--dry-run` - Show what would be done without making changes
60
+ - `--comment` - Comment for attachment updates
61
+ - `--yes` - Auto-confirm without prompting
62
+
63
+ ### `sync_png_attachments.py`
64
+
65
+ Syncs local PNG files with Confluence page attachments.
66
+
67
+ **Commands**:
68
+ - `list <page_id>` - List PNG attachments on a page
69
+ - `sync <page_id> --dir <directory>` - Sync PNGs from directory to page
70
+
71
+ **Options**: Same as `sync_pdfs_to_confluence.py`
72
+
73
+ ### `sync_pdfs_from_markdown.py`
74
+
75
+ Regenerates PDF files from markdown sources using `vds-cli pdf md2pdf`.
76
+
77
+ **Usage**:
78
+ ```bash
79
+ uv run --project confluence_orchestrator python sync_pdfs_from_markdown.py \
80
+ /path/to/directory \
81
+ [--pattern "*.md"] \
82
+ [--dry-run]
83
+ ```
84
+
85
+ **Options**:
86
+ - `--pattern` - Filter markdown files by pattern (e.g., `"*-schema.md"`)
87
+ - `--dry-run` - Show what would be regenerated without actually regenerating
88
+
89
+ ## Environment Requirements
90
+
91
+ All scripts require:
92
+ - `confluence_orchestrator` package installed (via `uv sync`)
93
+ - Confluence credentials in the shared VDS env file:
94
+ - `INTERNAL_CONFLUENCE_TOKEN` or `EXTERNAL_CONFLUENCE_TOKEN`
95
+ - For PDF generation: `vds_cli` package with PDF orchestrator
96
+
97
+ ## Integration with VDS CLI
98
+
99
+ The sync commands are integrated into the unified VDS CLI:
100
+
101
+ ```bash
102
+ # List PDF attachments
103
+ uv run --project vds_cli vds-cli confluence content attachments \
104
+ --page <page_id> --server external
105
+
106
+ # Sync PDFs (via sync command)
107
+ uv run --project vds_cli vds-cli confluence sync pdfs \
108
+ <page_id> --dir /path/to/pdfs --server external
109
+ ```
110
+
111
+ ## Troubleshooting
112
+
113
+ **ModuleNotFoundError: No module named 'confluence_orchestrator'**:
114
+ - Ensure you're running from `vds-scripts/confluence_orchestrator` directory
115
+ - Or use `uv run --project confluence_orchestrator python <script>`
116
+ - Or use the unified CLI: `uv run --project vds_cli vds-cli confluence sync ...`
117
+
118
+ **PDF generation fails**:
119
+ - Ensure `vds_cli` package is installed: `uv sync --project vds_cli`
120
+ - Check that `vds-cli pdf md2pdf` works independently
121
+
122
+ **Confluence authentication fails**:
123
+ - Run `uv run --project vds_cli vds-cli env load` to load credentials
124
+ - Verify the shared VDS env file contains the required tokens
125
+
126
+ ns
127
+
@@ -0,0 +1,108 @@
1
+ # Sync Scripts Standardization
2
+
3
+ **Date**: 2025-12-15
4
+ **Status**: ✅ Complete
5
+
6
+ ## Summary
7
+
8
+ Standardized PDF and PNG sync scripts to follow VDS CLI best practices. Sync scripts are now integrated into the unified VDS CLI and located in the `confluence_orchestrator` directory for consistency.
9
+
10
+ ## Changes Made
11
+
12
+ ### 1. Script Relocation
13
+
14
+ - **Moved** `sync_pdfs_from_markdown.py` from `docs-nttc/projects/INSURANCE/analysis/target-state/architecture/scripts/` to `vds-scripts/confluence_orchestrator/`
15
+ - **Moved** `sync_pdfs_to_confluence.py` from `docs-nttc/projects/INSURANCE/analysis/target-state/architecture/scripts/` to `vds-scripts/confluence_orchestrator/`
16
+ - **Reason**: Consistency with existing `sync_png_attachments.py` location and VDS orchestrator structure
17
+
18
+ ### 2. CLI Integration
19
+
20
+ - **Added** `sync` subcommand group to `confluence_orchestrator.cli`
21
+ - **Added** `sync pdfs` command that delegates to `sync_pdfs_to_confluence.py`
22
+ - **Added** `sync pngs` command that delegates to `sync_png_attachments.py`
23
+ - **Accessible via**: `uv run --project vds_cli vds-cli confluence sync pdfs/pngs`
24
+
25
+ ### 3. Path Fixes
26
+
27
+ - **Fixed** hardcoded absolute path in `sync_pdfs_from_markdown.py` to use relative path based on script location
28
+ - **Updated** `VDS_SCRIPTS` path calculation to be relative: `Path(__file__).resolve().parent.parent`
29
+
30
+ ### 4. Documentation Updates
31
+
32
+ - **Created** `SYNC_SCRIPTS.md` in `confluence_orchestrator/` with complete usage guide
33
+ - **Updated** `confluence_orchestrator/README.md` with sync command examples
34
+ - **Updated** `architecture/scripts/README.md` to note script relocation and point to new location
35
+ - **Updated** `PDF_SYNC_WORKFLOW.md` to reflect standard practice (VDS CLI usage)
36
+
37
+ ## Standard Practice
38
+
39
+ ### ✅ Recommended: Use VDS CLI
40
+
41
+ ```bash
42
+ # Sync PDFs to Confluence
43
+ uv run --project vds_cli vds-cli confluence sync pdfs \
44
+ <page_id> \
45
+ --dir /path/to/pdf/directory \
46
+ --server external
47
+
48
+ # Sync PNGs to Confluence
49
+ uv run --project vds_cli vds-cli confluence sync pngs \
50
+ <page_id> \
51
+ --dir /path/to/png/directory \
52
+ --server external
53
+ ```
54
+
55
+ ### Alternative: Direct Script Execution
56
+
57
+ ```bash
58
+ cd vds-scripts/confluence_orchestrator
59
+
60
+ # Sync PDFs
61
+ uv run --project confluence_orchestrator python sync_pdfs_to_confluence.py \
62
+ sync <page_id> --dir <directory> --server external
63
+
64
+ # Sync PNGs
65
+ uv run --project confluence_orchestrator python sync_png_attachments.py \
66
+ sync <page_id> --dir <directory> --server external
67
+
68
+ # Regenerate PDFs from markdown
69
+ uv run --project confluence_orchestrator python sync_pdfs_from_markdown.py \
70
+ /path/to/target-state --dry-run
71
+ ```
72
+
73
+ ## Testing
74
+
75
+ ✅ **Validated**:
76
+ - `sync_pdfs_from_markdown.py` runs successfully from `confluence_orchestrator/` directory
77
+ - Script correctly finds markdown files and generates sync plan
78
+ - Path resolution works correctly with relative paths
79
+
80
+ ⚠️ **Note**: Full end-to-end testing requires:
81
+ - Confluence credentials in the shared VDS env file
82
+ - Access to Confluence server
83
+ - PDF generation via `vds-cli pdf md2pdf`
84
+
85
+ ## Files Modified
86
+
87
+ 1. `vds-scripts/confluence_orchestrator/src/confluence_orchestrator/cli.py` - Added sync commands
88
+ 2. `vds-scripts/confluence_orchestrator/sync_pdfs_from_markdown.py` - Fixed path resolution
89
+ 3. `vds-scripts/confluence_orchestrator/sync_pdfs_to_confluence.py` - Copied from original location
90
+ 4. `vds-scripts/confluence_orchestrator/SYNC_SCRIPTS.md` - New documentation
91
+ 5. `vds-scripts/confluence_orchestrator/README.md` - Updated with sync examples
92
+ 6. `docs-nttc/projects/INSURANCE/analysis/target-state/architecture/scripts/README.md` - Updated to note relocation
93
+
94
+ ## Benefits
95
+
96
+ 1. **Consistency**: All sync scripts in one location (`confluence_orchestrator/`)
97
+ 2. **Unified CLI**: Access via `vds-cli confluence sync` commands
98
+ 3. **Standard Practice**: Follows VDS orchestrator patterns
99
+ 4. **Maintainability**: Single source of truth for sync functionality
100
+ 5. **Documentation**: Complete usage guide in `SYNC_SCRIPTS.md`
101
+
102
+ ## Next Steps
103
+
104
+ - [ ] Test full end-to-end sync workflow (markdown → PDF → Confluence)
105
+ - [ ] Add sync commands to main VDS CLI help documentation
106
+ - [ ] Consider adding sync commands to other orchestrators if needed
107
+ - [ ] Monitor usage and gather feedback for improvements
108
+