ic-code 1.2.4__tar.gz → 1.2.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ic_code-1.2.4/src/ic_code.egg-info → ic_code-1.2.5}/PKG-INFO +1 -1
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/README.md +12 -0
- ic_code-1.2.5/docs/cloudflare_configuration_example.md +500 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/general/configuration.md +1 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/pyproject.toml +1 -1
- {ic_code-1.2.4 → ic_code-1.2.5}/scripts/ci-detect-platforms.py +2 -2
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/__init__.py +1 -1
- ic_code-1.2.5/src/ic/platforms/cloudflare/README.md +564 -0
- ic_code-1.2.5/src/ic/platforms/cloudflare/account/__init__.py +1 -0
- ic_code-1.2.5/src/ic/platforms/cloudflare/account/info.py +222 -0
- ic_code-1.2.5/src/ic/platforms/cloudflare/client.py +786 -0
- ic_code-1.2.5/src/ic/platforms/cloudflare/dns/info.py +287 -0
- ic_code-1.2.5/src/ic/platforms/cloudflare/dns/list_info.py +88 -0
- ic_code-1.2.5/src/ic/platforms/cloudflare/rules/__init__.py +5 -0
- ic_code-1.2.5/src/ic/platforms/cloudflare/rules/info.py +425 -0
- ic_code-1.2.5/src/ic/platforms/cloudflare/traffic/__init__.py +5 -0
- ic_code-1.2.5/src/ic/platforms/cloudflare/traffic/info.py +433 -0
- ic_code-1.2.5/src/ic/platforms/cloudflare/waf/__init__.py +5 -0
- ic_code-1.2.5/src/ic/platforms/cloudflare/waf/info.py +361 -0
- ic_code-1.2.5/src/ic/platforms/cloudflare/zone/__init__.py +10 -0
- ic_code-1.2.5/src/ic/platforms/cloudflare/zone/info.py +323 -0
- {ic_code-1.2.4 → ic_code-1.2.5/src/ic_code.egg-info}/PKG-INFO +1 -1
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic_code.egg-info/SOURCES.txt +13 -0
- ic_code-1.2.4/src/ic/platforms/cloudflare/README.md +0 -120
- ic_code-1.2.4/src/ic/platforms/cloudflare/dns/list_info.py +0 -293
- {ic_code-1.2.4 → ic_code-1.2.5}/LICENSE +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/MANIFEST.in +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/README.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/SECURITY.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/_templates/configuration.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/_templates/installation.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/_templates/troubleshooting.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/_templates/usage.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/aws/README.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/aws/aws_cli_prd.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/aws/installation.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/azure/README.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/ci-workflow-guide.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/config_migration.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/deployment.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/development/README.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/development/cleanup_summary.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/development/development_guide.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/development/import_patterns.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/development/migration_guide.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/gcp/GCP_CONFIGURATION_GUIDE.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/gcp/GCP_SECURITY_BEST_PRACTICES.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/gcp/README.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/installation.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/mcp_integration.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/migration.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/migration_guide.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/ncp/README.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/ncp/configuration.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/ncp/installation.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/ncp/troubleshooting.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/ncp/usage.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/ncpgov/README.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/ncpgov/installation.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/oci/README.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/oci/installation.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/release-guide.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/security.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/ssh/configuration.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/troubleshooting.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/docs/user_guide.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/requirements.txt +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/scripts/analysis_summary.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/scripts/bump-version.sh +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/scripts/cf_edge_nsg_make/cf_edge_nsg_make.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/scripts/ci-generate-matrix.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/scripts/cli_usage_analysis.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/scripts/dependency_mapper.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/scripts/deploy.sh +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/scripts/final_validation_and_documentation.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/scripts/fix_consolidated_imports.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/scripts/migration_execution_and_validation.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/scripts/ncp_security_scanner.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/scripts/oracle-policy/user_policy.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/scripts/performance_optimization.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/scripts/setup_venv.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/scripts/test-ci-detection.sh +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/scripts/unset_env.sh +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/scripts/validate_config.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/scripts/validate_dependencies.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/scripts/validate_ncp_security.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/setup.cfg +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/setup.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/common/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/common/azure_utils.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/common/gather_env.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/common/gcp_config_validator.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/common/gcp_monitoring.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/common/gcp_utils.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/common/log.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/common/ncp_security_utils.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/common/ncp_utils.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/common/ncpgov_utils.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/common/progress_decorator.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/common/slack.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/common/utils.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/cli.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/cli_backup.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/commands/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/commands/config.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/commands/migration.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/commands/security.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/compat/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/compat/cli.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/compat/common.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/config/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/config/cleanup.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/config/docs_organizer.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/config/external.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/config/installer.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/config/manager.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/config/migration.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/config/migration_utils.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/config/path_manager.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/config/schema.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/config/secrets.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/config/security.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/core/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/core/dependency_validator.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/core/logging.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/core/mcp_manager.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/core/platform_discovery.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/core/session.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/core/silence_logging.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/migration/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/migration/manager.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/migration/post_validation.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/migration/rollback.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/migration/validation.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/cloudfront/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/cloudfront/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/codepipeline/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/codepipeline/build.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/codepipeline/deploy.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/ec2/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/ec2/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/ec2/list_tags.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/ec2/tag_check.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/ecs/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/ecs/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/ecs/service.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/ecs/task.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/eks/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/eks/addons.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/eks/fargate.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/eks/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/eks/nodes.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/eks/pods.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/eks/update_config.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/fargate/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/fargate/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/lb/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/lb/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/lb/list_tags.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/lb/tag_check.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/msk/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/msk/broker.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/msk/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/nat/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/nat/list_tags.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/nat/tag_check.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/profile/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/profile/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/rds/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/rds/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/rds/list_tags.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/rds/tag_check.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/s3/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/s3/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/s3/list_tags.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/s3/tag_check.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/sg/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/sg/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/vpc/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/vpc/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/vpc/list_tags.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/vpc/tag_check.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/vpn/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/aws/vpn/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/azure/README.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/azure/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/azure/aci/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/azure/aci/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/azure/aks/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/azure/aks/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/azure/lb/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/azure/lb/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/azure/nsg/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/azure/nsg/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/azure/storage/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/azure/storage/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/azure/vm/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/azure/vm/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/azure/vm/mock_data.json +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/azure/vnet/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/azure/vnet/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/azure/vnet/mock_data.json +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/cloudflare/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/cloudflare/dns/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/README.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/billing/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/billing/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/billing/mock_data.json +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/compute/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/compute/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/compute/mock_data.json +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/firewall/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/firewall/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/functions/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/functions/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/gke/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/gke/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/gke/mock_data.json +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/lb/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/lb/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/run/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/run/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/sql/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/sql/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/storage/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/storage/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/vpc/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/vpc/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/gcp/vpc/mock_data.json +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncp/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncp/client.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncp/ec2/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncp/ec2/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncp/rds/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncp/rds/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncp/s3/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncp/s3/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncp/sg/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncp/sg/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncp/vpc/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncp/vpc/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncpgov/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncpgov/client.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncpgov/ec2/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncpgov/ec2/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncpgov/rds/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncpgov/rds/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncpgov/s3/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncpgov/s3/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncpgov/sg/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncpgov/sg/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncpgov/vpc/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ncpgov/vpc/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/README.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/common/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/common/utils.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/compartment/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/compartment/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/cost/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/cost/credit.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/cost/usage.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/info/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/info/oci_info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/lb/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/lb/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/nsg/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/nsg/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/obj/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/obj/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/policy/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/policy/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/policy/search.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/vcn/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/vcn/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/vm/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/vm/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/volume/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/oci/volume/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ssh/README.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ssh/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ssh/auto/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ssh/auto/scan.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ssh/auto_ssh.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ssh/server/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ssh/server/info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/platforms/ssh/server_info.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/security/README.md +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/security/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/security/config.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/security/detector.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/security/guidance.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/security/hooks.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/security/patterns.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic/security/scanner.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic_code.egg-info/dependency_links.txt +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic_code.egg-info/entry_points.txt +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic_code.egg-info/requires.txt +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/ic_code.egg-info/top_level.txt +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/mcp/__init__.py +0 -0
- {ic_code-1.2.4 → ic_code-1.2.5}/src/mcp/gcp_connector.py +0 -0
|
@@ -47,6 +47,10 @@ This directory contains comprehensive documentation for the IC (Infrastructure R
|
|
|
47
47
|
- [OCI Usage](oci/usage.md) - How to use OCI commands
|
|
48
48
|
- [OCI Troubleshooting](oci/troubleshooting.md) - OCI-specific troubleshooting
|
|
49
49
|
|
|
50
|
+
### CloudFlare
|
|
51
|
+
- [CloudFlare Platform README](../src/ic/platforms/cloudflare/README.md) - Complete CloudFlare integration guide
|
|
52
|
+
- [CloudFlare Configuration Examples](cloudflare_configuration_example.md) - Detailed configuration examples and use cases
|
|
53
|
+
|
|
50
54
|
## Advanced Topics
|
|
51
55
|
|
|
52
56
|
- [MCP Integration](mcp_integration.md) - Model Context Protocol integration
|
|
@@ -81,6 +85,14 @@ ic aws s3 info
|
|
|
81
85
|
ic azure vm info
|
|
82
86
|
ic azure storage info
|
|
83
87
|
|
|
88
|
+
# CloudFlare
|
|
89
|
+
ic cf account info
|
|
90
|
+
ic cf zone info
|
|
91
|
+
ic cf dns info
|
|
92
|
+
ic cf traffic info
|
|
93
|
+
ic cf waf info
|
|
94
|
+
ic cf rules info
|
|
95
|
+
|
|
84
96
|
# GCP
|
|
85
97
|
ic gcp compute info
|
|
86
98
|
ic gcp storage info
|
|
@@ -0,0 +1,500 @@
|
|
|
1
|
+
# CloudFlare Configuration Example for IC CLI
|
|
2
|
+
|
|
3
|
+
This document provides comprehensive examples for configuring CloudFlare credentials and filters in the IC CLI tool's `secrets.yaml` file.
|
|
4
|
+
|
|
5
|
+
## Configuration File Location
|
|
6
|
+
|
|
7
|
+
CloudFlare configuration should be added to your secrets file:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
~/.ic/config/secrets.yaml
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
**Important:** Never commit this file to version control. It contains sensitive credentials.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Basic Configuration
|
|
18
|
+
|
|
19
|
+
### Minimal Configuration
|
|
20
|
+
|
|
21
|
+
The minimum required configuration includes your CloudFlare email and API token:
|
|
22
|
+
|
|
23
|
+
```yaml
|
|
24
|
+
cloudflare:
|
|
25
|
+
email: "your-email@example.com"
|
|
26
|
+
api_token: "your_cloudflare_api_token_here"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
This configuration will:
|
|
30
|
+
- Allow access to all accounts associated with your email
|
|
31
|
+
- Display all zones across all accounts
|
|
32
|
+
- Enable all CloudFlare commands (`account`, `zone`, `dns`, `traffic`, `waf`, `rules`)
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Configuration with Filters
|
|
37
|
+
|
|
38
|
+
### Account Filtering
|
|
39
|
+
|
|
40
|
+
Filter which CloudFlare accounts are displayed in commands. This is useful when you have access to multiple accounts but only want to manage specific ones.
|
|
41
|
+
|
|
42
|
+
#### List Format (Recommended)
|
|
43
|
+
|
|
44
|
+
```yaml
|
|
45
|
+
cloudflare:
|
|
46
|
+
email: "your-email@example.com"
|
|
47
|
+
api_token: "your_cloudflare_api_token_here"
|
|
48
|
+
|
|
49
|
+
# Show only these accounts (case-insensitive substring matching)
|
|
50
|
+
cloudflare_accounts:
|
|
51
|
+
- "Production"
|
|
52
|
+
- "Development"
|
|
53
|
+
- "Staging"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
#### Comma-Separated Format
|
|
57
|
+
|
|
58
|
+
```yaml
|
|
59
|
+
cloudflare:
|
|
60
|
+
email: "your-email@example.com"
|
|
61
|
+
api_token: "your_cloudflare_api_token_here"
|
|
62
|
+
|
|
63
|
+
# Alternative: comma-separated string format
|
|
64
|
+
cloudflare_accounts: "Production,Development,Staging"
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Filter Behavior:**
|
|
68
|
+
- **Case-insensitive**: "production" matches "Production Account"
|
|
69
|
+
- **Substring matching**: "Prod" matches "Production Account"
|
|
70
|
+
- **Multiple matches**: All accounts containing any filter term are shown
|
|
71
|
+
- **Empty list**: Shows all accounts (same as commenting out the filter)
|
|
72
|
+
|
|
73
|
+
### Zone Filtering
|
|
74
|
+
|
|
75
|
+
Filter which zones are displayed in commands. Zones are filtered after account filtering is applied.
|
|
76
|
+
|
|
77
|
+
#### List Format (Recommended)
|
|
78
|
+
|
|
79
|
+
```yaml
|
|
80
|
+
cloudflare:
|
|
81
|
+
email: "your-email@example.com"
|
|
82
|
+
api_token: "your_cloudflare_api_token_here"
|
|
83
|
+
|
|
84
|
+
# Show only these zones (case-insensitive substring matching)
|
|
85
|
+
cloudflare_zones:
|
|
86
|
+
- "example.com"
|
|
87
|
+
- "api.example.com"
|
|
88
|
+
- "test.com"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
#### Comma-Separated Format
|
|
92
|
+
|
|
93
|
+
```yaml
|
|
94
|
+
cloudflare:
|
|
95
|
+
email: "your-email@example.com"
|
|
96
|
+
api_token: "your_cloudflare_api_token_here"
|
|
97
|
+
|
|
98
|
+
# Alternative: comma-separated string format
|
|
99
|
+
cloudflare_zones: "example.com,api.example.com,test.com"
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Filter Behavior:**
|
|
103
|
+
- **Case-insensitive**: "example.com" matches "Example.com"
|
|
104
|
+
- **Substring matching**: "example" matches "example.com", "api.example.com", "test.example.com"
|
|
105
|
+
- **Multiple matches**: All zones containing any filter term are shown
|
|
106
|
+
- **Empty list**: Shows all zones (same as commenting out the filter)
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Complete Configuration Examples
|
|
111
|
+
|
|
112
|
+
### Example 1: Production Environment
|
|
113
|
+
|
|
114
|
+
Configuration for managing production infrastructure only:
|
|
115
|
+
|
|
116
|
+
```yaml
|
|
117
|
+
cloudflare:
|
|
118
|
+
# CloudFlare API credentials
|
|
119
|
+
email: "devops@company.com"
|
|
120
|
+
api_token: "abc123def456ghi789jkl012mno345pqr678stu901vwx234yz"
|
|
121
|
+
|
|
122
|
+
# Only show production account
|
|
123
|
+
cloudflare_accounts:
|
|
124
|
+
- "Production"
|
|
125
|
+
|
|
126
|
+
# Only show production domains
|
|
127
|
+
cloudflare_zones:
|
|
128
|
+
- "company.com"
|
|
129
|
+
- "api.company.com"
|
|
130
|
+
- "cdn.company.com"
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
**Use Case:** DevOps team member who only manages production infrastructure.
|
|
134
|
+
|
|
135
|
+
### Example 2: Multi-Environment Management
|
|
136
|
+
|
|
137
|
+
Configuration for managing multiple environments:
|
|
138
|
+
|
|
139
|
+
```yaml
|
|
140
|
+
cloudflare:
|
|
141
|
+
# CloudFlare API credentials
|
|
142
|
+
email: "admin@company.com"
|
|
143
|
+
api_token: "abc123def456ghi789jkl012mno345pqr678stu901vwx234yz"
|
|
144
|
+
|
|
145
|
+
# Show production, staging, and development accounts
|
|
146
|
+
cloudflare_accounts:
|
|
147
|
+
- "Production"
|
|
148
|
+
- "Staging"
|
|
149
|
+
- "Development"
|
|
150
|
+
|
|
151
|
+
# Show all company domains across environments
|
|
152
|
+
cloudflare_zones:
|
|
153
|
+
- "company.com"
|
|
154
|
+
- "staging.company.com"
|
|
155
|
+
- "dev.company.com"
|
|
156
|
+
- "api.company.com"
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
**Use Case:** Platform administrator managing multiple environments.
|
|
160
|
+
|
|
161
|
+
### Example 3: No Filtering (Show All)
|
|
162
|
+
|
|
163
|
+
Configuration to see all accounts and zones:
|
|
164
|
+
|
|
165
|
+
```yaml
|
|
166
|
+
cloudflare:
|
|
167
|
+
# CloudFlare API credentials
|
|
168
|
+
email: "admin@company.com"
|
|
169
|
+
api_token: "abc123def456ghi789jkl012mno345pqr678stu901vwx234yz"
|
|
170
|
+
|
|
171
|
+
# No filters - show all accounts and zones
|
|
172
|
+
# Comment out or leave empty to show everything
|
|
173
|
+
# cloudflare_accounts:
|
|
174
|
+
# cloudflare_zones:
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
**Use Case:** CloudFlare administrator who needs visibility into all accounts and zones.
|
|
178
|
+
|
|
179
|
+
### Example 4: Specific Domains Only
|
|
180
|
+
|
|
181
|
+
Configuration for managing specific domains without account filtering:
|
|
182
|
+
|
|
183
|
+
```yaml
|
|
184
|
+
cloudflare:
|
|
185
|
+
# CloudFlare API credentials
|
|
186
|
+
email: "webmaster@company.com"
|
|
187
|
+
api_token: "abc123def456ghi789jkl012mno345pqr678stu901vwx234yz"
|
|
188
|
+
|
|
189
|
+
# Show all accounts (no account filter)
|
|
190
|
+
# cloudflare_accounts:
|
|
191
|
+
|
|
192
|
+
# Only show specific domains
|
|
193
|
+
cloudflare_zones:
|
|
194
|
+
- "blog.company.com"
|
|
195
|
+
- "docs.company.com"
|
|
196
|
+
- "support.company.com"
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**Use Case:** Content team member managing specific web properties.
|
|
200
|
+
|
|
201
|
+
### Example 5: Development and Testing
|
|
202
|
+
|
|
203
|
+
Configuration for development and testing environments:
|
|
204
|
+
|
|
205
|
+
```yaml
|
|
206
|
+
cloudflare:
|
|
207
|
+
# CloudFlare API credentials
|
|
208
|
+
email: "developer@company.com"
|
|
209
|
+
api_token: "abc123def456ghi789jkl012mno345pqr678stu901vwx234yz"
|
|
210
|
+
|
|
211
|
+
# Only show development and testing accounts
|
|
212
|
+
cloudflare_accounts:
|
|
213
|
+
- "Development"
|
|
214
|
+
- "Testing"
|
|
215
|
+
- "QA"
|
|
216
|
+
|
|
217
|
+
# Show all zones in these accounts
|
|
218
|
+
# cloudflare_zones:
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
**Use Case:** Developer working on non-production environments.
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Filter Behavior Details
|
|
226
|
+
|
|
227
|
+
### How Filters Work
|
|
228
|
+
|
|
229
|
+
1. **Account Filtering (First)**
|
|
230
|
+
- Filters are applied to account names
|
|
231
|
+
- Case-insensitive substring matching
|
|
232
|
+
- If no account filter is specified, all accounts are included
|
|
233
|
+
|
|
234
|
+
2. **Zone Filtering (Second)**
|
|
235
|
+
- Filters are applied to zone names within filtered accounts
|
|
236
|
+
- Case-insensitive substring matching
|
|
237
|
+
- If no zone filter is specified, all zones from filtered accounts are included
|
|
238
|
+
|
|
239
|
+
3. **CLI Override**
|
|
240
|
+
- Command-line arguments (`-a`, `-z`) override configuration filters
|
|
241
|
+
- Example: `ic cf zone info -a Production` overrides `cloudflare_accounts` config
|
|
242
|
+
|
|
243
|
+
### Filter Priority
|
|
244
|
+
|
|
245
|
+
```
|
|
246
|
+
CLI Arguments > Configuration File > Default (show all)
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### Matching Examples
|
|
250
|
+
|
|
251
|
+
**Account Filter: "Production"**
|
|
252
|
+
- ✅ Matches: "Production", "Production Account", "production-env"
|
|
253
|
+
- ❌ Does not match: "Staging", "Development"
|
|
254
|
+
|
|
255
|
+
**Zone Filter: "example"**
|
|
256
|
+
- ✅ Matches: "example.com", "api.example.com", "test.example.org"
|
|
257
|
+
- ❌ Does not match: "mysite.com", "test.com"
|
|
258
|
+
|
|
259
|
+
**Multiple Filters: ["example", "test"]**
|
|
260
|
+
- ✅ Matches: "example.com", "test.com", "api.example.com", "test.example.com"
|
|
261
|
+
- ❌ Does not match: "mysite.com", "production.com"
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## Getting Your API Token
|
|
266
|
+
|
|
267
|
+
### Step-by-Step Guide
|
|
268
|
+
|
|
269
|
+
1. **Log in to CloudFlare Dashboard**
|
|
270
|
+
- Go to: https://dash.cloudflare.com/
|
|
271
|
+
|
|
272
|
+
2. **Navigate to API Tokens**
|
|
273
|
+
- Click on your profile icon (top right)
|
|
274
|
+
- Select "My Profile"
|
|
275
|
+
- Click "API Tokens" tab
|
|
276
|
+
- Or go directly to: https://dash.cloudflare.com/profile/api-tokens
|
|
277
|
+
|
|
278
|
+
3. **Create API Token**
|
|
279
|
+
- Click "Create Token" button
|
|
280
|
+
- Choose "Read all resources" template (recommended)
|
|
281
|
+
- Or create custom token with specific permissions (see below)
|
|
282
|
+
|
|
283
|
+
4. **Configure Token Permissions (Custom Token)**
|
|
284
|
+
|
|
285
|
+
**Account Permissions:**
|
|
286
|
+
- Account Settings: Read
|
|
287
|
+
|
|
288
|
+
**Zone Permissions:**
|
|
289
|
+
- Zone: Read
|
|
290
|
+
- DNS: Read
|
|
291
|
+
- Analytics: Read
|
|
292
|
+
- Firewall Services: Read
|
|
293
|
+
- Page Rules: Read
|
|
294
|
+
|
|
295
|
+
5. **Set Token Restrictions (Optional but Recommended)**
|
|
296
|
+
- **IP Address Filtering**: Restrict to your IP addresses
|
|
297
|
+
- **TTL**: Set expiration date for security
|
|
298
|
+
- **Zone Resources**: Limit to specific zones if needed
|
|
299
|
+
|
|
300
|
+
6. **Generate and Copy Token**
|
|
301
|
+
- Click "Continue to summary"
|
|
302
|
+
- Review permissions
|
|
303
|
+
- Click "Create Token"
|
|
304
|
+
- **Important**: Copy the token immediately (it won't be shown again)
|
|
305
|
+
|
|
306
|
+
7. **Add to Configuration**
|
|
307
|
+
- Paste the token into your `~/.ic/config/secrets.yaml` file
|
|
308
|
+
- Ensure the file has restricted permissions: `chmod 600 ~/.ic/config/secrets.yaml`
|
|
309
|
+
|
|
310
|
+
### Recommended Token Permissions
|
|
311
|
+
|
|
312
|
+
For full IC CLI functionality, your API token should have:
|
|
313
|
+
|
|
314
|
+
```
|
|
315
|
+
Account Permissions:
|
|
316
|
+
- Account Settings: Read
|
|
317
|
+
|
|
318
|
+
Zone Permissions:
|
|
319
|
+
- Zone: Read
|
|
320
|
+
- DNS: Read
|
|
321
|
+
- Analytics: Read
|
|
322
|
+
- Firewall Services: Read
|
|
323
|
+
- Page Rules: Read
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
### Security Best Practices
|
|
327
|
+
|
|
328
|
+
1. **Use API Tokens, Not Global API Keys**
|
|
329
|
+
- API tokens have granular permissions
|
|
330
|
+
- Can be revoked individually
|
|
331
|
+
- Can be restricted by IP and TTL
|
|
332
|
+
|
|
333
|
+
2. **Principle of Least Privilege**
|
|
334
|
+
- Only grant "Read" permissions for IC CLI
|
|
335
|
+
- Don't grant "Edit" or "Delete" unless needed
|
|
336
|
+
|
|
337
|
+
3. **Token Rotation**
|
|
338
|
+
- Rotate tokens regularly (every 90 days recommended)
|
|
339
|
+
- Set TTL when creating tokens
|
|
340
|
+
|
|
341
|
+
4. **Secure Storage**
|
|
342
|
+
- Keep `secrets.yaml` out of version control
|
|
343
|
+
- Set file permissions: `chmod 600 ~/.ic/config/secrets.yaml`
|
|
344
|
+
- Never share tokens in chat, email, or documentation
|
|
345
|
+
|
|
346
|
+
5. **IP Restrictions**
|
|
347
|
+
- Restrict tokens to known IP addresses when possible
|
|
348
|
+
- Update restrictions when IP addresses change
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
## Testing Your Configuration
|
|
353
|
+
|
|
354
|
+
### Verify Configuration
|
|
355
|
+
|
|
356
|
+
After adding CloudFlare configuration, test it:
|
|
357
|
+
|
|
358
|
+
```bash
|
|
359
|
+
# Test account access
|
|
360
|
+
ic cf account info
|
|
361
|
+
|
|
362
|
+
# Test zone access
|
|
363
|
+
ic cf zone info
|
|
364
|
+
|
|
365
|
+
# Test with filters
|
|
366
|
+
ic cf zone info -a Production
|
|
367
|
+
ic cf zone info -z example.com
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
### Validate Configuration File
|
|
371
|
+
|
|
372
|
+
```bash
|
|
373
|
+
# Validate YAML syntax and structure
|
|
374
|
+
ic config validate
|
|
375
|
+
|
|
376
|
+
# Show merged configuration (credentials masked)
|
|
377
|
+
ic config show
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
### Troubleshooting
|
|
381
|
+
|
|
382
|
+
**Problem: Authentication Failed**
|
|
383
|
+
```
|
|
384
|
+
❌ CloudFlare authentication failed
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
**Solutions:**
|
|
388
|
+
1. Verify email and api_token in `secrets.yaml`
|
|
389
|
+
2. Check token permissions in CloudFlare dashboard
|
|
390
|
+
3. Ensure token is not expired
|
|
391
|
+
4. Verify email matches the account associated with the token
|
|
392
|
+
|
|
393
|
+
**Problem: No Data Returned**
|
|
394
|
+
```
|
|
395
|
+
Commands run but show no accounts/zones
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
**Solutions:**
|
|
399
|
+
1. Check if filters are too restrictive
|
|
400
|
+
2. Try without filters: comment out `cloudflare_accounts` and `cloudflare_zones`
|
|
401
|
+
3. Verify your CloudFlare account has zones
|
|
402
|
+
4. Check token permissions include read access
|
|
403
|
+
|
|
404
|
+
**Problem: Rate Limit Exceeded**
|
|
405
|
+
```
|
|
406
|
+
⚠️ CloudFlare API rate limit exceeded
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
**Solutions:**
|
|
410
|
+
1. Wait for the suggested retry time
|
|
411
|
+
2. Reduce the number of zones/accounts using filters
|
|
412
|
+
3. Consider upgrading CloudFlare plan for higher rate limits
|
|
413
|
+
|
|
414
|
+
---
|
|
415
|
+
|
|
416
|
+
## Complete Configuration Template
|
|
417
|
+
|
|
418
|
+
Copy this template to `~/.ic/config/secrets.yaml` and customize:
|
|
419
|
+
|
|
420
|
+
```yaml
|
|
421
|
+
# CloudFlare Configuration for IC CLI
|
|
422
|
+
# Location: ~/.ic/config/secrets.yaml
|
|
423
|
+
# IMPORTANT: Never commit this file to version control
|
|
424
|
+
|
|
425
|
+
cloudflare:
|
|
426
|
+
# Required: Your CloudFlare account email
|
|
427
|
+
email: "your-email@example.com"
|
|
428
|
+
|
|
429
|
+
# Required: Your CloudFlare API token
|
|
430
|
+
# Get token from: https://dash.cloudflare.com/profile/api-tokens
|
|
431
|
+
api_token: "your_cloudflare_api_token_here"
|
|
432
|
+
|
|
433
|
+
# Optional: Filter accounts (show only matching accounts)
|
|
434
|
+
# Supports both list format and comma-separated string
|
|
435
|
+
# Comment out or leave empty to show all accounts
|
|
436
|
+
# Case-insensitive substring matching
|
|
437
|
+
cloudflare_accounts:
|
|
438
|
+
- "Production"
|
|
439
|
+
- "Development"
|
|
440
|
+
- "Staging"
|
|
441
|
+
# Or use comma-separated format:
|
|
442
|
+
# cloudflare_accounts: "Production,Development,Staging"
|
|
443
|
+
|
|
444
|
+
# Optional: Filter zones (show only matching zones)
|
|
445
|
+
# Supports both list format and comma-separated string
|
|
446
|
+
# Comment out or leave empty to show all zones
|
|
447
|
+
# Case-insensitive substring matching
|
|
448
|
+
# Applied after account filtering
|
|
449
|
+
cloudflare_zones:
|
|
450
|
+
- "example.com"
|
|
451
|
+
- "api.example.com"
|
|
452
|
+
- "test.com"
|
|
453
|
+
# Or use comma-separated format:
|
|
454
|
+
# cloudflare_zones: "example.com,api.example.com,test.com"
|
|
455
|
+
|
|
456
|
+
# Other platform configurations can be added below
|
|
457
|
+
# aws:
|
|
458
|
+
# ...
|
|
459
|
+
# azure:
|
|
460
|
+
# ...
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
---
|
|
464
|
+
|
|
465
|
+
## Additional Resources
|
|
466
|
+
|
|
467
|
+
**IC CLI Documentation:**
|
|
468
|
+
- CloudFlare Platform README: `src/ic/platforms/cloudflare/README.md`
|
|
469
|
+
- General Configuration Guide: `docs/general/configuration.md`
|
|
470
|
+
- Main README: `README.md`
|
|
471
|
+
|
|
472
|
+
**CloudFlare Resources:**
|
|
473
|
+
- API Documentation: https://developers.cloudflare.com/api/
|
|
474
|
+
- Dashboard: https://dash.cloudflare.com/
|
|
475
|
+
- API Tokens: https://dash.cloudflare.com/profile/api-tokens
|
|
476
|
+
- Status Page: https://www.cloudflarestatus.com/
|
|
477
|
+
|
|
478
|
+
**Security:**
|
|
479
|
+
- Never commit `secrets.yaml` to version control
|
|
480
|
+
- Add to `.gitignore`: `secrets.yaml`, `**/secrets.yaml`
|
|
481
|
+
- Set file permissions: `chmod 600 ~/.ic/config/secrets.yaml`
|
|
482
|
+
- Rotate API tokens regularly
|
|
483
|
+
|
|
484
|
+
---
|
|
485
|
+
|
|
486
|
+
## Quick Start Checklist
|
|
487
|
+
|
|
488
|
+
- [ ] Create `~/.ic/config/secrets.yaml` if it doesn't exist
|
|
489
|
+
- [ ] Add CloudFlare email and API token
|
|
490
|
+
- [ ] Set file permissions: `chmod 600 ~/.ic/config/secrets.yaml`
|
|
491
|
+
- [ ] (Optional) Add account and zone filters
|
|
492
|
+
- [ ] Test configuration: `ic cf account info`
|
|
493
|
+
- [ ] Verify access: `ic cf zone info`
|
|
494
|
+
- [ ] Review logs for any issues: `~/.ic/logs/ic_YYYYMMDD.log`
|
|
495
|
+
|
|
496
|
+
---
|
|
497
|
+
|
|
498
|
+
**Last Updated:** November 2024
|
|
499
|
+
**IC CLI Version:** 1.2.x+
|
|
500
|
+
**CloudFlare API Version:** v4
|
|
@@ -40,6 +40,7 @@ Each platform has its own configuration directory and files:
|
|
|
40
40
|
|
|
41
41
|
- **AWS**: See [AWS Configuration Guide](../aws/configuration.md)
|
|
42
42
|
- **Azure**: See [Azure Configuration Guide](../azure/configuration.md)
|
|
43
|
+
- **CloudFlare**: See [CloudFlare Configuration Examples](../cloudflare_configuration_example.md)
|
|
43
44
|
- **GCP**: See [GCP Configuration Guide](../gcp/configuration.md)
|
|
44
45
|
- **NCP**: See [NCP Configuration Guide](../ncp/configuration.md)
|
|
45
46
|
- **NCPGOV**: See [NCPGOV Configuration Guide](../ncpgov/configuration.md)
|
|
@@ -120,8 +120,8 @@ def main():
|
|
|
120
120
|
|
|
121
121
|
# Use defaults if nothing detected
|
|
122
122
|
if not detected_platforms:
|
|
123
|
-
print("No platforms detected, using
|
|
124
|
-
detected_platforms = ["
|
|
123
|
+
print("No platforms detected, using default: aws")
|
|
124
|
+
detected_platforms = ["aws"]
|
|
125
125
|
|
|
126
126
|
# Filter platforms that have tests
|
|
127
127
|
platforms_with_tests = filter_platforms_with_tests(detected_platforms)
|
|
@@ -4,7 +4,7 @@ IC (Infra Resource Management CLI) - A comprehensive tool for managing cloud inf
|
|
|
4
4
|
This package provides CLI tools and libraries for managing AWS, Azure, GCP, OCI, and CloudFlare resources.
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
|
-
__version__ = "1.2.
|
|
7
|
+
__version__ = "1.2.5"
|
|
8
8
|
__author__ = "SangYun"
|
|
9
9
|
__email__ = "cruiser594@gmail.com"
|
|
10
10
|
|