fetch_ml/internal/api
Jeremie Fraeys c52179dcbe
feat(auth): add token-based access and structured logging
Add comprehensive authentication and authorization enhancements:

- tokens.go: New token management system for public task access and cloning
  * SHA-256 hashed token storage for security
  * Token generation, validation, and automatic cleanup
  * Support for public access and clone permissions

- api_key.go: Extend User struct with Groups field
  * Lab group membership (ml-lab, nlp-group)
  * Integration with permission system for group-based access

- flags.go: Security hardening - migrate to structured logging
  * Replace log.Printf with log/slog to prevent log injection attacks
  * Consistent structured output for all auth warnings
  * Safe handling of file paths and errors in logs

- permissions.go: Add task sharing permission constants
  * PermissionTasksReadOwn: Access own tasks
  * PermissionTasksReadLab: Access lab group tasks
  * PermissionTasksReadAll: Admin/institution-wide access
  * PermissionTasksShare: Grant access to other users
  * PermissionTasksClone: Create copies of shared tasks
  * CanAccessTask() method with visibility checks

- database.go: Improve error handling
  * Add structured error logging on row close failures
2026-03-08 12:51:07 -04:00
..
audit feat: add new API handlers, build scripts, and ADRs 2026-03-04 13:24:27 -05:00
datasets feat(api): integrate scheduler protocol and WebSocket enhancements 2026-02-26 12:05:57 -05:00
groups feat(auth): add token-based access and structured logging 2026-03-08 12:51:07 -04:00
helpers feat(api): integrate scheduler protocol and WebSocket enhancements 2026-02-26 12:05:57 -05:00
jobs feat(auth): add token-based access and structured logging 2026-03-08 12:51:07 -04:00
jupyter feat(auth): add token-based access and structured logging 2026-03-08 12:51:07 -04:00
middleware refactor(api): internal refactoring for TUI and worker modules 2026-02-20 15:51:23 -05:00
plugins feat: add new API handlers, build scripts, and ADRs 2026-03-04 13:24:27 -05:00
responses refactor(api): internal refactoring for TUI and worker modules 2026-02-20 15:51:23 -05:00
scheduler feat(auth): add token-based access and structured logging 2026-03-08 12:51:07 -04:00
tokens feat(auth): add token-based access and structured logging 2026-03-08 12:51:07 -04:00
validate refactor: Phase 5 complete - API packages extracted 2026-02-17 13:25:58 -05:00
ws feat(auth): add token-based access and structured logging 2026-03-08 12:51:07 -04:00
adapter.go feat(auth): add token-based access and structured logging 2026-03-08 12:51:07 -04:00
factory.go feat(auth): add token-based access and structured logging 2026-03-08 12:51:07 -04:00
health.go feat(api): integrate scheduler protocol and WebSocket enhancements 2026-02-26 12:05:57 -05:00
metrics_middleware.go feat(api): refactor websocket handlers; add health and prometheus middleware 2026-01-05 12:31:07 -05:00
middleware.go refactor(api): internal refactoring for TUI and worker modules 2026-02-20 15:51:23 -05:00
monitoring_config.go feat(api): integrate scheduler protocol and WebSocket enhancements 2026-02-26 12:05:57 -05:00
protocol.go feat(api): integrate scheduler protocol and WebSocket enhancements 2026-02-26 12:05:57 -05:00
routes.go feat(auth): add token-based access and structured logging 2026-03-08 12:51:07 -04:00
server.go api: regenerate OpenAPI types and server code 2026-03-04 13:23:34 -05:00
server_config.go api: regenerate OpenAPI types and server code 2026-03-04 13:23:34 -05:00
server_gen.go api: regenerate OpenAPI types and server code 2026-03-04 13:23:34 -05:00
spec_embed.go feat: add new API handlers, build scripts, and ADRs 2026-03-04 13:24:27 -05:00
ws_protocol.go refactor: improve API structure and WebSocket protocol 2026-02-16 20:38:12 -05:00