Commit Graph

149 Commits

Author SHA1 Message Date
alorig
41c1501764 Update serializers.py 2025-11-17 17:32:46 +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)
9ab87416d8 Merge branch 'feature/phase-0-credit-system' 2025-11-16 21:29:55 +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)
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)
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)
13bd7fa134 Phase 0: Add ModuleEnableSettings serializer, ViewSet, and URL routing
- Created ModuleEnableSettingsSerializer
- Created ModuleEnableSettingsViewSet with get_or_create logic
- Added URL routing for module enable settings
- One record per account, auto-created on first access
2025-11-16 18:40:10 +00:00
IGNY8 VPS (Salman)
a73b2ae22b Phase 0: Add ModuleEnableSettings model and migration
- Created ModuleEnableSettings model with enabled flags for all modules
- Added migration for ModuleEnableSettings
- Updated imports across system module files
2025-11-16 18:39:16 +00:00
IGNY8 VPS (Salman)
5b11c4001e Phase 0: Update credit costs and CreditService, add credit checks to AI Engine
- Updated CREDIT_COSTS to match Phase 0 spec (flat structure)
- Added get_credit_cost() method to CreditService
- Updated check_credits() to accept operation_type and amount
- Added deduct_credits_for_operation() convenience method
- Updated AI Engine to check credits BEFORE AI call
- Updated AI Engine to deduct credits AFTER successful execution
- Added helper methods for operation type mapping and amount calculation
2025-11-16 18:37:41 +00:00
IGNY8 VPS (Salman)
8521ded923 Resolve merge conflict in authStore.ts - use dynamic import for fetchAPI 2025-11-16 13:47:37 +00:00
IGNY8 VPS (Salman)
3a41ba99bb Refactor AI framework to use IntegrationSettings exclusively for model configuration
- Removed hardcoded model defaults and the MODEL_CONFIG dictionary.
- Updated get_model_config() to require an account parameter and raise clear errors if IntegrationSettings are not configured.
- Eliminated unused helper functions: get_model(), get_max_tokens(), and get_temperature().
- Improved error handling to provide specific messages for missing account or model configurations.
- Cleaned up orphan exports in __init__.py to maintain a streamlined codebase.
2025-11-16 12:23:43 +00:00
IGNY8 VPS (Salman)
8908c11c86 Enhance error handling in AIEngine and update ResourceDebugOverlay
- Added error type handling in AIEngine for better error categorization during model configuration and execution.
- Updated _handle_error method to accept and log error types.
- Improved ResourceDebugOverlay to silently ignore 404 responses from the metrics endpoint, preventing unnecessary logging and retries.
- Refactored authStore to utilize fetchAPI for automatic token handling and improved error logging without throwing exceptions.
2025-11-16 11:44:51 +00:00
IGNY8 VPS (Salman)
a492eb3560 Enhance ImagesViewSet and Images component with site and sector filtering
- Added site_id and sector_id query parameter support in ImagesViewSet for filtering content and task-linked images.
- Implemented event listeners in the Images component to refresh data on site and sector changes.
- Updated image prompt handling to allow undefined values.
2025-11-16 10:24:46 +00:00
IGNY8 VPS (Salman)
65c7fb87fa Refactor integration settings handling and error response mapping
- Simplify request data handling in the 'IntegrationSettingsViewSet' by removing unnecessary try-except blocks and improving clarity.
- Enhance API key retrieval logic with better fallback mechanisms for account settings.
- Implement detailed error mapping for OpenAI API responses, ensuring appropriate HTTP status codes are returned based on the response received.
- Update logging for improved visibility during account and settings lookups.
2025-11-16 09:55:12 +00:00
IGNY8 VPS (Salman)
d3ec7cf2e3 Refactor authentication and integration handling
- Exclude the 'MeView' endpoint from public API documentation, marking it as an internal authenticated endpoint.
- Enhance error handling in the 'IntegrationSettingsViewSet' to gracefully manage empty request data and improve logging for account and settings lookups.
- Update API key retrieval logic to ensure fallback mechanisms are more robust and informative.
- Refactor user data fetching in the auth store to utilize a unified API system, improving error handling and data consistency.
2025-11-16 09:49:24 +00:00
IGNY8 VPS (Salman)
36b66b72f0 Step 6a & 6b: Clean up orphan code in __init__.py
- Remove orphan exports: register_function, list_functions, get_model, get_max_tokens, get_temperature, MODEL_CONFIG
- Remove unused imports: register_function, list_functions, get_model, get_max_tokens, get_temperature, MODEL_CONFIG
- Keep only actively used exports and imports
- get_function remains (used internally)
2025-11-16 09:26:03 +00:00
IGNY8 VPS (Salman)
25b1aa39b0 Step 5: Validate account_id is required and exists in tasks.py
- Make account_id parameter required (remove default None)
- Validate account_id is provided before proceeding
- Validate account exists in database
- Return proper error responses with error_type
- Update function docstring to reflect required parameter
2025-11-16 09:22:33 +00:00
IGNY8 VPS (Salman)
91d31ece31 Step 4: Validate account exists before calling get_model_config() in engine.py
- Add account validation before calling get_model_config()
- Wrap get_model_config() in try/except to handle ValueError (IntegrationSettings not configured)
- Handle other unexpected errors from get_model_config()
- Return proper error messages through _handle_error()
- Remove redundant model_from_integration code (get_model_config already handles this)
2025-11-16 09:21:24 +00:00
IGNY8 VPS (Salman)
793b64e437 Step 3: Remove _default_model and require model parameter in run_ai_request()
- Remove _default_model initialization and attribute
- Remove Django settings fallback for model (lines 89-90)
- Remove model loading from IntegrationSettings in _load_account_settings()
- Update run_ai_request() to require model parameter (not Optional)
- Add model validation at start of run_ai_request()
- Deprecate get_model() method (raises error with helpful message)
- Update error handling to use provided model (no fallback)
- Simplify debug logging (removed model_from_settings comparison)
2025-11-16 09:20:13 +00:00
IGNY8 VPS (Salman)
6044fab57d Step 2: Remove MODEL_CONFIG and update get_model_config() to use IntegrationSettings only
- Remove MODEL_CONFIG dict with hardcoded defaults
- Update get_model_config() to require account parameter
- Remove default_config fallback
- Remove unused helper functions (get_model, get_max_tokens, get_temperature)
- Fix generate_images.py to pass account to get_model_config()
- Raise ValueError with clear messages when IntegrationSettings not configured
2025-11-16 09:17:17 +00:00
IGNY8 VPS (Salman)
60ffc12e8c Add AI framework refactoring plan and orphan code audit
- Add REFACTORING-PLAN.md: Plan to remove MODEL_CONFIG and Django settings fallbacks
- Add ORPHAN-CODE-AUDIT.md: Audit of unused code and exports
- Update CHANGELOG.md: Document API Standard v1.0 completion
- Update documentation files
2025-11-16 09:15:07 +00:00