v0.68.0
hongfz16/EVA3Dv0.68.0Mar 20, 2026by fatedier
AI Summary
Added a built-in store capability for frpc including persisted storage and CRUD APIs, improved TOML config parsing, and optimized OIDC authentication and build processes.
Key Highlights
- Built-in store capability for frpc with persisted storage, CRUD APIs, and dashboard pages
- Improved TOML config parsing with position details and type mismatch reporting
- OIDC token caching to prevent frequent refresh requests
- Added `noweb` build tag for compiling without frontend assets
New Features
- Store CRUD admin APIs (/api/store/proxies*, /api/store/visitors*)
- Store management pages in frpc web dashboard
- Config parsing errors return immediate position details
- OIDC auth caches access token and refreshes before expiry
Full Release Notes
## Features * Added a built-in `store` capability for frpc, including persisted store source (`[store] path = "..."`), Store CRUD admin APIs (`/api/store/proxies*`, `/api/store/visitors*`) with runtime reload, and Store management pages in the frpc web dashboard. ## Improvements * Kept proxy/visitor names as raw config names during completion; moved user-prefix handling to explicit wire-level naming logic. * Added `noweb` build tag to allow compiling without frontend assets. `make build` now auto-detects missing `web/*/dist` directories and skips embedding, so a fresh clone can build without running `make web` first. The dashboard gracefully returns 404 when assets are not embedded. * Improved config parsing errors: for `.toml` files, syntax errors now return immediately with parser position details (line/column when available) instead of falling through to YAML/JSON parsing, and TOML type mismatches report field-level errors without misleading line numbers. * OIDC auth now caches the access token and refreshes it before expiry, avoiding a new token request on every heartbeat. Falls back to per-request fetch when the provider omits `expires_in`.