Commit Graph

361 Commits

Author SHA1 Message Date
Wikid82
d2f0226679 fix: resolve TypeScript any types and unused variable warnings 2025-11-28 06:27:00 +00:00
Wikid82
74d7bf2ac3 feat: enhance Access List management with delete confirmation and backup functionality 2025-11-28 05:52:17 +00:00
Wikid82
a4cff3c194 feat: Add security presets and related tests
- Implemented new security presets for access control lists, including geo-blacklist and known botnet IPs.
- Added tests for security presets functionality, including validation of preset structure and category/type checks.
- Created hooks for Docker and domains with comprehensive tests for fetching, creating, and deleting domains.
- Removed unused HealthStatus component.
- Updated ProxyHosts bulk delete tests to reflect changes in selection logic.
- Introduced integration test script for automated testing of proxy host creation and validation.
2025-11-28 02:54:44 +00:00
Wikid82
fc27b5c42e feat: add security presets and block list recommendations for ACLs
- Add security preset system with curated threat intelligence
  - High-Risk Countries preset (RU, CN, KP, IR, etc.) ~800M IPs
  - Expanded Threat List preset ~1.2B IPs
  - Cloud Scanner IPs preset (Shodan, Censys) ~3K IPs
  - Tor Exit Nodes preset ~1.2K IPs (changes daily)
- Add tooltips linking to data sources (SANS ISC, Spamhaus, Tor Project)
- Add 'Get My IP' button to quickly add current IP to allowlist
- Add IP range calculator showing total IPs covered by rules
- Emphasize block lists over allow lists in UI
  - Renamed UI labels to show 'Recommended' for block lists
  - Added info box explaining why block lists are safer
- Add /system/my-ip API endpoint to fetch user's public IP
  - Handles X-Forwarded-For, X-Real-IP, CF-Connecting-IP headers
  - Returns IP and source (direct, proxy, Cloudflare, etc.)
- Add ARIA attributes to ProxyHosts checkboxes for accessibility

Block lists prevent lockouts while maintaining security by blocking
known threats instead of requiring explicit allow lists that can
inadvertently block legitimate users (especially CGNAT/mobile users).

Note: Bulk delete tests need refinement (event simulation) - tracked
separately.
2025-11-28 00:05:11 +00:00
Wikid82
ab334a2315 feat: add bulk delete with auto-backup and improve bulk actions UX
- Add bulk delete button with automatic backup creation before deletion
- Move checkbox column to the right side of the table
- Show '(all)' indicator when all hosts are selected
- Add comprehensive delete confirmation modal listing affected hosts
- Rename 'Bulk Actions' button to 'Manage ACL' for clarity
- Add CGNAT warning banner in Access Lists page
  - Explains why mobile/CGNAT connections may be blocked
  - Provides solutions for locked-out users
  - Includes tips for T-Mobile 5G, Starlink, and other CGNAT ISPs
- Improve error messaging and loading states

