Commit Graph

26 Commits

Author SHA1 Message Date
opencode db397a14bc fix: security hardening, validation, cache and analytics fixes
Build & Push Docker Image / build (push) Successful in 4m32s
Backend security:
- Admin-gate /admin/redundancy (GET+POST) with zod validation and tool existence checks
- Restrict CORS to same-origin (plus CORS_ORIGIN allowlist) and SameSite=Lax cookie
- Validate returnTo to prevent open redirect in the OIDC flow
- Validate/coerce relations body, reject self-relations and non-admin 'recommended'
- Add central JSON error middleware (no more Express HTML 500s)
- Fail fast at startup when SESSION_SECRET/VOTER_SECRET missing in production

Backend correctness:
- Stop leaking voterToken in the create-rating response
- Allow clearing websiteUrl/iconUrl (nullable in UpdateToolBody, frontend sends null)
- Regenerate session after login/callback (session fixation) and add OIDC state check
- Block self-demotion and last-admin demotion in user PATCH
- Set created_by to NULL on user delete (FK-safe)
- Validate cost create/update bodies with zod
- Unique index (tool_id, voter_token) + 409 on race duplicate ratings
- Clamp audit limit, escape ilike wildcards in search, O(N) analytics queries

Frontend:
- tools-browse reads and syncs URL query params (fixes home 'View all' links)
- Invalidate analytics/top-tools/categories/features caches after mutations
- Sync category combobox input when the value changes externally
- Hide Write a Review for anonymous users, drop unreachable rating guard
2026-08-01 19:11:00 +02:00
opencode 0c6a35e841 fix: category cache refresh, API 404, redundancy mapping, cost/relation authz, voterToken exposure
Build & Push Docker Image / build (push) Successful in 8m33s
- Invalidate categories/features queries after creating/editing tools so new
  categories appear immediately in search, browse dropdown and tool form
- Always refetch categories/features when the combobox/suggestion inputs mount
- Return JSON 404 for unmatched /api routes instead of the SPA index.html
- Read the manually confirmed 'better tool' from the recommendation notes
  instead of using the min tool id in the redundancy dashboard
