- Updated the `mikrotik-install.rsc` script to include cumulative packet tracking for dropped and accepted packets, improving visibility into firewall performance.
- Adjusted the JSON report structure to reflect the new packet statistics, ensuring accurate data is sent during synchronization.
- Enhanced logging to provide detailed insights into the synchronization process, including packet counts for better monitoring.
These changes improve the overall functionality and monitoring capabilities of the agent installation and synchronization process.
- Consolidated the `mikrotik-install.rsc` script to utilize a single `evofw-sync` script for improved clarity and efficiency in synchronization processes.
- Removed the legacy `evofw-env` script, simplifying the token management and ensuring a more reliable update mechanism.
- Updated the token generation logic to enhance security and reliability, while ensuring compatibility with RouterOS 7+.
- Adjusted test assertions in `install-links.test.ts` to verify the presence of new script components and ensure accurate testing of the installation logic.
These changes improve the overall robustness and maintainability of the agent installation and synchronization process.
- Refactored the `mikrotik-install.rsc` script to fetch and process the agent policy as JSON instead of using the previous `.rsc` format, improving reliability and performance during policy synchronization.
- Introduced a new global variable `EvofwLastHash` to track the hash of the fetched policy, enabling efficient updates and preventing unnecessary changes.
- Updated the logging and error handling to provide clearer insights during the synchronization process.
- Adjusted related test assertions in `install-links.test.ts` to reflect the new policy endpoint and ensure accurate testing of the installation logic.
- Enhanced documentation in `agents.md` to clarify the new synchronization method and its implications for agent configuration.
These changes enhance the robustness and clarity of the agent installation and synchronization process, ensuring better performance and user experience.
- Modified comments in the `mikrotik-install.rsc` script to clarify the naming convention for filter rules, ensuring consistency with `policy.rsc`.
- Updated the test assertions in `install-links.test.ts` to reflect the new comment names in the firewall filter rules, enhancing test accuracy.
These changes improve the clarity and reliability of the firewall configuration and associated tests.
- Updated the token generation logic in `mikrotik-install.rsc` to use a portable random string method, ensuring compatibility with RouterOS 7+.
- Enhanced the token format to include a random number for better uniqueness, improving security and reliability during agent installation.
These changes enhance the robustness of the installation process for agents, ensuring more reliable token generation.
- Modified the logging statement in `evofw-firewall.sh` to include `default_action` instead of `mode`, ensuring accurate reporting of the applied action during firewall configuration.
- This change enhances clarity in the logs, providing better insights into the firewall's operational state.
- Improved the collection and reporting of agent traffic statistics, including total packets dropped and accepted, to provide a more comprehensive view of agent performance.
- Updated the `evofw-firewall.sh` script to capture and report traffic statistics before chain recreation, ensuring accurate data retention.
- Enhanced the installation script to support updates on already-installed agents, allowing for script and timer refresh without re-enrollment, while preserving existing credentials.
- Refactored UI components to utilize new traffic statistics, improving clarity and user experience in displaying agent performance metrics.
These changes enhance the overall functionality and usability of the agent management system, providing better insights and easier updates for users.
- Implemented a new API endpoint to reset agent statistics, allowing for better management of agent performance data.
- Updated the AgentCard component to display traffic statistics in a consolidated format, improving clarity for users.
- Enhanced the AgentDetailView to include a button for resetting agent stats, providing a direct action for users.
- Refactored the AgentFleetDataGrid to show combined traffic metrics, streamlining data presentation.
- Added a utility function to delete stats samples for agents in the database, ensuring data integrity.
These changes improve the user experience by providing more intuitive controls and clearer data representation for agent statistics.
- Updated the `sourceMeta` function to accept a database parameter, allowing for dynamic retrieval of list names based on list IDs.
- Modified the `ruleTarget` and `ruleSubtitle` functions to utilize the new list name mapping, improving the readability of policy rules in the UI.
- Introduced memoization for list names in the `PolicySetDetailPage`, optimizing performance and ensuring accurate display of list names in the policy rules sortable component.
These changes enhance the user experience by providing clearer and more informative labels for policy rules, facilitating better understanding and management of policies.
- Introduced a new function to resolve EvoBGP community IDs, allowing for better handling of legacy labels and UUIDs.
- Updated `fetchEvobgpCommunity` to return both resolved community IDs and CIDRs, improving data retrieval.
- Enhanced the ListsPage component to manage community IDs separately from user input, ensuring accurate configuration during list creation.
- Updated documentation to reflect changes in community ID resolution and integration with the UI.
This update improves the user experience by ensuring that community IDs are correctly resolved and stored, facilitating smoother interactions with the EvoBGP API.
- Updated `evofw-firewall.sh` and related scripts to replace `policy_mode` with `default_action`, enhancing clarity and consistency in policy management.
- Adjusted agent routes and evaluation logic to accommodate the new default action structure, ensuring backward compatibility with legacy modes.
- Enhanced tests to validate the new default action behavior and its integration within the agent policy framework.
- Refactored related components in the web interface to align with the updated policy handling, improving user experience and reducing confusion around policy modes.
- Updated `evofw-firewall.sh` to correctly handle exit codes from the `curl_policy` function, ensuring proper script termination based on policy retrieval status.
- Enhanced `install.sh` to always use single quotes for configuration values, improving safety for names with spaces, and refined the logic for updating the `KERNEL_BACKEND` in the configuration file.
- Updated documentation to reflect the changes in quoting and exit behavior during installation and synchronization processes.
- Introduced an uninstall script for agents, allowing users to easily remove the agent with a single command.
- Updated `install.sh` to quote configuration values for safety, ensuring compatibility with names containing spaces.
- Enhanced the installation process to include a warning if the uninstall script cannot be downloaded.
- Updated documentation to reflect the new uninstall functionality and changes in configuration file handling.
- Refactored `install.sh` to improve package installation logic, supporting multiple package managers (apt, dnf, yum, apk).
- Added functions to ensure required packages (`curl`, `jq`, `python3`, `nftables`, `iptables`, `ipset`, `cron`) are installed only if missing.
- Implemented systemd timer support for scheduling, with fallback to cron if systemd is unavailable.
- Updated documentation to reflect changes in dependency installation and scheduling mechanisms.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Updated `evofw-firewall.sh` to handle empty deny/allow rule sets, allowing agents without rules to function correctly.
- Improved `install.sh` to ensure the sync script is downloaded before enrollment, with added validation for the script's content.
- Modified agent route to record `lastSeenAt` and `lastSeenIp` during enrollment and policy fetching, ensuring accurate tracking of agent status.
- Added tests to verify that approved agents can fetch an empty policy without rule sets.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Removed the use of `dirname` and `fileURLToPath` for determining the agent scripts directory.
- Introduced `resolveAgentScriptsDir` function to simplify and centralize the path resolution logic in both `agent.ts` and `install-links.ts`.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Added support for policy modes ('blacklist' and 'whitelist') in agent and policy set management.
- Updated API endpoints to handle policy mode during agent assignment and rule operations.
- Enhanced the web UI to display and manage policy modes for agents and rules, ensuring all assigned sets share a consistent mode.
- Introduced new validation to enforce single policy mode across assigned sets for agents.
- Improved error handling for policy mode conflicts and updated documentation accordingly.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Updated the agent enrollment process to include an 'invited' status, allowing for better tracking of agent states.
- Implemented support for install links that can now include an `install_link_id`, facilitating the transition from invited to pending status upon enrollment.
- Enhanced the MikroTik installation script to include the `EvofwInstallLinkId` for better tracking and management.
- Added new API endpoints for fetching agent policies and serving MikroTik-specific installation scripts.
- Improved the web UI to reflect the new agent statuses and provide copyable installation commands for agents.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Added new API endpoints for creating, retrieving, and revoking install links for agents.
- Enhanced the agent installation process with short links accessible via `/agent-install/:id` and `/:slug`.
- Updated the README and documentation to reflect the new installation method and usage instructions.
- Refactored relevant components in the web application to support the new install link feature.
- Improved error handling and validation for install link operations.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Updated API to support structured list entry inputs, allowing for nested list references.
- Improved error handling for list operations to prevent cyclic references.
- Refactored UI components to ensure consistent labeling and navigation for IP lists.
- Enhanced list detail and catalog pages with better filtering and entry management features.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Added endpoints for adding and deleting entries in IP lists.
- Refactored list creation logic to handle manual list types more effectively.
- Updated refresh logic to rebuild manual list entries.
- Improved error handling for entry operations to ensure data integrity.
- Enhanced response structure for list detail retrieval.
Co-authored-by: Cursor <cursoragent@cursor.com>
Правила живут в policy_sets; evaluate мержит назначенные наборы; источник list|CIDR|hostname с кэшем DNS.
Co-authored-by: Cursor <cursoragent@cursor.com>