BeiBaiNian opened a new pull request, #187: URL: https://github.com/apache/casbin-gateway/pull/187
This PR is part of issue #179 "make a UI-first LLM API security gateway". Channel management is the data foundation layer (milestone 1.1) that stores LLM upstream provider credentials (API keys and base URLs) for downstream routing (1.2) and token-based access control (1.3). ## What changed - Added object/channel.go: Channel data model with owner+name composite primary key, CRUD operations, ApiKey masking, SSRF-protected connectivity testing, and field-level update to prevent concurrent ApiKey overwrites. - Added controllers/channel.go: Six API endpoints (get-channels, get-channel, add-channel, update-channel, delete-channel, test-channel) with owner-based tenant isolation and admin cross-owner query support. - Added web/src/ChannelListPage.js: Channel list page with create/delete actions. - Added web/src/ChannelEditPage.js: Channel edit page with form fields and connectivity test button. - Added web/src/backend/ChannelBackend.js: Frontend API client for all six channel endpoints. - Modified object/ormer.go: Registered Channel table in createTable(). - Modified routers/router.go: Registered six channel routes. - Modified web/src/App.js: Added Channels menu item and routes. ## Verification - go build ./... passed. - go vet ./... passed (pre-existing unreachable code in service/proxy.go is unrelated). - cd web && yarn run build passed (Compiled successfully). - MySQL table structure verified: 11 columns matching the Channel struct. - SQL CRUD tests: insert, query, duplicate rejection, delete all passed. - API: test-channel endpoint returns 200 OK with proper response body. - Frontend: Channel list page renders, create/edit/delete/test actions functional. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