- Require admin for cost/relation update+delete endpoints
- Stop exposing the voter token in the ratings list response
- Fix parseInt type error on user id params (Express 5 params typing)
2026-08-01 15:25:06 +02:00
henry fd51146049 Update artifacts/api-server/src/app.ts
Build & Push Docker Image / build (push) Successful in 1m48s
2026-07-31 17:32:00 +00:00
root 5d71e60e7d feat: Docker Compose support 2026-07-30 00:19:31 +02:00
root 857d2e11a8 feat: automatic recommendations + manual evaluation in redundancy analysis 2026-07-29 23:51:28 +02:00
root 44cc29b8fe feat: billing period for subscriptions, costs in redundancy analysis 2026-07-29 23:46:58 +02:00
root deabe36727 fix: customFetch returns parsed body, not Response object 2026-07-29 23:38:39 +02:00
root 331bdd0957 fix: clean login page, avoid esbuild regex parse error 2026-07-29 23:33:19 +02:00
root 5115d13616 fix: use ArrowLeft icon instead of HTML entity in login page 2026-07-29 23:28:04 +02:00
root 7bda8f95f3 feat: back-to-home links on login and 404 pages 2026-07-29 23:19:27 +02:00
root 45f0b80055 feat: costs UI on tool detail + tier badge in sidebar 2026-07-29 23:18:19 +02:00
root ba413f5ee9 fix: use static SQL for user column migration 2026-07-29 23:08:22 +02:00
root 7bfdac6104 fix: add migration for new user columns (tier, auth_provider, etc.) 2026-07-29 22:50:15 +02:00
root 59badeaa48 feat: auth foundation, similar tools, costs, redundancy, anonymous voting 2026-07-29 21:59:29 +02:00
root 8b3b7c9955 remove Replit branding (meta description, dev banner) 2026-07-29 20:18:10 +02:00
root 612ada8849 fix: tool card category badge overflow on narrow viewports 2026-07-29 20:17:39 +02:00
root bdab4c3198 fix: create sessions table before server listens to avoid race condition 2026-07-29 20:05:28 +02:00
root a569bba5e1 fix: add sessions table to Drizzle schema + auto-create at startup 2026-07-29 20:04:15 +02:00
root 4e0861df71 Fix Login: Session-Cookies via Vite-Proxy + credentials:include
- Vite-Proxy für /api/* zum Express-Backend (localhost:8080)
- credentials: 'include' in customFetch für Cross-Origin-Cookie-Support
- Behebt: Login-Response-Set-Cookie wurde vom Browser ignoriert
2026-07-29 19:29:46 +02:00
cheffe01 655adf87c0 Add Zod dependency to enable user API functionalities
Adds `zod` as a direct dependency to the `api-server` package, resolving the import error in `users.ts` and enabling user-related API functionalities.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 0edbd41f-69af-4bb4-88a4-f5fecc8b2778
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 00bfe0e8-1c2f-4283-95aa-5bc19de2c811
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/0683fb79-a27c-485c-9333-5f4b288c4567/0edbd41f-69af-4bb4-88a4-f5fecc8b2778/4wtolMS
Replit-Helium-Checkpoint-Created: true
2026-05-26 05:47:52 +00:00
cheffe01 639db16cda Update site image for tool rating platform
Update the opengraph image for the tool rating web application.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 776963d0-f75d-42e2-a57b-cc36bdff8495
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 8cb50e9e-a03c-477e-9edc-701d6694d251
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/0683fb79-a27c-485c-9333-5f4b288c4567/776963d0-f75d-42e2-a57b-cc36bdff8495/YXrqCZJ
Replit-Helium-Checkpoint-Created: true
2026-05-25 23:34:07 +00:00
cheffe01 c5ca3ca992 Add local user authentication and admin capabilities
Implement local user authentication with password hashing, add admin roles for user management and audit log viewing, and introduce audit logging for critical actions.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 776963d0-f75d-42e2-a57b-cc36bdff8495
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 832a44ff-12ae-4096-8a0d-666ec083d536
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/0683fb79-a27c-485c-9333-5f4b288c4567/776963d0-f75d-42e2-a57b-cc36bdff8495/1p7jhzu
Replit-Helium-Checkpoint-Created: true
2026-05-25 14:11:02 +00:00
cheffe01 b8ba53598d Add icon support for tools and improve analytics chart display
Update API, database schema, and frontend components to allow optional icons for tools, and adjust analytics chart rendering for better visibility.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 776963d0-f75d-42e2-a57b-cc36bdff8495
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 0ad0b686-eebd-46d2-8314-67e9e874e224
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/0683fb79-a27c-485c-9333-5f4b288c4567/776963d0-f75d-42e2-a57b-cc36bdff8495/1p7jhzu
Replit-Helium-Checkpoint-Created: true
2026-05-25 13:28:34 +00:00
cheffe01 7abb048edc Add user authentication and dynamic feature/category inputs
Implement Keycloak authentication, protected routes, and add combobox and autocomplete components for tool categories and features.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 776963d0-f75d-42e2-a57b-cc36bdff8495
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 0b145113-c016-4f54-b000-13bd3b0ba8f0
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/0683fb79-a27c-485c-9333-5f4b288c4567/776963d0-f75d-42e2-a57b-cc36bdff8495/z4uWN6A
Replit-Helium-Checkpoint-Created: true
2026-05-25 13:20:15 +00:00
cheffe01 036973ea32 Add API endpoints and frontend components for tool management and analytics
Implement CRUD operations for tools and ratings, introduce analytics endpoints, and develop frontend components for displaying tools, ratings, and analytics data.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 776963d0-f75d-42e2-a57b-cc36bdff8495
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: feaa4ce1-5aed-4cc0-bcea-47855b615b48
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/0683fb79-a27c-485c-9333-5f4b288c4567/776963d0-f75d-42e2-a57b-cc36bdff8495/rx9K7bW
Replit-Helium-Checkpoint-Created: true
2026-05-25 13:04:53 +00:00
agent 1de22a6979 Initial commit 2026-05-14 20:25:38 +00:00