Files
DECNET/complete_execution_graph.md
anti ff38d58508 Testing: Stabilized test suite and achieved 93% total coverage.
- Fixed CLI tests by patching local imports at source (psutil, os, Path).
- Fixed Collector tests by globalizing docker.from_env mock.
- Stabilized SSE stream tests via AsyncMock and immediate generator termination to prevent hangs.
- Achieved >80% coverage on CLI (84%), Collector (97%), and DB Repository (100%).
- Implemented SMTP Relay service tests (100%).
2026-04-12 03:30:06 -04:00

11 KiB

DECNET: Complete Execution Graph

This diagram represents the absolute complete call graph of the DECNET project. It connects initial entry points (CLI and Web API) through the orchestration layers, down to the low-level network and service container logic.

graph TD
    subgraph CLI_Entry
        cli__kill_api([_kill_api])
        cli_api([api])
        cli_deploy([deploy])
        cli_collect([collect])
        cli_mutate([mutate])
        cli_status([status])
        cli_teardown([teardown])
        cli_list_services([list_services])
        cli_list_distros([list_distros])
        cli_correlate([correlate])
        cli_list_archetypes([list_archetypes])
        cli_serve_web([serve_web])
        cli_do_GET([do_GET])
    end
    subgraph Fleet_Management
        distros_random_hostname([distros_random_hostname])
        distros_get_distro([distros_get_distro])
        distros_random_distro([distros_random_distro])
        distros_all_distros([distros_all_distros])
        ini_loader_load_ini([ini_loader_load_ini])
        ini_loader_load_ini_from_string([ini_loader_load_ini_from_string])
        ini_loader_validate_ini_string([ini_loader_validate_ini_string])
        ini_loader__parse_configparser([ini_loader__parse_configparser])
        archetypes_get_archetype([archetypes_get_archetype])
        archetypes_all_archetypes([archetypes_all_archetypes])
        archetypes_random_archetype([archetypes_random_archetype])
        fleet_all_service_names([all_service_names])
        fleet_resolve_distros([resolve_distros])
        fleet_build_deckies([build_deckies])
        fleet_build_deckies_from_ini([build_deckies_from_ini])
    end
    subgraph Deployment_Engine
        network__run([network__run])
        network_detect_interface([network_detect_interface])
        network_detect_subnet([network_detect_subnet])
        network_get_host_ip([network_get_host_ip])
        network_allocate_ips([network_allocate_ips])
        network_create_macvlan_network([network_create_macvlan_network])
        network_create_ipvlan_network([network_create_ipvlan_network])
        network_remove_macvlan_network([network_remove_macvlan_network])
        network__require_root([network__require_root])
        network_setup_host_macvlan([network_setup_host_macvlan])
        network_teardown_host_macvlan([network_teardown_host_macvlan])
        network_setup_host_ipvlan([network_setup_host_ipvlan])
        network_teardown_host_ipvlan([network_teardown_host_ipvlan])
        network_ips_to_range([network_ips_to_range])
        config_random_hostname([config_random_hostname])
        config_save_state([config_save_state])
        config_load_state([config_load_state])
        config_clear_state([config_clear_state])
        composer_generate_compose([composer_generate_compose])
        composer_write_compose([composer_write_compose])
        engine_deployer__sync_logging_helper([_sync_logging_helper])
        engine_deployer__compose([_compose])
        engine_deployer__compose_with_retry([_compose_with_retry])
        engine_deployer_deploy([deploy])
        engine_deployer_teardown([teardown])
        engine_deployer_status([status])
        engine_deployer__print_status([_print_status])
    end
    subgraph Monitoring_Mutation
        collector_worker_parse_rfc5424([parse_rfc5424])
        collector_worker__load_service_container_names([_load_service_container_names])
        collector_worker_is_service_container([is_service_container])
        collector_worker_is_service_event([is_service_event])
        collector_worker__stream_container([_stream_container])
        collector_worker_log_collector_worker([log_collector_worker])
        collector_worker__spawn([_spawn])
        collector_worker__watch_events([_watch_events])
        mutator_engine_mutate_decky([mutate_decky])
        mutator_engine_mutate_all([mutate_all])
        mutator_engine_run_watch_loop([run_watch_loop])
    end
    subgraph Web_Service
        web_auth_verify_password([web_auth_verify_password])
        web_auth_get_password_hash([web_auth_get_password_hash])
        web_auth_create_access_token([web_auth_create_access_token])
        web_db_repository_initialize([web_db_repository_initialize])
        web_db_repository_add_log([web_db_repository_add_log])
        web_db_repository_get_logs([web_db_repository_get_logs])
        web_db_repository_get_total_logs([web_db_repository_get_total_logs])
        web_db_repository_get_stats_summary([web_db_repository_get_stats_summary])
        web_db_repository_get_deckies([web_db_repository_get_deckies])
        web_db_repository_get_user_by_uuid([web_db_repository_get_user_by_uuid])
        web_db_repository_update_user_password([web_db_repository_update_user_password])
        web_db_repository_add_bounty([web_db_repository_add_bounty])
        web_db_repository_get_bounties([web_db_repository_get_bounties])
        web_db_repository_get_total_bounties([web_db_repository_get_total_bounties])
        web_db_sqlite_database_get_async_engine([web_db_sqlite_database_get_async_engine])
        web_db_sqlite_database_get_sync_engine([web_db_sqlite_database_get_sync_engine])
        web_db_sqlite_database_init_db([web_db_sqlite_database_init_db])
        web_db_sqlite_repository_initialize([web_db_sqlite_repository_initialize])
        web_db_sqlite_repository_reinitialize([web_db_sqlite_repository_reinitialize])
        web_db_sqlite_repository_add_log([web_db_sqlite_repository_add_log])
        web_db_sqlite_repository__apply_filters([web_db_sqlite_repository__apply_filters])
        web_db_sqlite_repository_get_logs([web_db_sqlite_repository_get_logs])
        web_db_sqlite_repository_get_max_log_id([web_db_sqlite_repository_get_max_log_id])
        web_db_sqlite_repository_get_logs_after_id([web_db_sqlite_repository_get_logs_after_id])
        web_db_sqlite_repository_get_total_logs([web_db_sqlite_repository_get_total_logs])
        web_db_sqlite_repository_get_log_histogram([web_db_sqlite_repository_get_log_histogram])
        web_db_sqlite_repository_get_stats_summary([web_db_sqlite_repository_get_stats_summary])
        web_db_sqlite_repository_get_deckies([web_db_sqlite_repository_get_deckies])
        web_db_sqlite_repository_get_user_by_username([web_db_sqlite_repository_get_user_by_username])
        web_db_sqlite_repository_get_user_by_uuid([web_db_sqlite_repository_get_user_by_uuid])
        web_db_sqlite_repository_create_user([web_db_sqlite_repository_create_user])
        web_db_sqlite_repository_update_user_password([web_db_sqlite_repository_update_user_password])
        web_db_sqlite_repository_add_bounty([web_db_sqlite_repository_add_bounty])
        web_db_sqlite_repository__apply_bounty_filters([web_db_sqlite_repository__apply_bounty_filters])
        web_db_sqlite_repository_get_bounties([web_db_sqlite_repository_get_bounties])
        web_db_sqlite_repository_get_total_bounties([web_db_sqlite_repository_get_total_bounties])
        web_router_auth_api_change_pass_change_password([auth_api_change_pass_change_password])
        web_router_auth_api_login_login([auth_api_login_login])
        web_router_logs_api_get_logs_get_logs([logs_api_get_logs_get_logs])
        web_router_logs_api_get_histogram_get_logs_histogram([logs_api_get_histogram_get_logs_histogram])
        web_router_bounty_api_get_bounties_get_bounties([bounty_api_get_bounties_get_bounties])
        web_router_stats_api_get_stats_get_stats([stats_api_get_stats_get_stats])
        web_router_fleet_api_mutate_decky_api_mutate_decky([api_mutate_decky_api_mutate_decky])
        web_router_fleet_api_get_deckies_get_deckies([api_get_deckies_get_deckies])
        web_router_fleet_api_mutate_interval_api_update_mutate_interval([api_mutate_interval_api_update_mutate_interval])
        web_router_fleet_api_deploy_deckies_api_deploy_deckies([api_deploy_deckies_api_deploy_deckies])
        web_router_stream_api_stream_events_stream_events([stream_api_stream_events_stream_events])
        web_router_stream_api_stream_events_event_generator([stream_api_stream_events_event_generator])
    end

    %% Key Connection Edges
    network_detect_interface --> network__run
    network_detect_subnet --> network__run
    network_get_host_ip --> network__run
    network_setup_host_macvlan --> network__run
    network_teardown_host_macvlan --> network__run
    network_setup_host_ipvlan --> network__run
    network_teardown_host_ipvlan --> network__run
    
    ini_loader_load_ini --> ini_loader__parse_configparser
    ini_loader_load_ini_from_string --> ini_loader__parse_configparser
    
    composer_generate_compose --> os_fingerprint_get_os_sysctls
    composer_write_compose --> composer_generate_compose
    
    fleet_resolve_distros --> distros_random_distro
    fleet_build_deckies --> fleet_resolve_distros
    fleet_build_deckies --> config_random_hostname
    fleet_build_deckies_from_ini --> archetypes_get_archetype
    fleet_build_deckies_from_ini --> fleet_all_service_names
    
    cli_deploy --> ini_loader_load_ini
    cli_deploy --> network_detect_interface
    cli_deploy --> fleet_build_deckies_from_ini
    cli_deploy --> engine_deployer_deploy
    
    cli_collect --> collector_worker_log_collector_worker
    cli_mutate --> mutator_engine_run_watch_loop
    
    cli_correlate --> correlation_engine_ingest_file
    cli_correlate --> correlation_engine_traversals
    
    engine_deployer_deploy --> network_ips_to_range
    engine_deployer_deploy --> network_setup_host_macvlan
    engine_deployer_deploy --> composer_write_compose
    engine_deployer_deploy --> engine_deployer__compose_with_retry
    
    engine_deployer_teardown --> network_teardown_host_macvlan
    engine_deployer_teardown --> config_clear_state
    
    collector_worker_log_collector_worker --> collector_worker__stream_container
    collector_worker__stream_container --> collector_worker_parse_rfc5424
    
    mutator_engine_mutate_decky --> composer_write_compose
    mutator_engine_mutate_decky --> engine_deployer__compose_with_retry
    mutator_engine_mutate_all --> mutator_engine_mutate_decky
    mutator_engine_run_watch_loop --> mutator_engine_mutate_all
    
    web_db_sqlite_repository_initialize --> web_db_sqlite_database_init_db
    web_db_sqlite_repository_get_logs --> web_db_sqlite_repository__apply_filters
    
    web_router_auth_api_login_login --> web_auth_verify_password
    web_router_auth_api_login_login --> web_auth_create_access_token
    
    web_router_logs_api_get_logs_get_logs --> web_db_sqlite_repository_get_logs
    web_router_fleet_api_mutate_decky_api_mutate_decky --> mutator_engine_mutate_decky
    web_router_fleet_api_deploy_deckies_api_deploy_deckies --> fleet_build_deckies_from_ini
    
    web_router_stream_api_stream_events_stream_events --> web_db_sqlite_repository_get_logs_after_id
    web_router_stream_api_stream_events_stream_events --> web_router_stream_api_stream_events_event_generator