Commit Graph

612 Commits

Author SHA1 Message Date
alorig
ea9ffedc01 Revert "Update Usage.tsx"
This reverts commit bf6589449f.
2025-11-17 17:28:24 +05:00
alorig
bf6589449f Update Usage.tsx 2025-11-17 17:24:38 +05:00
alorig
75ba407df5 Enhance dashboard data fetching by adding active site checks
- Implemented checks for active site in Home, Planner, and Writer dashboards to prevent data fetching when no site is selected.
- Updated API calls to include site_id in requests for better data accuracy.
- Modified user messages to guide users in selecting an active site for insights.
2025-11-17 17:22:15 +05:00
alorig
4b21009cf8 Update README.md 2025-11-17 16:59:48 +05:00
IGNY8 VPS (Salman)
8a9dd8ed2f aaaa 2025-11-17 11:58:45 +00:00
IGNY8 VPS (Salman)
9930728e8a Add source tracking and sync status fields to Content model; update services module
- Introduced new fields in the Content model for source tracking and sync status, including external references and optimization fields.
- Updated the services module to include new content generation and pipeline services for better organization and clarity.
2025-11-17 11:15:15 +00:00
IGNY8 VPS (Salman)
fe95d09bbe phase 0 to 2 completed 2025-11-16 23:02:22 +00:00
IGNY8 VPS (Salman)
4ecc1706bc celery 2025-11-16 22:57:36 +00:00
IGNY8 VPS (Salman)
0f02bd6409 celery 2025-11-16 22:52:43 +00:00
IGNY8 VPS (Salman)
1134285a12 Update app labels for billing, writer, and planner models; fix foreign key references in automation migrations
- Set app labels for CreditTransaction and CreditUsageLog models to 'billing'.
- Updated app labels for Tasks, Content, and Images models to 'writer'.
- Changed foreign key references in automation migrations from 'account' to 'tenant' for consistency.
2025-11-16 22:37:16 +00:00
IGNY8 VPS (Salman)
1c2c9354ba Add automation module to settings and update app labels
- Registered the new AutomationConfig in the INSTALLED_APPS of settings.py.
- Set the app_label for AutomationRule and ScheduledTask models to 'automation' for better organization and clarity in the database schema.
2025-11-16 22:23:39 +00:00
IGNY8 VPS (Salman)
92f51859fe reaminign phase 1-2 tasks 2025-11-16 22:17:33 +00:00
IGNY8 VPS (Salman)
7f8982a0ab Add scheduled automation task and update URL routing
- Introduced a new scheduled task for executing automation rules every 5 minutes in the Celery beat schedule.
- Updated URL routing to include a new endpoint for automation-related functionalities.
- Refactored imports in various modules to align with the new business layer structure, ensuring backward compatibility for billing models, exceptions, and services.
2025-11-16 22:11:05 +00:00
IGNY8 VPS (Salman)
455358ecfc Refactor domain structure to business layer
- Renamed `domain/` to `business/` to better reflect the organization of code by business logic.
- Updated all relevant file paths and references throughout the project to align with the new structure.
- Ensured that all models and services are now located under the `business/` directory, maintaining existing functionality while improving clarity.
2025-11-16 21:47:51 +00:00
IGNY8 VPS (Salman)
cb0e42bb8d dd 2025-11-16 21:33:55 +00:00
IGNY8 VPS (Salman)
9ab87416d8 Merge branch 'feature/phase-0-credit-system' 2025-11-16 21:29:55 +00:00
IGNY8 VPS (Salman)
56c30e4904 schedules page removed 2025-11-16 21:21:07 +00:00
IGNY8 VPS (Salman)
51cd021f85 fixed all phase 0 issues Enhance error handling for ModuleEnableSettings retrieval
- Added a check for the existence of the ModuleEnableSettings table before attempting to retrieve or fixed all phase 0 create settings for an account.
- Implemented logging and a user-friendly error response if the table does not exist, prompting the user to run the necessary migration.
- Updated migration to create the ModuleEnableSettings table using raw SQL to avoid model resolution issues.
2025-11-16 21:16:35 +00:00
IGNY8 VPS (Salman)
fc6dd5623a Add refresh token functionality and improve login response handling
- Introduced RefreshTokenView to allow users to refresh their access tokens using a valid refresh token.
- Enhanced LoginView to ensure correct user/account loading and improved error handling during user serialization.
- Updated API response structure to include access and refresh token expiration times.
- Adjusted frontend API handling to support both new and legacy token response formats.
2025-11-16 21:06:22 +00:00
Desktop
1531f41226 Revert "Fix authentication: Ensure correct user/account is loaded"
This reverts commit a267fc0715.
2025-11-17 01:35:34 +05:00
Desktop
37a64fa1ef Revert "Fix authentication: Use token's account_id as authoritative source"
This reverts commit 46b5b5f1b2.
2025-11-17 01:35:30 +05:00
Desktop
c4daeb1870 Revert "Fix authentication: Follow unified API model - token account_id is authoritative"
This reverts commit 8171014a7e.
2025-11-17 01:35:26 +05:00
Desktop
79aab68acd Revert "Fix credit system: Add developer/system account bypass for credit checks"
This reverts commit 066b81dd2a.
2025-11-17 01:35:23 +05:00
Desktop
11a5a66c8b Revert "Revert to main branch account handling logic"
This reverts commit 219dae83c6.
2025-11-17 01:35:19 +05:00
Desktop
ab292de06c Revert "branch 1st"
This reverts commit 8a9dd44c50.
2025-11-17 01:35:13 +05:00
IGNY8 VPS (Salman)
8a9dd44c50 branch 1st 2025-11-16 20:08:58 +00:00
IGNY8 VPS (Salman)
b2e60b749a 1 2025-11-16 20:02:45 +00:00
IGNY8 VPS (Salman)
9f3c4a6cdd Fix middleware: Don't set request.user, only request.account
- Middleware should only set request.account, not request.user
- Let DRF authentication handle request.user setting
- This prevents conflicts between middleware and DRF authentication
- Fixes /me endpoint returning wrong user issue
2025-11-16 19:49:55 +00:00
IGNY8 VPS (Salman)
219dae83c6 Revert to main branch account handling logic
- Restored fallback to user.account when token account_id is missing/invalid
- Restored validation that user.account matches token account_id
- If user's account changed, use user.account (the correct one)
- Matches main branch behavior which has correct config
- Fixes wrong user/account showing issue
2025-11-16 19:44:18 +00:00
IGNY8 VPS (Salman)
066b81dd2a Fix credit system: Add developer/system account bypass for credit checks
- CreditService.check_credits() now bypasses for:
  1. System accounts (aws-admin, default-account, default)
  2. Developer/admin users (if user provided)
  3. Accounts with developer users (fallback for Celery tasks)