Addresses common CGNAT issues where geo-blocking fails due to
data center IP addresses appearing instead of user's location.
2025-11-27 17:43:20 +00:00
Wikid82
33e91e21c5 Remove obsolete implementation documents and scripts; delete SECURITY_IMPLEMENTATION_PLAN.md, VERSIONING_IMPLEMENTATION.md, cookies.txt, create_issues.sh, and frontend coverage report. 2025-11-27 16:11:02 +00:00
Wikid82
05321e3a59 feat: implement bulk ACL application feature for proxy hosts 2025-11-27 14:55:00 +00:00
Wikid82
429de10f0f feat: implement access list management with CRUD operations and IP testing
- Added API integration for access lists including listing, creating, updating, deleting, and testing IPs against access lists.
- Created AccessListForm component for creating and editing access lists with validation.
- Developed AccessListSelector component for selecting access lists with detailed display of selected ACL.
- Implemented hooks for managing access lists and handling API interactions.
- Added tests for AccessListSelector and useAccessLists hooks to ensure functionality.
- Enhanced AccessLists page with UI for managing access lists, including create, edit, delete, and test IP features.
2025-11-27 08:55:29 +00:00
Wikid82
51664416b6 feat: Enhance ProxyHost configuration with application presets and internal IP support 2025-11-27 03:54:41 +00:00
Wikid82
1efc18940c feat: enable security services in docker-compose and update logs navigation 2025-11-26 21:07:24 +00:00
Wikid82
6e646eee3c fix: update security docs link and workflow base path 2025-11-26 18:53:10 +00:00
Wikid82
58edf44f3c feat: update security configuration and documentation for new service modes 2025-11-26 18:47:31 +00:00
Wikid82
c8a452f1a0 feat: implement modular security services with CrowdSec and WAF integration 2025-11-26 18:35:14 +00:00
Wikid82
06d0aca8a4 feat: update favicon and adjust logo/banner display in layout 2025-11-26 14:23:44 +00:00
Jeremy
7465a24347 Merge pull request #239 from Wikid82/development
Propagate changes from development into feature/beta-release
2025-11-26 08:37:18 -05:00
renovate[bot]
9177737a60 fix(deps): update npm minor/patch 2025-11-26 09:53:57 +00:00
Wikid82
ba05c5e945 feat: adjust banner image layout for better alignment and size 2025-11-26 04:05:37 +00:00
Wikid82
20cf3d1010 feat: update banner image dimensions for improved responsiveness 2025-11-26 03:57:18 +00:00
Wikid82
e459978797 feat: replace title with banner image in mobile header and main layout 2025-11-26 03:49:47 +00:00
Jeremy
5307b4fe5e Merge branch 'feature/beta-release' into development 2025-11-25 22:49:03 -05:00
Wikid82
b2cd09ae24 feat: add new public assets and update pre-commit configuration for large files 2025-11-25 22:11:03 -05:00
Wikid82
a52108bfd1 feat: update MonitorCard layout for improved status display and settings access 2025-11-26 01:45:46 +00:00
Wikid82
3015682394 feat: enhance MonitorCard layout with status badge and settings button 2025-11-26 01:41:15 +00:00
Wikid82
a8a95793b7 fix: adjust styling for MonitorCard status indicator for better alignment 2025-11-26 01:34:08 +00:00
Wikid82
56903b0e06 chore: clean up unused files and empty code blocks 2025-11-26 01:12:52 +00:00
Wikid82
4f03021c9c refactor: remove security-related hooks and pages
- Deleted `useSecurity.ts` hook which managed authentication users, providers, and policies.
- Removed `Policies.tsx`, `Providers.tsx`, and `Users.tsx` pages that utilized the above hook.
- Cleaned up the `index.tsx` file in the Security section to remove references to the deleted pages.
- Updated mock data by removing unused properties related to forward authentication.
2025-11-26 00:02:15 +00:00
Wikid82
b1fdcfbb1b feat: add HelpTooltip component for improved OAuth field guidance 2025-11-25 22:23:02 +00:00
Wikid82
a3c164a394 refactor: update error handling to use unknown type for better type safety 2025-11-25 22:08:54 +00:00
renovate[bot]
69863ae6fb fix(deps): update npm minor/patch (#235)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-25 20:57:52 +00:00
Wikid82
68db3b1926 fix: adjust modal width and tooltip positioning in Providers component 2025-11-25 18:36:10 +00:00
Wikid82
8c36a8dee4 feat: add support for additional emails in user management and update related configurations 2025-11-25 18:30:16 +00:00
Wikid82
07be2155be Refactor Security Management: Split Security page into Users, Providers, and Policies components; remove deprecated Security component; implement CRUD functionality for users, providers, and policies; enhance Uptime page with monitor editing capabilities. 2025-11-25 14:53:06 +00:00
Wikid82
7a1f577771 feat: add forward authentication configuration and UI
- Introduced ForwardAuthConfig model to store global forward authentication settings.
- Updated Manager to fetch and apply forward authentication configuration.
- Added ForwardAuthHandler to create a reverse proxy handler for authentication.
- Enhanced ProxyHost model to include forward authentication options.
- Created Security page and ForwardAuthSettings component for managing authentication settings.
- Implemented API endpoints for fetching and updating forward authentication configuration.
- Added tests for new functionality including validation and error handling.
- Updated frontend components to support forward authentication settings.
2025-11-25 13:25:05 +00:00
Jeremy
6f82659d14 Merge pull request #226 from Wikid82/development
Propagate changes from development into feature/beta-release
2025-11-24 23:18:52 -05:00
renovate[bot]
16c113580d fix(deps): update npm minor/patch (#225)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-25 04:12:08 +00:00
Wikid82
78b782974e feat: add custom name handling for proxy hosts and enhance import functionality 2025-11-25 03:50:23 +00:00
Wikid82
dea012d471 feat: improve sorting logic in CertificateList by adding block scope for case statements 2025-11-25 02:52:35 +00:00
Wikid82
cc6bc7d6d6 feat: add name field to ProxyHost and implement sorting functionality in ProxyHosts and CertificateList components 2025-11-25 02:50:32 +00:00
Wikid82
ea034ba102 feat: enhance SSL detection in importer and improve certificate status handling in ProxyHosts 2025-11-25 02:31:02 +00:00
Wikid82
72975c674a feat: enhance certificate handling with staging support and update UI for untrusted status 2025-11-25 01:53:58 +00:00
Wikid82
017ee4f8bd feat: clean up invalid Let's Encrypt certificate associations and update UI to reflect custom certificate usage 2025-11-25 01:18:11 +00:00
Wikid82
5bfe923e37 feat: add Certificate interface and update ProxyHostForm and ProxyHosts components to display certificate details 2025-11-25 01:06:45 +00:00
Wikid82
0415f5da77 feat: enhance import handling with overwrite support and detailed conflict resolution
feat: add subroute handler extraction for improved Caddyfile parsing
test: add tests for subroute handler extraction functionality
fix: update UI to display staging certificate status and improve dashboard metrics
docs: clarify staging certificate deletion process in ACME documentation
2025-11-25 00:35:42 +00:00
Wikid82
897959a621 feat: enhance import handling with detailed conflict resolution and UI updates 2025-11-24 23:48:25 +00:00
Wikid82
ad98d9fea2 feat: add multi-file upload and import detection endpoints to ImportHandler 2025-11-24 18:55:53 +00:00
Wikid82
6feff3e8ce chore: remove cashed 2025-11-24 18:22:01 +00:00
Wikid82
9c842e7eab chore: remove cached 2025-11-24 18:21:11 +00:00
Wikid82
a698dff33a feat: implement transient import previews and persist-on-commit
- Refactor import handler to support transient previews for uploads and mounted Caddyfiles
- Import sessions are now created only when user commits (not on upload/mount)
- Upload endpoint saves files to import/uploads/<uuid>.caddyfile and returns preview without DB persistence
- GetPreview supports both DB-backed sessions and transient previews from mountPath
- Commit endpoint handles both DB sessions and transient uploads/mounts, persisting session on commit
- Cancel endpoint removes DB sessions or deletes transient uploaded files
- CheckMountedImport no longer auto-creates DB sessions (transient preview behavior)
- Add conflict detection for transient previews against existing ProxyHosts
- Update importer to return raw domain names in conflicts array instead of formatted messages
- Fix import handler Cancel to return 404 for non-existent sessions
- Update all tests to match new transient preview behavior
- Install Node.js 20.x for pre-commit hooks
- Adjust coverage threshold to 78% (78.2% actual)
2025-11-24 17:43:55 +00:00
Wikid82
9f54438955 Add tests for error handling in backup, notification, and proxy host handlers; enhance certificate service with persistence tests; refactor backup service for scheduled backups; improve frontend form handling and add API tests for certificates, domains, and proxy hosts; implement frontend test coverage script. 2025-11-24 03:52:37 +00:00
Wikid82
1fb3e59824 refactor: Clean up formatting and spacing in Notifications and Uptime components 2025-11-24 00:51:08 +00:00