Commit Graph

433 Commits

Author SHA1 Message Date
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
IGNY8 VPS (Salman)
7cd0e1a807 Add health check endpoint and refactor integration response handling
- Introduced a new public health check endpoint at `api/ping/` to verify API responsiveness.
- Refactored integration response handling to utilize a unified success and error response format across various methods in `IntegrationSettingsViewSet`, improving consistency and clarity in API responses.
- Updated URL patterns to include the new ping endpoint and adjusted imports accordingly.
2025-11-16 07:01:19 +00:00
Desktop
64b8280bce Implement security enhancements and unified response formats across API endpoints. Update permission classes for various ViewSets to ensure proper tenant isolation and compliance with API standards. Refactor authentication endpoints to utilize success and error response helpers, improving error tracking and response consistency. Complete documentation updates reflecting these changes and achieving full compliance with API Standard v1.0. 2025-11-16 11:35:47 +05:00
IGNY8 VPS (Salman)
3694e40c04 Enhance API documentation and schema management by implementing explicit tag configurations for Swagger and ReDoc. Introduce postprocessing hooks to filter auto-generated tags, ensuring only defined tags are used. Update viewsets across various modules to utilize the new tagging system, improving clarity and organization in API documentation. 2025-11-16 04:48:14 +00:00
IGNY8 VPS (Salman)
79648db07f Integrate OpenAPI/Swagger documentation using drf-spectacular, enhancing API documentation with comprehensive guides and schema generation. Add multiple documentation files covering authentication, error codes, rate limiting, and migration strategies. Update settings and URLs to support new documentation endpoints and schema configurations. 2025-11-16 02:15:37 +00:00
IGNY8 VPS (Salman)
452d065c22 Implement unified API standard v1.0 across backend and frontend, enhancing error handling, response formatting, and monitoring capabilities. Refactor viewsets for consistent CRUD operations and introduce API Monitor for endpoint health checks. Update migrations to ensure database integrity and remove obsolete constraints and fields. Comprehensive test suite created to validate new standards and functionality. 2025-11-16 01:56:16 +00:00
Desktop
5908115686 fixes of broken fucntions 2025-11-16 04:56:48 +05:00
IGNY8 VPS (Salman)
0ec594363c Implement unified API standard across backend viewsets and serializers, enhancing error handling and response formatting. Update AccountModelViewSet to standardize CRUD operations with success and error responses. Refactor various viewsets to inherit from AccountModelViewSet, ensuring compliance with the new standard. Improve frontend components to handle API responses consistently and update configuration for better user experience. 2025-11-15 23:04:31 +00:00
IGNY8 VPS (Salman)
a75ebf2584 Enhance API response handling and implement unified API standard across multiple modules. Added feature flags for unified exception handling and debug throttling in settings. Updated pagination and response formats in various viewsets to align with the new standard. Improved error handling and response validation in frontend components for better user feedback. 2025-11-15 20:18:42 +00:00
IGNY8 VPS (Salman)
8d7210c8a6 Update Docker Compose and backend settings; enhance Vite configuration for reverse proxy and improve API error handling. Removed VITE_ALLOWED_HOSTS from Docker Compose, clarified allowed hosts in settings.py, and added handling for 403 Forbidden responses in api.ts to clear invalid tokens. 2025-11-15 13:12:01 +00:00
IGNY8 VPS (Salman)
7144281acc removal of ignored folders 2025-11-13 17:26:00 +00:00
IGNY8 VPS (Salman)
4f8d79ca3f commit 2025-11-13 16:49:51 +00:00
Desktop
f8648ecab1 image sizes update in image gen function 2025-11-12 19:20:06 +05:00
Desktop
c508c888aa Enhance image size configuration and integration settings. Default image sizes are now set based on provider and model, with options for featured, desktop, and mobile images. Updated frontend to allow selectable image sizes in settings. 2025-11-12 18:43:32 +05:00
Desktop
a2c67e7249 featured image size runware 2025-11-12 18:18:16 +05:00
Desktop
bcc52c4891 Update Runware pricing across the application to reflect new cost of $0.009 per image in backend and frontend components. 2025-11-12 14:41:20 +05:00
IGNY8 VPS (Salman)
9f704313fb Enhance image processing and progress tracking in ImageQueueModal; update docker-compose for read-write access 2025-11-12 08:39:03 +00:00