replimap 0.1.36__tar.gz → 0.3.8__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.
- {replimap-0.1.36 → replimap-0.3.8}/LICENSE +2 -2
- {replimap-0.1.36 → replimap-0.3.8}/PKG-INFO +34 -15
- {replimap-0.1.36 → replimap-0.3.8}/README.md +25 -8
- {replimap-0.1.36 → replimap-0.3.8}/pyproject.toml +9 -6
- {replimap-0.1.36 → replimap-0.3.8}/replimap/__init__.py +1 -1
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/commands/__init__.py +9 -0
- replimap-0.3.8/replimap/cli/commands/analyze.py +578 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/commands/audit.py +12 -2
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/commands/cache.py +114 -52
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/commands/clone.py +143 -3
- replimap-0.3.8/replimap/cli/commands/completion.py +95 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/commands/cost.py +21 -4
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/commands/deps.py +18 -5
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/commands/dr.py +7 -2
- replimap-0.3.8/replimap/cli/commands/drift.py +785 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/commands/graph.py +18 -2
- replimap-0.3.8/replimap/cli/commands/iam.py +463 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/commands/load.py +33 -6
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/commands/profiles.py +4 -2
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/commands/remediate.py +5 -2
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/commands/scan.py +42 -4
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/commands/transfer.py +5 -2
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/commands/trends.py +6 -2
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/commands/unused.py +12 -11
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/commands/validate.py +9 -3
- replimap-0.3.8/replimap/cli/completers.py +127 -0
- replimap-0.3.8/replimap/cli/completion.py +467 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/utils/error_handler.py +6 -2
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/utils/tips.py +1 -1
- replimap-0.3.8/replimap/core/analysis/__init__.py +31 -0
- replimap-0.3.8/replimap/core/analysis/centrality.py +702 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/browser.py +75 -2
- replimap-0.3.8/replimap/core/cache_manager.py +623 -0
- replimap-0.3.8/replimap/core/concurrency.py +300 -0
- replimap-0.3.8/replimap/core/constants.py +44 -0
- replimap-0.3.8/replimap/core/drift/__init__.py +44 -0
- replimap-0.3.8/replimap/core/drift/detector.py +1485 -0
- replimap-0.3.8/replimap/core/enrichment/__init__.py +51 -0
- replimap-0.3.8/replimap/core/enrichment/enricher.py +370 -0
- replimap-0.3.8/replimap/core/enrichment/metadata_extractor.py +451 -0
- replimap-0.3.8/replimap/core/enrichment/network_analyzer.py +365 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/errors.py +321 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/first_run.py +5 -1
- replimap-0.3.8/replimap/core/formatters/__init__.py +25 -0
- replimap-0.3.8/replimap/core/formatters/sarif.py +1435 -0
- replimap-0.3.8/replimap/core/graph/__init__.py +22 -0
- replimap-0.3.8/replimap/core/graph/algorithms.py +411 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/graph_engine.py +32 -0
- replimap-0.3.8/replimap/core/pagination.py +634 -0
- replimap-0.3.8/replimap/core/pagination_config.py +701 -0
- replimap-0.3.8/replimap/core/rate_limiter.py +473 -0
- replimap-0.3.8/replimap/core/resilience/__init__.py +49 -0
- replimap-0.3.8/replimap/core/resilience/circuit_breaker.py +529 -0
- replimap-0.3.8/replimap/core/resilience/errors/__init__.py +58 -0
- replimap-0.3.8/replimap/core/resilience/errors/classifier.py +435 -0
- replimap-0.3.8/replimap/core/resilience/errors/loader.py +320 -0
- replimap-0.3.8/replimap/core/resilience/errors/rules.py +357 -0
- replimap-0.3.8/replimap/core/security/__init__.py +83 -0
- replimap-0.3.8/replimap/core/security/credential_checker.py +323 -0
- replimap-0.3.8/replimap/core/security/drift.py +367 -0
- replimap-0.3.8/replimap/core/security/global_sanitizer.py +554 -0
- replimap-0.3.8/replimap/core/security/iam_generator.py +1485 -0
- replimap-0.3.8/replimap/core/security/patterns.py +376 -0
- replimap-0.3.8/replimap/core/security/redactor.py +166 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/security/scrubber.py +197 -0
- replimap-0.3.8/replimap/core/security/session_manager.py +569 -0
- replimap-0.3.8/replimap/core/security/storage.py +305 -0
- replimap-0.3.8/replimap/core/unified_storage/__init__.py +76 -0
- replimap-0.3.8/replimap/core/unified_storage/adapter.py +685 -0
- replimap-0.3.8/replimap/core/unified_storage/base.py +434 -0
- replimap-0.3.8/replimap/core/unified_storage/engine.py +1019 -0
- replimap-0.3.8/replimap/core/unified_storage/migrate.py +329 -0
- replimap-0.3.8/replimap/core/unified_storage/sqlite_backend.py +1160 -0
- replimap-0.3.8/replimap/licensing/crypto/__init__.py +21 -0
- replimap-0.3.8/replimap/licensing/crypto/keys.py +204 -0
- replimap-0.3.8/replimap/licensing/crypto/time_validator.py +266 -0
- replimap-0.3.8/replimap/licensing/developer.py +272 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/licensing/gates.py +1 -1
- replimap-0.3.8/replimap/licensing/secure_manager.py +513 -0
- replimap-0.3.8/replimap/licensing/secure_models.py +370 -0
- replimap-0.3.8/replimap/licensing/server/__init__.py +17 -0
- replimap-0.3.8/replimap/licensing/server/signer.py +318 -0
- replimap-0.3.8/replimap/licensing/verifier.py +347 -0
- replimap-0.3.8/replimap/migrations/__init__.py +20 -0
- replimap-0.3.8/replimap/migrations/sanitize_cache.py +248 -0
- replimap-0.3.8/replimap/renderers/backend.py +496 -0
- replimap-0.3.8/replimap/renderers/import_generator.py +584 -0
- replimap-0.3.8/replimap/renderers/preloader.py +672 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/renderers/terraform.py +93 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/renderers/terraform_v2.py +9 -9
- {replimap-0.1.36 → replimap-0.3.8}/replimap/scanners/base.py +160 -1
- {replimap-0.1.36 → replimap-0.3.8}/replimap/scanners/compute_scanner.py +7 -4
- {replimap-0.1.36 → replimap-0.3.8}/replimap/scanners/ec2_scanner.py +15 -2
- {replimap-0.1.36 → replimap-0.3.8}/replimap/scanners/elasticache_scanner.py +7 -2
- {replimap-0.1.36 → replimap-0.3.8}/replimap/scanners/iam_scanner.py +12 -3
- replimap-0.3.8/replimap/scanners/implementations/__init__.py +20 -0
- replimap-0.3.8/replimap/scanners/implementations/s3_scanner.py +304 -0
- replimap-0.3.8/replimap/scanners/implementations/vpc_scanner.py +447 -0
- replimap-0.3.8/replimap/scanners/legacy_adapter.py +338 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/scanners/messaging_scanner.py +3 -2
- {replimap-0.1.36 → replimap-0.3.8}/replimap/scanners/monitoring_scanner.py +4 -1
- {replimap-0.1.36 → replimap-0.3.8}/replimap/scanners/networking_scanner.py +6 -5
- {replimap-0.1.36 → replimap-0.3.8}/replimap/scanners/rds_scanner.py +3 -2
- {replimap-0.1.36 → replimap-0.3.8}/replimap/scanners/s3_scanner.py +6 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/scanners/storage_scanner.py +5 -5
- replimap-0.3.8/replimap/scanners/unified_base.py +501 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/scanners/vpc_scanner.py +7 -4
- replimap-0.3.8/scripts/record_cassettes.py +232 -0
- replimap-0.1.36/replimap/cli/commands/drift.py +0 -337
- replimap-0.1.36/replimap/core/cache_manager.py +0 -397
- replimap-0.1.36/replimap/core/concurrency.py +0 -113
- replimap-0.1.36/replimap/core/security/__init__.py +0 -10
- replimap-0.1.36/replimap/renderers/import_generator.py +0 -401
- {replimap-0.1.36 → replimap-0.3.8}/.gitignore +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/MANIFEST.in +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/docs/assets/demo.gif +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/audit/__init__.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/audit/checkov_runner.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/audit/classifier.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/audit/engine.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/audit/exporters.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/audit/fix_suggestions.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/audit/hooks.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/audit/models.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/audit/remediation/__init__.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/audit/remediation/generator.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/audit/remediation/models.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/audit/remediation/templates/__init__.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/audit/remediation/templates/ec2.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/audit/remediation/templates/kms.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/audit/remediation/templates/rds.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/audit/remediation/templates/s3.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/audit/renderer.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/audit/reporter.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/audit/soc2_mapping.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/audit/templates/audit_report.html.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/audit/terminal_reporter.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/audit/trust_center.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/blast/__init__.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/blast/graph_builder.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/blast/impact_calculator.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/blast/models.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/blast/reporter.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cache/__init__.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cache/snapshots.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/__init__.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/commands/license.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/commands/snapshot.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/commands/trust_center.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/commands/upgrade.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/utils/__init__.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/utils/aws_session.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/utils/console.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/utils/console_links.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/utils/helpers.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/utils/options.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cli/utils/update_checker.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/__init__.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/async_aws.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/aws_config.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/bootstrap.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/cache.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/circuit_breaker.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/config.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/filters.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/graph_tracer.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/identity_resolver.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/logging.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/models.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/naming.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/retry.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/sanitizer.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/scope.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/selection.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/signals.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/state.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/storage.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/core/topology_constraints.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cost/__init__.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cost/au_pricing.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cost/enterprise_pricing.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cost/estimator.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cost/explorer.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cost/local_rightsizer.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cost/models.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cost/pricing.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cost/pricing_engine.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cost/reporter.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cost/ri_aware.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cost/rightsizer.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cost/savings_plans.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cost/transfer_analyzer.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cost/trends.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/cost/unused_detector.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/dependencies/__init__.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/dependencies/graph_builder.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/dependencies/impact_calculator.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/dependencies/models.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/dependencies/reporter.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/deps/__init__.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/deps/analyzers/__init__.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/deps/analyzers/asg.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/deps/analyzers/ec2.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/deps/analyzers/elasticache.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/deps/analyzers/elb.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/deps/analyzers/iam_role.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/deps/analyzers/lambda_func.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/deps/analyzers/rds.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/deps/analyzers/s3.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/deps/analyzers/security_group.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/deps/base_analyzer.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/deps/blast_radius.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/deps/models.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/deps/reporter.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/dr/__init__.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/dr/readiness.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/drift/__init__.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/drift/comparator.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/drift/engine.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/drift/models.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/drift/normalizer.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/drift/plan_engine.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/drift/reporter.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/drift/state_parser.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/drift/templates/drift_report.html.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/__init__.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/aggregation.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/blast_radius.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/builder.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/cost_overlay.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/cross_region.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/drift.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/environment.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/filters.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/formatters/__init__.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/formatters/d3.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/formatters/json_format.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/formatters/mermaid.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/global_context.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/grouper.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/layout.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/link_classification.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/multi_region.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/naming.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/orphan_detection.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/summary_links.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/templates/graph.html.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/tool_modes.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/views.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/graph/visualizer.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/licensing/__init__.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/licensing/manager.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/licensing/models.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/licensing/prompts.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/licensing/tracker.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/main.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/patterns/__init__.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/patterns/local_module.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/renderers/__init__.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/renderers/audit_annotator.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/renderers/base.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/renderers/cloudformation.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/renderers/file_router.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/renderers/name_generator.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/renderers/pulumi.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/renderers/refactoring.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/renderers/variable_extractor.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/scanners/__init__.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/scanners/async_base.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/scanners/async_vpc_scanner.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/scanners/incremental.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/scanners/unified_scanners.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/snapshot/__init__.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/snapshot/differ.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/snapshot/models.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/snapshot/reporter.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/snapshot/store.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/autoscaling_group.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/db_parameter_group.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/db_subnet_group.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/ebs_volume.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/ec2_instance.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/elasticache_cluster.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/elasticache_subnet_group.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/internet_gateway.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/launch_template.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/lb.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/lb_listener.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/lb_target_group.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/nat_gateway.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/network_acl.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/rds_instance.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/route_table.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/s3_bucket.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/s3_bucket_policy.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/security_group.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/sns_topic.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/sqs_queue.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/subnet.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/vpc.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/templates/vpc_endpoint.tf.j2 +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/transformers/__init__.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/transformers/base.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/transformers/downsizer.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/transformers/network_remapper.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/transformers/renamer.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/transformers/sanitizer.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/ui/__init__.py +0 -0
- {replimap-0.1.36 → replimap-0.3.8}/replimap/ui/rich_output.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
RepliMap Proprietary License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2024-
|
|
3
|
+
Copyright (c) 2024-2026 RepliMap. All rights reserved.
|
|
4
4
|
|
|
5
5
|
This software and associated documentation files (the "Software") are the
|
|
6
6
|
proprietary property of RepliMap and are protected by copyright law and
|
|
@@ -19,7 +19,7 @@ Without a valid commercial license, you may NOT:
|
|
|
19
19
|
|
|
20
20
|
COMMERCIAL LICENSING:
|
|
21
21
|
For commercial use, enterprise licensing, or custom deployments, please
|
|
22
|
-
contact:
|
|
22
|
+
contact: david@replimap.com
|
|
23
23
|
|
|
24
24
|
DISCLAIMER:
|
|
25
25
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: replimap
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary: AWS
|
|
5
|
-
Project-URL: Homepage, https://
|
|
6
|
-
Project-URL: Documentation, https://
|
|
7
|
-
Project-URL: Repository, https://github.com/RepliMap/replimap
|
|
3
|
+
Version: 0.3.8
|
|
4
|
+
Summary: AWS Infrastructure Intelligence Engine — Scan, Understand, Transform
|
|
5
|
+
Project-URL: Homepage, https://replimap.com
|
|
6
|
+
Project-URL: Documentation, https://replimap.com/docs
|
|
7
|
+
Project-URL: Repository, https://github.com/RepliMap/replimap
|
|
8
8
|
Project-URL: Issues, https://github.com/RepliMap/replimap/issues
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
Project-URL: Changelog, https://github.com/RepliMap/replimap/blob/main/CHANGELOG.md
|
|
10
|
+
Author-email: David Lu <david@replimap.com>
|
|
11
|
+
Maintainer-email: David Lu <david@replimap.com>
|
|
11
12
|
License: Proprietary
|
|
12
13
|
License-File: LICENSE
|
|
13
14
|
Keywords: audit,aws,compliance,devops,infrastructure,replication,security,soc2,staging,terraform
|
|
@@ -46,6 +47,7 @@ Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
|
|
|
46
47
|
Requires-Dist: pytest>=7.0.0; extra == 'dev'
|
|
47
48
|
Requires-Dist: ruff>=0.1.0; extra == 'dev'
|
|
48
49
|
Requires-Dist: types-pyyaml>=6.0.0; extra == 'dev'
|
|
50
|
+
Requires-Dist: vcrpy>=6.0.0; extra == 'dev'
|
|
49
51
|
Description-Content-Type: text/markdown
|
|
50
52
|
|
|
51
53
|
<!--
|
|
@@ -73,10 +75,16 @@ Description-Content-Type: text/markdown
|
|
|
73
75
|
</p>
|
|
74
76
|
|
|
75
77
|
<p align="center">
|
|
76
|
-
<
|
|
78
|
+
<a href="https://pypi.org/project/replimap/">
|
|
79
|
+
<img src="https://img.shields.io/pypi/v/replimap?color=blue&label=PyPI" alt="PyPI" />
|
|
80
|
+
</a>
|
|
77
81
|
<img src="https://img.shields.io/badge/python-3.10+-blue.svg" alt="Python 3.10+" />
|
|
78
|
-
<
|
|
79
|
-
|
|
82
|
+
<a href="https://github.com/RepliMap/replimap/actions/workflows/auto-release.yml">
|
|
83
|
+
<img src="https://github.com/RepliMap/replimap/actions/workflows/auto-release.yml/badge.svg?branch=main" alt="Build" />
|
|
84
|
+
</a>
|
|
85
|
+
<a href="https://github.com/RepliMap/replimap/blob/main/LICENSE">
|
|
86
|
+
<img src="https://img.shields.io/badge/license-BSL--1.1-green.svg" alt="License" />
|
|
87
|
+
</a>
|
|
80
88
|
</p>
|
|
81
89
|
|
|
82
90
|
<p align="center">
|
|
@@ -397,6 +405,7 @@ terraform plan
|
|
|
397
405
|
|---------|-------------|
|
|
398
406
|
| `replimap scan` | Scan AWS resources and build dependency graph |
|
|
399
407
|
| `replimap clone` | Clone AWS environment to Infrastructure-as-Code |
|
|
408
|
+
| `replimap analyze` | Analyze graph for critical resources, SPOFs, blast radius |
|
|
400
409
|
| `replimap graph` | Generate visual dependency graph |
|
|
401
410
|
| `replimap deps` | Explore dependencies for a resource |
|
|
402
411
|
| `replimap cost` | Estimate monthly AWS costs |
|
|
@@ -425,6 +434,7 @@ Global Options:
|
|
|
425
434
|
Commands:
|
|
426
435
|
scan Scan AWS resources and build dependency graph
|
|
427
436
|
clone Clone AWS environment to Infrastructure-as-Code
|
|
437
|
+
analyze Analyze graph for critical resources, SPOFs, blast radius
|
|
428
438
|
graph Generate visual dependency graph of AWS infrastructure
|
|
429
439
|
deps Explore dependencies for a resource
|
|
430
440
|
cost Estimate monthly AWS costs for your infrastructure
|
|
@@ -657,12 +667,21 @@ Run your first scan in 2 minutes. See what you've been missing.
|
|
|
657
667
|
|
|
658
668
|
---
|
|
659
669
|
|
|
660
|
-
##
|
|
670
|
+
## Support & Contact
|
|
661
671
|
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
672
|
+
| Purpose | Contact |
|
|
673
|
+
|---------|---------|
|
|
674
|
+
| General inquiries | [hello@replimap.com](mailto:hello@replimap.com) |
|
|
675
|
+
| Technical support | [support@replimap.com](mailto:support@replimap.com) |
|
|
676
|
+
| Enterprise & Sales | [david@replimap.com](mailto:david@replimap.com) |
|
|
677
|
+
| Bug reports | [GitHub Issues](https://github.com/RepliMap/replimap/issues) |
|
|
678
|
+
| Discussions | [GitHub Discussions](https://github.com/RepliMap/replimap/discussions) |
|
|
679
|
+
|
|
680
|
+
## Links
|
|
681
|
+
|
|
682
|
+
- Website: [replimap.com](https://replimap.com)
|
|
683
|
+
- Documentation: [replimap.com/docs](https://replimap.com/docs)
|
|
684
|
+
- Pricing: [replimap.com/pricing](https://replimap.com/pricing)
|
|
666
685
|
|
|
667
686
|
---
|
|
668
687
|
|
|
@@ -23,10 +23,16 @@
|
|
|
23
23
|
</p>
|
|
24
24
|
|
|
25
25
|
<p align="center">
|
|
26
|
-
<
|
|
26
|
+
<a href="https://pypi.org/project/replimap/">
|
|
27
|
+
<img src="https://img.shields.io/pypi/v/replimap?color=blue&label=PyPI" alt="PyPI" />
|
|
28
|
+
</a>
|
|
27
29
|
<img src="https://img.shields.io/badge/python-3.10+-blue.svg" alt="Python 3.10+" />
|
|
28
|
-
<
|
|
29
|
-
|
|
30
|
+
<a href="https://github.com/RepliMap/replimap/actions/workflows/auto-release.yml">
|
|
31
|
+
<img src="https://github.com/RepliMap/replimap/actions/workflows/auto-release.yml/badge.svg?branch=main" alt="Build" />
|
|
32
|
+
</a>
|
|
33
|
+
<a href="https://github.com/RepliMap/replimap/blob/main/LICENSE">
|
|
34
|
+
<img src="https://img.shields.io/badge/license-BSL--1.1-green.svg" alt="License" />
|
|
35
|
+
</a>
|
|
30
36
|
</p>
|
|
31
37
|
|
|
32
38
|
<p align="center">
|
|
@@ -347,6 +353,7 @@ terraform plan
|
|
|
347
353
|
|---------|-------------|
|
|
348
354
|
| `replimap scan` | Scan AWS resources and build dependency graph |
|
|
349
355
|
| `replimap clone` | Clone AWS environment to Infrastructure-as-Code |
|
|
356
|
+
| `replimap analyze` | Analyze graph for critical resources, SPOFs, blast radius |
|
|
350
357
|
| `replimap graph` | Generate visual dependency graph |
|
|
351
358
|
| `replimap deps` | Explore dependencies for a resource |
|
|
352
359
|
| `replimap cost` | Estimate monthly AWS costs |
|
|
@@ -375,6 +382,7 @@ Global Options:
|
|
|
375
382
|
Commands:
|
|
376
383
|
scan Scan AWS resources and build dependency graph
|
|
377
384
|
clone Clone AWS environment to Infrastructure-as-Code
|
|
385
|
+
analyze Analyze graph for critical resources, SPOFs, blast radius
|
|
378
386
|
graph Generate visual dependency graph of AWS infrastructure
|
|
379
387
|
deps Explore dependencies for a resource
|
|
380
388
|
cost Estimate monthly AWS costs for your infrastructure
|
|
@@ -607,12 +615,21 @@ Run your first scan in 2 minutes. See what you've been missing.
|
|
|
607
615
|
|
|
608
616
|
---
|
|
609
617
|
|
|
610
|
-
##
|
|
618
|
+
## Support & Contact
|
|
611
619
|
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
620
|
+
| Purpose | Contact |
|
|
621
|
+
|---------|---------|
|
|
622
|
+
| General inquiries | [hello@replimap.com](mailto:hello@replimap.com) |
|
|
623
|
+
| Technical support | [support@replimap.com](mailto:support@replimap.com) |
|
|
624
|
+
| Enterprise & Sales | [david@replimap.com](mailto:david@replimap.com) |
|
|
625
|
+
| Bug reports | [GitHub Issues](https://github.com/RepliMap/replimap/issues) |
|
|
626
|
+
| Discussions | [GitHub Discussions](https://github.com/RepliMap/replimap/discussions) |
|
|
627
|
+
|
|
628
|
+
## Links
|
|
629
|
+
|
|
630
|
+
- Website: [replimap.com](https://replimap.com)
|
|
631
|
+
- Documentation: [replimap.com/docs](https://replimap.com/docs)
|
|
632
|
+
- Pricing: [replimap.com/pricing](https://replimap.com/pricing)
|
|
616
633
|
|
|
617
634
|
---
|
|
618
635
|
|
|
@@ -5,15 +5,15 @@ build-backend = "hatchling.build"
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "replimap"
|
|
7
7
|
dynamic = ["version"]
|
|
8
|
-
description = "AWS
|
|
8
|
+
description = "AWS Infrastructure Intelligence Engine — Scan, Understand, Transform"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = {text = "Proprietary"}
|
|
11
11
|
requires-python = ">=3.10"
|
|
12
12
|
authors = [
|
|
13
|
-
{name = "
|
|
13
|
+
{name = "David Lu", email = "david@replimap.com"}
|
|
14
14
|
]
|
|
15
15
|
maintainers = [
|
|
16
|
-
{name = "
|
|
16
|
+
{name = "David Lu", email = "david@replimap.com"}
|
|
17
17
|
]
|
|
18
18
|
keywords = [
|
|
19
19
|
"aws",
|
|
@@ -60,6 +60,7 @@ dev = [
|
|
|
60
60
|
"pytest>=7.0.0",
|
|
61
61
|
"pytest-cov>=4.0.0",
|
|
62
62
|
"pytest-asyncio>=0.21.0",
|
|
63
|
+
"vcrpy>=6.0.0",
|
|
63
64
|
"mypy>=1.0.0",
|
|
64
65
|
"ruff>=0.1.0",
|
|
65
66
|
"boto3-stubs[ec2,s3,rds,sts]>=1.28.0",
|
|
@@ -77,10 +78,11 @@ dev = [
|
|
|
77
78
|
replimap = "replimap.main:main"
|
|
78
79
|
|
|
79
80
|
[project.urls]
|
|
80
|
-
Homepage = "https://
|
|
81
|
-
Documentation = "https://
|
|
82
|
-
Repository = "https://github.com/RepliMap/replimap
|
|
81
|
+
Homepage = "https://replimap.com"
|
|
82
|
+
Documentation = "https://replimap.com/docs"
|
|
83
|
+
Repository = "https://github.com/RepliMap/replimap"
|
|
83
84
|
Issues = "https://github.com/RepliMap/replimap/issues"
|
|
85
|
+
Changelog = "https://github.com/RepliMap/replimap/blob/main/CHANGELOG.md"
|
|
84
86
|
|
|
85
87
|
[tool.hatch.build.targets.wheel]
|
|
86
88
|
packages = ["replimap"]
|
|
@@ -108,6 +110,7 @@ dev = [
|
|
|
108
110
|
"pytest>=7.0.0",
|
|
109
111
|
"pytest-cov>=4.0.0",
|
|
110
112
|
"pytest-asyncio>=0.21.0",
|
|
113
|
+
"vcrpy>=6.0.0",
|
|
111
114
|
"mypy>=1.0.0",
|
|
112
115
|
"ruff>=0.1.0",
|
|
113
116
|
"hatch>=1.9.0",
|
|
@@ -17,14 +17,17 @@ import typer
|
|
|
17
17
|
|
|
18
18
|
# Import individual command modules
|
|
19
19
|
from replimap.cli.commands import (
|
|
20
|
+
analyze,
|
|
20
21
|
audit,
|
|
21
22
|
cache,
|
|
22
23
|
clone,
|
|
24
|
+
completion,
|
|
23
25
|
cost,
|
|
24
26
|
deps,
|
|
25
27
|
dr,
|
|
26
28
|
drift,
|
|
27
29
|
graph,
|
|
30
|
+
iam,
|
|
28
31
|
license,
|
|
29
32
|
load,
|
|
30
33
|
profiles,
|
|
@@ -53,6 +56,7 @@ def register_all_commands(app: typer.Typer) -> None:
|
|
|
53
56
|
# Register main commands
|
|
54
57
|
scan.register(app)
|
|
55
58
|
clone.register(app)
|
|
59
|
+
analyze.register(app)
|
|
56
60
|
load.register(app)
|
|
57
61
|
profiles.register(app)
|
|
58
62
|
audit.register(app)
|
|
@@ -68,17 +72,20 @@ def register_all_commands(app: typer.Typer) -> None:
|
|
|
68
72
|
|
|
69
73
|
# Register sub-command groups
|
|
70
74
|
cache.register(app)
|
|
75
|
+
iam.register(app)
|
|
71
76
|
license.register(app)
|
|
72
77
|
upgrade.register(app)
|
|
73
78
|
snapshot.register(app)
|
|
74
79
|
trust_center.register(app)
|
|
75
80
|
dr.register(app)
|
|
81
|
+
completion.register(app)
|
|
76
82
|
|
|
77
83
|
|
|
78
84
|
__all__ = [
|
|
79
85
|
"register_all_commands",
|
|
80
86
|
"scan",
|
|
81
87
|
"clone",
|
|
88
|
+
"analyze",
|
|
82
89
|
"load",
|
|
83
90
|
"profiles",
|
|
84
91
|
"audit",
|
|
@@ -92,9 +99,11 @@ __all__ = [
|
|
|
92
99
|
"trends",
|
|
93
100
|
"transfer",
|
|
94
101
|
"cache",
|
|
102
|
+
"iam",
|
|
95
103
|
"license",
|
|
96
104
|
"upgrade",
|
|
97
105
|
"snapshot",
|
|
98
106
|
"trust_center",
|
|
99
107
|
"dr",
|
|
108
|
+
"completion",
|
|
100
109
|
]
|