Commit Graph

735 Commits

Author SHA1 Message Date
yusing
54fb962ce8 fix(api): conditionally set Gin mode to release based on debug flag 2025-09-04 06:39:39 +08:00
yusing
1e090ffa0a feat(metrics): enhance Entries structure with historical data validation and JSON serialization
- Added addWithTime method to allow adding entries with specific timestamps.
- Introduced validateInterval and fixInterval methods for interval validation and correction.
- Implemented GetJSON method for serializing entries to JSON format.
- Added unit tests for GetJSON functionality to ensure correct output for both full and partial entries.
- Updated Poller to validate and fix intervals after loading data from JSON.
2025-09-04 06:38:07 +08:00
yusing
1617a4d54f refactor(metrics): update uptime metrics structure and calculations
- Changed Latency type from int64 to int32 in Status struct.
- Updated RouteStatuses and RouteAggregate to use slices of Status instead of pointers.
- Modified aggregateStatuses and calculateInfo functions to accommodate new types.
- Enhanced RouteAggregate with additional fields: IsDocker and CurrentStatus.
- Improved sorting logic for route statuses and added handling for excluded routes.
2025-09-04 06:37:24 +08:00
yusing
90fb9f0dcc feat(websocket): enhance PeriodicWrite with deduplication support and add Context method
- Updated PeriodicWrite to accept a deduplication function for optimized data writing.
- Introduced Context method to retrieve the manager's context.
- Added logging for WebSocket connection closure with error details.
2025-09-04 06:37:06 +08:00
yusing
54ae580645 refactor(logging): replace byte pool with GetBytesPoolWithUniqueMemory for access logger and rotation 2025-09-04 06:36:51 +08:00
yusing
20105534c7 feat(api): add GetContainer endpoint and Docker host ID mapping
- Implemented GetContainer function to retrieve container details by ID.
- Introduced idDockerHostMap for mapping container IDs to Docker hosts.
- Updated Container struct to allow omitting the State field in JSON responses.
2025-09-04 06:36:02 +08:00
yusing
90738a6809 refactor(api): remove server param from docker logs api
- renamed `container` param  to `id`
- implemented container id to docker host lookup
2025-09-04 06:35:15 +08:00
yusing
920aed7bee fix(rules): add swaggertype annotations for On and Do fields in Rule struct 2025-09-04 06:34:31 +08:00
yusing
9ab00e3902 refactor(routes): unify route existence checks and remove 'All' route pool 2025-09-04 06:34:19 +08:00
yusing
0edad7377a feat(homepage): implement SearchRoute method and enhance item configuration with sorting and visibility features, introduce All and Favorite categories 2025-09-04 06:31:44 +08:00
yusing
7753c90a7e feat(homepage): implement SearchRoute method and enhance item configuration with sorting and visibility features, introduce All and Favorite categories 2025-09-04 06:30:37 +08:00
yusing
866b95f85b feat(container): add State field to Container type 2025-09-04 06:28:55 +08:00
yusing
0814ca4451 feat(websocket): add deduplication support to PeriodicWrite function and introduce DeepEqual utility 2025-09-04 06:28:14 +08:00
yusing
2c6690b2d0 refactor(middleware): replace Cloudflare IP range fetching with bytes.Lines 2025-09-04 06:25:14 +08:00
yusing
cc00859963 refactor(metrics): optimize JSON marshaling in SystemInfo and Aggregated structures for improved performance and memory management 2025-09-04 06:25:07 +08:00
yusing
c2cdaacab5 fix(api): correct error formatting 2025-09-04 06:22:39 +08:00
yusing
a8beb2d92f fix(metrics): non ws response being encoded twice; simplified response handling 2025-09-04 06:22:06 +08:00
yusing
0a5438b18b refactor(auth): remove GET method from /auth/callback endpoint and update Swagger documentation 2025-09-04 06:21:42 +08:00
yusing
0aa2a480b5 refactor(websocket): enhance connection management by ensuring resources are released on context cancellation 2025-09-04 06:21:30 +08:00
yusing
755cbd7aec refactor(metrics): remove pointers from type parameter T to avoid unnecessary indirection 2025-09-04 06:19:40 +08:00
yusing
199b8fad20 refactor(real_ip): move header check before everything else 2025-09-04 06:19:16 +08:00
yusing
c8292a1f38 fix(docker): treat containers from $DOCKER_HOST as local 2025-09-03 22:34:35 +08:00
yusing
89bb117397 feat(route): add ExcludedReason field 2025-09-03 22:34:29 +08:00
yusing
ceb1e45af5 fix(api): conditionally enable auth APIs based on auth configuration 2025-09-03 22:34:20 +08:00
yusing
a56de3de08 refactor(homepage): improve icon search functionality and add case-insensitive string matching 2025-09-03 22:34:10 +08:00
yusing
8339c42470 refactor(middleware): simplify buffer allocation in themed middleware 2025-09-02 23:28:47 +08:00
yusing
ed39942d65 feat(api): implement caching middleware and allow favicons to be cached 2025-09-02 23:00:22 +08:00
yusing
aac5016b78 refactor(httpheaders): replace strutils.SplitComma with strings.SplitSeq 2025-09-02 22:58:46 +08:00
yusing
d2b4d3e6e3 feat(auth): enhance cookieDomain function to support additional local domains 2025-09-02 22:58:24 +08:00
yusing
a2d4c468cd refactor(forwardauth): finalize middleware implementation with better headers handling 2025-09-02 22:58:13 +08:00
yusing
c550255458 feat(middledware): middleware-specific logging methods 2025-09-02 22:56:30 +08:00
yusing
6a3e28dfd7 fix(config): handle missing config file and middleware directory gracefully and log a warning 2025-09-02 22:55:43 +08:00
yusing
4513c221d5 refactor(modifyhtml): improved memory manangement and response body handling 2025-09-02 22:55:24 +08:00
yusing
245dba034e feat(io): introduce ReadAllBody and HookCloser for enhanced response handling and resource management 2025-09-02 22:53:54 +08:00
yusing
f39896fe30 refactor(handler): move version API out of auth and remove Swagger routes 2025-09-02 22:50:57 +08:00
yusing
b051987a1c refactor: apply renamed NewBytesPool with GetBytesPool 2025-09-02 22:50:57 +08:00
yusing
c128557c81 chore: update dependencies 2025-09-02 22:50:57 +08:00
yusing
6405325e56 Refactor(websocket): remove unused code 2025-09-02 22:50:57 +08:00
yusing
c3d2a90501 fix(websocket): ensure resources are properly released by closing the manager in PeriodicWrite function 2025-09-02 22:50:57 +08:00
yusing
31d49453a7 feat(pool): introduce BytesPoolWithMemory for optimized memory management and add benchmark for memory usage 2025-09-02 22:50:57 +08:00
yusing
04657420b8 refactor(websocket): enable compression for WebSocket connections to improve performance, removed buffer size to use HTTP buffer 2025-09-02 22:50:57 +08:00
FrozenFrog
2f0b8b6c09 Add TinyAuth forward-auth middleware implementation (#143)
* feat: add tinyauth middleware

---------

Co-authored-by: yusing <yusing@6uo.me>
2025-09-02 17:43:34 +08:00
yusing
5e15fd4bbe fix(fileserver): correct middleware handler to avoid self recursion 2025-08-19 22:26:38 +08:00
yusing
a5022e31a2 fix(auth,oidc): added GET method /auth/callback endpoint to fix OIDC 404 and update documentation accordingly 2025-08-19 22:26:30 +08:00
yusing
a057f0e956 fix(homepage): incorrect url
- fixed url being overridden
- fixed sub-subdomain being stripped
- fixed empty url for routes with FQDN aliases
2025-08-19 21:01:04 +08:00
yusing
dfe0014609 fix(route): handle subdomain removal in URL construction for homepage items 2025-08-18 20:46:59 +08:00
yusing
dfc2d5e35c feat(handler): add SkipOriginCheckMiddleware and configuration option to bypass origin checks 2025-08-17 20:46:26 +08:00
yusing
d3bfb2488b refactor(handler): simplifying code applying auth middleware 2025-08-17 20:41:46 +08:00
yusing
1c7e3e42f8 refactor(websocket): simplify NewManagerWithUpgrade function to use context for custom upgrader 2025-08-17 20:23:57 +08:00
yusing
e14d6baedb fix(agent): change request binding from query to JSON and update hostport formatting 2025-08-17 19:45:08 +08:00