Skip to content

Implement wildcard support for path filtering#117

Open
devprjgithub wants to merge 1 commit into
pylorak:masterfrom
devprjgithub:feature/wildcard
Open

Implement wildcard support for path filtering#117
devprjgithub wants to merge 1 commit into
pylorak:masterfrom
devprjgithub:feature/wildcard

Conversation

@devprjgithub

Copy link
Copy Markdown

Overview
Introduces a new mechanism to handle firewall exceptions for applications with dynamic paths (e.g., installers or versioned folders) using wildcard patterns.
Feature Workflow

Trigger: A new button is available in the Application Exception dialog, enabled specifically when an executable-type
    application is selected.
User Interface: Clicking the button opens a dedicated dialog containing:
    A read-only field displaying the original full path.
    An editable field where users can define a wildcard pattern (supporting * and ? symbols).
Validation: The dialog ensures the user-provided pattern correctly matches the original path and contains
     at least one wildcard symbol before saving.

Background Logic

Monitoring: A background controller polls the firewall logs every 5 minutes.
Pattern Matching: The system evaluates blocked entries against all active wildcard exception patterns.
Automatic Provisioning: If a match is found, a new static firewall exception is created only if the specific
     path does not already exist in the exception list. This new entry inherits all policies and settings
     from the original wildcard rule.

AI Disclosure

Logic & Localization: Core validation logic and all localization  (.resx) were generated/translated with
    the assistance of AI (GitHub Copilot/Large Language Models) to ensure comprehensive language
    support and rapid implementation.
Verification: All AI-generated code and translations have been manually reviewed for technical
    accuracy and project alignment.

@pylorak

pylorak commented Apr 21, 2026

Copy link
Copy Markdown
Owner

Hi! This is such a frequently requested feature, you're going to be a star among TinyWall users! As I said just recently (here) I'm just about to leave for two weeks but I should be able to merge contributions when I get back in May. So I kindly ask for your patience until then.

I've skimmed through your changes though, and I'd suggest a couple of improvements. Could you take a look at them? (see below)

@pylorak

pylorak commented Apr 21, 2026

Copy link
Copy Markdown
Owner

Linking relevant issue #4 .

@devprjgithub

Copy link
Copy Markdown
Author

I am not sure which improvements you are referring to, though I noticed a few points myself.
First, regarding efficiency: the suggested implementation polls the service logs every five minutes. While I believe polling is unavoidable, the efficiency criteria should be clearly defined, especially for the front-end.
Second, providing user notifications (such as balloon tips based on the TinyWall UI concept) somewhat conflicts with efficiency. To ensure a user actually sees a notification, the system must poll every few seconds to detect activity and trigger the balloon only when the user is active.
Regardless, you have created an excellent project. I’ve used it for so many years that I can’t even remember when I first installed it. I like it a lot, though I did miss having path filtering. That missing feature is actually why I chose your project as a 'learning curve' for working with AI agents. I am relatively new to C# WinForms, and since I exhausted my AI free-tier limit in just four days, I am currently unable to continue.

@pylorak

pylorak commented Apr 22, 2026

Copy link
Copy Markdown
Owner

I am not sure which improvements you are referring to

I am referring to the three review items I wrote after that. To sum them up briefly, 1) using directory watchers instead of polling, 2) checking regex security, and 3) validating executable signatures. Are these not showing to you for some reason? I think you need to be logged in to see them.

Second, providing user notifications (such as balloon tips based on the TinyWall UI concept) somewhat conflicts with efficiency. To ensure a user actually sees a notification, the system must poll every few seconds to detect activity and trigger the balloon only when the user is active.

It's okay, a popup or notification is optional. Would gladly pull even without it, given other things are alright.

Regardless, you have created an excellent project. I’ve used it for so many years that I can’t even remember when I first installed it. I like it a lot, though I did miss having path filtering. That missing feature is actually why I chose your project as a 'learning curve' for working with AI agents. I am relatively new to C# WinForms, and since I exhausted my AI free-tier limit in just four days, I am currently unable to continue.

If you cannot continue that's unfortunate, but your work is still important and will serve as a good starting point. I'm looking forward to having some kind of 'path wildcard' feature in TinyWall in the future. Maybe somebody else will handle the review items, or if not, I will (though that'll be slow as things stand right now).

@pplupo

pplupo commented Jun 23, 2026

Copy link
Copy Markdown

Thank you for your contribution, @devprjgithub . When does your quota reset?
One thing that I do is to have Antigravity, Cursor, Windsurf, and Copilot all installed. When the free quota of one is exhausted, I move on to the other. You may want to try that. Very often, the quotas reset before I cycle through all of them.

@GabrielOnDelphi

Copy link
Copy Markdown

I am interested in this update. 10x

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants