@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.
- package/package.json +2 -2
- package/src/global.js +70 -10
- package/tools/skills/vds-scripts-skill/.openskills.json +6 -0
- package/tools/skills/vds-scripts-skill/QUALITY.md +44 -0
- package/tools/skills/vds-scripts-skill/SKILL.md +135 -0
- package/tools/skills/vds-scripts-skill/references/audit-commands.md +171 -0
- package/tools/skills/vds-scripts-skill/references/capability-index.md +34 -0
- package/tools/skills/vds-scripts-skill/references/development-commands.md +12 -0
- package/tools/skills/vds-scripts-skill/references/google-sheets.md +73 -0
- package/tools/skills/vds-scripts-skill/references/integration-commands.md +17 -0
- package/tools/skills/vds-scripts-skill/references/platform-bootstrap.md +31 -0
- package/tools/skills/vds-scripts-skill/references/specialist-routing.md +14 -0
- package/tools/skills/vds-scripts-skill/references/validation-commands.md +15 -0
- package/tools/skills/vsaf-build/SKILL.md +32 -2
- package/tools/skills/vsaf-push-prd/SKILL.md +43 -40
- package/tools/skills/vsaf-push-srs/SKILL.md +44 -41
- package/tools/skills/vsaf-ship/SKILL.md +41 -10
- package/tools/skills/vsaf-test/SKILL.md +8 -0
- package/tools/vds-scripts/.mcp.json +11 -0
- package/tools/vds-scripts/.secrets.baseline +133 -0
- package/tools/vds-scripts/AGENTS.md +152 -0
- package/tools/vds-scripts/CLAUDE.md +101 -0
- package/tools/vds-scripts/CLI_COMMAND_OPTIMIZATION.md +156 -0
- package/tools/vds-scripts/PACKAGE_P125B_IMPLEMENTATION_SUMMARY.md +131 -0
- package/tools/vds-scripts/PROJECT_COMPLETION_SUMMARY.md +45 -0
- package/tools/vds-scripts/README.md +97 -0
- package/tools/vds-scripts/bitbucket_manifest_mapping.toml +34 -0
- package/tools/vds-scripts/bitbucket_orchestrator/ARCHITECTURE_ANALYSIS.md +258 -0
- package/tools/vds-scripts/bitbucket_orchestrator/BITBUCKET_API_PRACTICES.md +393 -0
- package/tools/vds-scripts/bitbucket_orchestrator/EVALUATION_REPORT.md +61 -0
- package/tools/vds-scripts/bitbucket_orchestrator/FEATURES.md +908 -0
- package/tools/vds-scripts/bitbucket_orchestrator/README.md +687 -0
- package/tools/vds-scripts/bitbucket_orchestrator/pyproject.toml +40 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/__init__.py +20 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/async_client.py +657 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/cli.py +2108 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/client.py +2534 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/config.py +171 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/errors.py +67 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/factory.py +185 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/protocols.py +244 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/__init__.py +8 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/conftest.py +65 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_advanced_search.py +151 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_async_client.py +546 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_branch_permissions.py +145 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_cli.py +115 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client.py +157 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_branch_conditions.py +79 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_code_advanced.py +163 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_code_file.py +32 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_deployment_environments.py +194 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_issues.py +164 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_pipelines_advanced.py +179 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_pr_blockers.py +119 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_repository_variables.py +156 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code.py +98 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code_advanced.py +282 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code_insights.py +335 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_conditions.py +147 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_config.py +131 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_deployment_env.py +352 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_factory.py +371 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_fork_operations.py +204 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_issue_cli.py +261 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_pipeline_advanced.py +270 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_pr_blocker.py +204 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_protocols.py +334 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_repo_settings.py +343 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_repo_variables.py +270 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_webhooks.py +189 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_workspace.py +233 -0
- package/tools/vds-scripts/bitbucket_orchestrator/uv.lock +742 -0
- package/tools/vds-scripts/confluence_orchestrator/Dockerfile +19 -0
- package/tools/vds-scripts/confluence_orchestrator/README.md +412 -0
- package/tools/vds-scripts/confluence_orchestrator/SYNC_SCRIPTS.md +127 -0
- package/tools/vds-scripts/confluence_orchestrator/SYNC_STANDARDIZATION.md +108 -0
- package/tools/vds-scripts/confluence_orchestrator/pyproject.toml +48 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/__init__.py +20 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/cli.py +2532 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/config.py +175 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/content.py +290 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/content_v2.py +94 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/crawl_tree.py +1835 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/errors.py +80 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/eventing.py +109 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/http.py +1114 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/orchestration.py +165 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/reporting.py +78 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/tree.py +121 -0
- package/tools/vds-scripts/confluence_orchestrator/sync_pdfs_from_markdown.py +213 -0
- package/tools/vds-scripts/confluence_orchestrator/sync_pdfs_to_confluence.py +305 -0
- package/tools/vds-scripts/confluence_orchestrator/sync_png_attachments.py +305 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/__init__.py +0 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/conftest.py +8 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_advanced_content.py +224 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_advanced_search.py +188 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_cache_management.py +247 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_cli.py +499 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_config.py +83 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_content.py +186 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_content_flags.py +27 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_crawl_tree.py +2250 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_draft_management.py +223 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing.py +71 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_chaos.py +37 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_rate_limit.py +44 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_timeout.py +49 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_export.py +230 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_history.py +204 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_http.py +117 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_orchestration.py +91 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_reporting.py +24 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_search_cql.py +34 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_space_management.py +237 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_space_permissions.py +332 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_user_group_management.py +388 -0
- package/tools/vds-scripts/confluence_orchestrator/uv.lock +1023 -0
- package/tools/vds-scripts/git_orchestrator/ENHANCEMENT_SUMMARY.md +119 -0
- package/tools/vds-scripts/git_orchestrator/README.md +280 -0
- package/tools/vds-scripts/git_orchestrator/VERIFICATION_REPORT.md +152 -0
- package/tools/vds-scripts/git_orchestrator/pyproject.toml +35 -0
- package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/__init__.py +7 -0
- package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/__main__.py +4 -0
- package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/cli.py +847 -0
- package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/logging_config.py +63 -0
- package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/manifest.py +129 -0
- package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/orchestrator.py +819 -0
- package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/reporting.py +53 -0
- package/tools/vds-scripts/git_orchestrator/tests/__init__.py +0 -0
- package/tools/vds-scripts/git_orchestrator/tests/test_cli_settings.py +21 -0
- package/tools/vds-scripts/git_orchestrator/tests/test_integration.py +74 -0
- package/tools/vds-scripts/git_orchestrator/tests/test_manifest.py +79 -0
- package/tools/vds-scripts/git_orchestrator/tests/test_orchestrator.py +204 -0
- package/tools/vds-scripts/git_orchestrator/tests/test_public_api.py +236 -0
- package/tools/vds-scripts/git_orchestrator/tests/test_resilience.py +345 -0
- package/tools/vds-scripts/git_orchestrator/uv.lock +271 -0
- package/tools/vds-scripts/jira_orchestrator/README.md +770 -0
- package/tools/vds-scripts/jira_orchestrator/pyproject.toml +39 -0
- package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/__init__.py +1 -0
- package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/adapter.py +1320 -0
- package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/cli.py +2271 -0
- package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/config.py +138 -0
- package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/errors.py +67 -0
- package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/reporting.py +65 -0
- package/tools/vds-scripts/jira_orchestrator/tests/__init__.py +1 -0
- package/tools/vds-scripts/jira_orchestrator/tests/conftest.py +86 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_agile_list_payloads.py +54 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_bulk_operations.py +69 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_components.py +57 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_createmeta.py +45 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_dashboard.py +117 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_issue_properties.py +54 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_permissions_compat.py +42 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_reindex.py +42 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_remote_links.py +76 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_transitions.py +91 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_user_management.py +110 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_version_management.py +133 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_watchers.py +41 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_advanced_search.py +164 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_agile.py +256 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_application_properties.py +193 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_backlog.py +91 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_bulk_operations.py +277 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_cli.py +106 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_components.py +106 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_config.py +164 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_dashboard.py +122 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_discover_fields.py +207 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_filter_management.py +333 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_issue_archiving.py +164 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_issue_links.py +257 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_issue_properties.py +171 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_link_types.py +314 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_parse_set.py +37 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_permissions.py +273 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_reindex.py +81 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_remote_links.py +254 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_security_schemes.py +170 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_transitions_changelog.py +114 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_user_management.py +226 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_version_management.py +339 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_watchers.py +101 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_worklog.py +223 -0
- package/tools/vds-scripts/jira_orchestrator/uv.lock +738 -0
- package/tools/vds-scripts/mcp_server/Dockerfile +34 -0
- package/tools/vds-scripts/mcp_server/README.md +140 -0
- package/tools/vds-scripts/mcp_server/pyproject.toml +42 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/__init__.py +4 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/config.py +36 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/server.py +66 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/__init__.py +14 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/bitbucket_tools.py +47 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/confluence_tools.py +59 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/git_tools.py +71 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/jira_tools.py +63 -0
- package/tools/vds-scripts/mcp_server/tests/__init__.py +2 -0
- package/tools/vds-scripts/mcp_server/tests/conftest.py +29 -0
- package/tools/vds-scripts/mcp_server/tests/unit/__init__.py +2 -0
- package/tools/vds-scripts/mcp_server/tests/unit/test_bitbucket_tools.py +25 -0
- package/tools/vds-scripts/mcp_server/tests/unit/test_confluence_tools.py +25 -0
- package/tools/vds-scripts/mcp_server/tests/unit/test_git_tools.py +32 -0
- package/tools/vds-scripts/mcp_server/tests/unit/test_jira_tools.py +32 -0
- package/tools/vds-scripts/mcp_server/tests/verification/__init__.py +2 -0
- package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_confluence_tools.py +40 -0
- package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_jira_tools.py +37 -0
- package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_tool_registration.py +47 -0
- package/tools/vds-scripts/mcp_server/uv.lock +1032 -0
- package/tools/vds-scripts/mypy.ini +5 -0
- package/tools/vds-scripts/pyproject.toml +29 -0
- package/tools/vds-scripts/repo-manifest.yaml +273 -0
- package/tools/vds-scripts/repo-manifest.yaml.example +25 -0
- package/tools/vds-scripts/scripts/BRD-Validation-API.postman_collection.json +706 -0
- package/tools/vds-scripts/scripts/BRD-Validation-README.md +308 -0
- package/tools/vds-scripts/scripts/README.md +162 -0
- package/tools/vds-scripts/scripts/bootstrap_uv.sh +30 -0
- package/tools/vds-scripts/scripts/brd-validation-environment.json +51 -0
- package/tools/vds-scripts/scripts/brd-validation-test-results.json +13023 -0
- package/tools/vds-scripts/scripts/brd_coverage_report.json +276 -0
- package/tools/vds-scripts/scripts/create_memory_session.py +35 -0
- package/tools/vds-scripts/scripts/deployment/load_docker_images_offline.sh +90 -0
- package/tools/vds-scripts/scripts/final_completion_report.md +139 -0
- package/tools/vds-scripts/scripts/folder_structure_report.json +321 -0
- package/tools/vds-scripts/scripts/generate_completion_report.py +125 -0
- package/tools/vds-scripts/scripts/generate_intellij_modules.py +150 -0
- package/tools/vds-scripts/scripts/link_integrity_report.json +807 -0
- package/tools/vds-scripts/scripts/move_audit_artifact_pages.py +255 -0
- package/tools/vds-scripts/scripts/move_audit_artifact_pages_rest.py +165 -0
- package/tools/vds-scripts/scripts/move_wrong_dept_pages.py +216 -0
- package/tools/vds-scripts/scripts/save_intellij_memories.py +120 -0
- package/tools/vds-scripts/scripts/save_memories_to_vds_ai.py +83 -0
- package/tools/vds-scripts/scripts/save_memories_vds_style.py +129 -0
- package/tools/vds-scripts/scripts/search_intellij_memories.py +50 -0
- package/tools/vds-scripts/scripts/setup_intellij_workspace.py +65 -0
- package/tools/vds-scripts/scripts/target-state-automation/README.md +89 -0
- package/tools/vds-scripts/scripts/target-state-automation/confluence_sync_coordinator.sh +27 -0
- package/tools/vds-scripts/scripts/target-state-automation/coordination.sh +114 -0
- package/tools/vds-scripts/scripts/target-state-automation/diagram_coordinator.sh +25 -0
- package/tools/vds-scripts/scripts/target-state-automation/docs_root.sh +22 -0
- package/tools/vds-scripts/scripts/target-state-automation/generate_diagrams.sh +22 -0
- package/tools/vds-scripts/scripts/target-state-automation/markdown_coordinator.sh +25 -0
- package/tools/vds-scripts/scripts/target-state-automation/progress_dashboard.sh +17 -0
- package/tools/vds-scripts/scripts/target-state-automation/schema_coordinator.sh +25 -0
- package/tools/vds-scripts/scripts/target-state-automation/sync_confluence.sh +30 -0
- package/tools/vds-scripts/scripts/target-state-automation/update_dependencies.sh +19 -0
- package/tools/vds-scripts/scripts/target-state-automation/validate_links.sh +86 -0
- package/tools/vds-scripts/scripts/target-state-automation/validate_markdown.sh +52 -0
- package/tools/vds-scripts/scripts/target-state-automation/validate_schemas.sh +26 -0
- package/tools/vds-scripts/scripts/target-state-automation/validate_structure.sh +98 -0
- package/tools/vds-scripts/scripts/update_modules_xml.py +190 -0
- package/tools/vds-scripts/scripts/uv-workspace-alignment-verification-2026-03-25.md +128 -0
- package/tools/vds-scripts/scripts/validate_brd_coverage.py +179 -0
- package/tools/vds-scripts/scripts/validate_folder_structure.py +240 -0
- package/tools/vds-scripts/scripts/validate_link_integrity.py +272 -0
- package/tools/vds-scripts/scripts/vds_sh_helpers.sh +180 -0
- package/tools/vds-scripts/scripts/verification/phase2_portable_paths_ubuntu_docker.sh +26 -0
- package/tools/vds-scripts/scripts/worktree_uv.sh +48 -0
- package/tools/vds-scripts/uv.lock +8 -0
- package/tools/vds-scripts/vds_cli/README.md +126 -0
- package/tools/vds-scripts/vds_cli/VERIFICATION_REPORT.md +41 -0
- package/tools/vds-scripts/vds_cli/pyproject.toml +38 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/__init__.py +3 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/cli.py +173 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/docs_sync.py +1203 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/env.py +41 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/google_sheets_orchestrator/__init__.py +3 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/google_sheets_orchestrator/google_sheets_orchestrator.py +198 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/router.py +93 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/sync_api.py +647 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/sync_service.py +266 -0
- package/tools/vds-scripts/vds_cli/tests/__init__.py +2 -0
- package/tools/vds-scripts/vds_cli/tests/conftest.py +49 -0
- package/tools/vds-scripts/vds_cli/tests/unit/__init__.py +2 -0
- package/tools/vds-scripts/vds_cli/tests/unit/test_cli.py +143 -0
- package/tools/vds-scripts/vds_cli/tests/unit/test_docs_sync.py +422 -0
- package/tools/vds-scripts/vds_cli/tests/unit/test_env.py +51 -0
- package/tools/vds-scripts/vds_cli/tests/unit/test_router.py +72 -0
- package/tools/vds-scripts/vds_cli/tests/unit/test_sync_api.py +357 -0
- package/tools/vds-scripts/vds_cli/tests/unit/test_sync_service.py +160 -0
- package/tools/vds-scripts/vds_cli/tests/verification/__init__.py +2 -0
- package/tools/vds-scripts/vds_cli/tests/verification/test_bitbucket_real.py +33 -0
- package/tools/vds-scripts/vds_cli/tests/verification/test_confluence_real.py +35 -0
- package/tools/vds-scripts/vds_cli/tests/verification/test_jira_real.py +41 -0
- package/tools/vds-scripts/vds_cli/uv.lock +524 -0
- package/tools/vds-scripts/vds_cli_common/README.md +190 -0
- package/tools/vds-scripts/vds_cli_common/pyproject.toml +92 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/__init__.py +34 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/completers.py +139 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/context.py +201 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/env.py +119 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/errors.py +318 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/output.py +284 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/paths.py +78 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/testing.py +213 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/version.py +85 -0
- package/tools/vds-scripts/vds_cli_common/tests/__init__.py +1 -0
- package/tools/vds-scripts/vds_cli_common/tests/test_completers.py +148 -0
- package/tools/vds-scripts/vds_cli_common/tests/test_context.py +192 -0
- package/tools/vds-scripts/vds_cli_common/tests/test_env.py +102 -0
- package/tools/vds-scripts/vds_cli_common/tests/test_errors.py +186 -0
- package/tools/vds-scripts/vds_cli_common/tests/test_output.py +229 -0
- package/tools/vds-scripts/vds_cli_common/tests/test_paths.py +61 -0
- package/tools/vds-scripts/vds_cli_common/tests/test_testing.py +138 -0
- 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
|
+
|