opencode
6b8ca92c37
feat: allow premium+ users to manage costs
...
Build & Push Docker Image / build (push) Successful in 2m19s
- costs routes drop requireAdmin, keep auth + costs feature check
- useAuth exposes hasFeature(feature) based on entitlements
- tool-detail costs section gated by hasFeature('costs') instead of isAdmin
2026-08-02 01:27:28 +02:00
opencode
01c70085db
feat: tiered costs feature + admin tier management + tag selection
...
Build & Push Docker Image / build (push) Successful in 6m52s
- costs: nullable notes (fix create without notes), drop renewalDate
(schema + API + UI), gate POST/PATCH/DELETE to admin + costs feature
- feature middleware: admin-aware hasFeature + getEntitlements union;
/auth/me and login return resolved entitlements
- users: tier enum (free/premium/enterprise) in create/update/list,
admin UI tier select + tier badge
- tags: GET /tags/all, TagInput autocomplete in new/edit tool forms,
feature suggestions on focus, query invalidation on create/update
- openapi: nullable ToolUpdate urls, ToolUpdate tier fields, listAllTags
- Dockerfile: push-force to drop renewal_date column
2026-08-02 01:10:47 +02:00
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
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
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
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
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