- Updated check_credits_legacy() with same bypass logic
- AIEngine credit check now uses updated CreditService
- Fixes 52 console errors caused by credit checks blocking developers
- Developers can now use AI functions without credit restrictions
2025-11-16 19:40:44 +00:00
IGNY8 VPS (Salman)
8171014a7e Fix authentication: Follow unified API model - token account_id is authoritative
- Simplified authentication logic to match unified API documentation
- Token's account_id is now the sole source of truth for account context
- Removed validation against user.account (no longer valid per unified API model)
- Middleware now simply extracts account_id from JWT and sets request.account
- Matches documented flow: Extract Account ID → Load Account Object → Set request.account
2025-11-16 19:36:18 +00:00
IGNY8 VPS (Salman)
46b5b5f1b2 Fix authentication: Use token's account_id as authoritative source
- Token's account_id is now authoritative for current account context
- For developers/admins: Always use token's account_id (they can access any account)
- For regular users: Verify they belong to token's account, fallback to user.account if not
- This ensures correct account context is set, especially for developers working across accounts
- Fixes bug where wrong user/account was shown after login
2025-11-16 19:34:02 +00:00
IGNY8 VPS (Salman)
a267fc0715 Fix authentication: Ensure correct user/account is loaded
- JWTAuthentication now uses select_related('account', 'account__plan') to get fresh user data
- Added check to use user's current account if it differs from token's account_id
- This ensures correct user/account is shown even if account changed after token was issued
- Fixes bug where wrong user was displayed after login
2025-11-16 19:28:37 +00:00
IGNY8 VPS (Salman)
9ec8908091 Phase 0: Fix ModuleEnableSettings list() - use get() instead of get_or_create
- Changed to use get() with DoesNotExist exception handling
- Creates settings only if they don't exist
- Better error handling with traceback
- Fixes 404 'Setting not found' errors
2025-11-16 19:26:18 +00:00
IGNY8 VPS (Salman)
0d468ef15a Phase 0: Improve ModuleEnableSettings get_queryset to filter by account
- Updated get_queryset to properly filter by account
- Ensures queryset is account-scoped before list() is called
- Prevents potential conflicts with base class behavior
2025-11-16 19:25:36 +00:00
IGNY8 VPS (Salman)
8fc483251e Phase 0: Fix ModuleEnableSettings 404 error - improve error handling
- Added proper exception handling in list() and retrieve() methods
- Use objects.get_or_create() directly instead of class method
- Added *args, **kwargs to method signatures for DRF compatibility
- Better error messages for debugging
- Fixes 404 'Setting not found' errors
2025-11-16 19:25:05 +00:00
IGNY8 VPS (Salman)
1d39f3f00a Phase 0: Fix token race condition causing logout after login
- Updated getAuthToken/getRefreshToken to read from Zustand store first (faster, no parsing delay)
- Added token existence check before making API calls in AppLayout
- Added retry mechanism with 100ms delay to wait for Zustand persist to write token
- Made 403 error handler smarter - only logout if token actually exists (prevents false logouts)
- Fixes issue where user gets logged out immediately after successful login
2025-11-16 19:22:45 +00:00
IGNY8 VPS (Salman)
b20fab8ec1 Phase 0: Fix AppLayout to only load sites when authenticated
- Added isAuthenticated check before loading active site
- Prevents 403 errors when user is not logged in
- Only loads sites when user is authenticated
- Silently handles 403 errors (expected when not authenticated)
2025-11-16 19:16:43 +00:00
IGNY8 VPS (Salman)
437b0c7516 Phase 0: Fix AppSidebar to only load module settings when authenticated
- Added isAuthenticated check before loading module enable settings
- Prevents 403 errors when user is not logged in
- Only loads settings when user is authenticated and settings aren't already loaded
2025-11-16 19:16:07 +00:00
IGNY8 VPS (Salman)
4de9128430 Phase 0: Fix ModuleEnableSettings permissions - allow read access to all authenticated users
- Changed permission_classes to get_permissions() method
- Read operations (list, retrieve) now accessible to all authenticated users
- Write operations (update, partial_update) still restricted to admins/owners
- Fixes 403 Forbidden errors when loading module settings in sidebar
2025-11-16 19:14:53 +00:00
IGNY8 VPS (Salman)
f195b6a72a Phase 0: Fix infinite loop in AppSidebar and module settings loading
- Fixed infinite loop by memoizing moduleEnabled with useCallback
- Fixed useEffect dependencies to prevent re-render loops
- Added loading check to prevent duplicate API calls
- Fixed setState calls to only update when values actually change
- Removed unused import (isModuleEnabled from modules.config)
2025-11-16 19:13:12 +00:00
IGNY8 VPS (Salman)
ab6b6cc4be Phase 0: Add credit costs display to Credits page
- Added credit costs reference table to Credits page
- Shows cost per operation type with descriptions
- Consistent with Usage page credit costs display
- Helps users understand credit consumption
2025-11-16 19:06:48 +00:00
IGNY8 VPS (Salman)
d0e6b342b5 Phase 0: Update billing pages to show credits and credit costs
- Updated Usage page to show only credits and account management limits
- Removed plan operation limit displays (planner, writer, images)
- Added credit costs reference table showing cost per operation type
- Updated limit cards to handle null limits (for current balance display)
- Improved UI to focus on credit-only system
2025-11-16 19:06:07 +00:00
IGNY8 VPS (Salman)
461f3211dd Phase 0: Add monthly credit replenishment Celery Beat task
- Created billing/tasks.py with replenish_monthly_credits task
- Task runs on first day of each month at midnight
- Adds plan.included_credits to all active accounts
- Creates CreditTransaction records for audit trail
- Configured in celery.py beat_schedule
- Handles errors gracefully and logs all operations
2025-11-16 19:02:26 +00:00
IGNY8 VPS (Salman)
abbf6dbabb Phase 0: Remove plan limit checks from billing views
- Updated limits endpoint to show only credits and account management limits
- Removed all operation limit references (keywords, clusters, content ideas, word count, images)
- Limits endpoint now focuses on credit usage by operation type
- Account management limits (users, sites) still shown
2025-11-16 18:51:40 +00:00
IGNY8 VPS (Salman)
a10e89ab08 Phase 0: Remove plan operation limit fields (credit-only system)
- Removed all operation limit fields from Plan model
- Kept account management limits (max_users, max_sites, etc.)
- Updated PlanSerializer to remove limit fields
- Updated PlanAdmin to remove limit fieldsets
- Created migration to remove limit fields from database
- Plan model now only has credits, billing, and account management fields
2025-11-16 18:50:24 +00:00
IGNY8 VPS (Salman)
5842ca2dfc Phase 0: Fix AppSidebar useEffect for module settings loading 2025-11-16 18:48:45 +00:00
IGNY8 VPS (Salman)
9b3fb25bc9 Phase 0: Add sidebar filtering and route guards for modules
- Updated AppSidebar to filter out disabled modules from navigation
- Added ModuleGuard to all module routes (planner, writer, thinker, automation)
- Modules now dynamically appear/disappear based on enable settings
- Routes are protected and redirect to settings if module is disabled
2025-11-16 18:48:23 +00:00
IGNY8 VPS (Salman)
dbe8da589f Phase 0: Add ModuleGuard component and implement Modules settings UI
- Created ModuleGuard component to protect routes based on module status
- Implemented Modules.tsx page with toggle switches for all modules
- Fixed Switch component onChange prop type
- Module enable/disable UI fully functional
2025-11-16 18:44:07 +00:00
IGNY8 VPS (Salman)
8102aa74eb Phase 0: Add frontend module config and update settings store
- Created modules.config.ts with module definitions
- Added ModuleEnableSettings API functions
- Updated settingsStore with module enable settings support
- Added isModuleEnabled helper method
2025-11-16 18:43:24 +00:00