Enhance site deployment and preview functionality. Updated Preview.tsx to improve deployment record handling and fallback URL logic. Added deploy functionality in Blueprints.tsx and Preview.tsx, including loading states and user feedback. Introduced ProgressModal for page generation status updates. Updated siteBuilder.api.ts to include deployBlueprint API method.
This commit is contained in:
139
SITE_BUILDER_URLS_AND_FILES.md
Normal file
139
SITE_BUILDER_URLS_AND_FILES.md
Normal file
@@ -0,0 +1,139 @@
|
||||
# Site Builder URLs and File Management
|
||||
|
||||
## Summary of Implementation
|
||||
|
||||
### ✅ Generate Page Content Step
|
||||
|
||||
**Location**: `frontend/src/pages/Sites/Builder/Preview.tsx`
|
||||
|
||||
**Implementation**:
|
||||
- Added "Generate All Pages" button (shown when blueprint status is `'ready'`)
|
||||
- Button triggers `generateAllPages()` from `builderStore`
|
||||
- Shows ProgressModal during generation
|
||||
- Uses existing `PageGenerationService.bulk_generate_pages()` backend function
|
||||
|
||||
**Queue Function**: ✅ **EXISTS**
|
||||
- `PageGenerationService.bulk_generate_pages()` creates Writer Tasks
|
||||
- Tasks are queued via `ContentGenerationService.generate_content()`
|
||||
- Each page blueprint gets a Writer Task with title: `"[Site Builder] {page_title}"`
|
||||
- Tasks are processed by Celery workers
|
||||
|
||||
---
|
||||
|
||||
## URL Standards
|
||||
|
||||
### Public Site URLs (Deployed Sites)
|
||||
|
||||
**Current Implementation** (Placeholder):
|
||||
- Pattern: `https://{site_id}.igny8.com`
|
||||
- Generated by: `SitesRendererAdapter._get_deployment_url()`
|
||||
- Location: `backend/igny8_core/business/publishing/services/adapters/sites_renderer_adapter.py:191`
|
||||
|
||||
**Planned Implementation** (from docs):
|
||||
- Custom domains: `clientdomain.com` → routed via Caddy
|
||||
- Subdomain: `mysite.igny8.com` → routed via Caddy
|
||||
- Marketing site: `igny8.com` → `/igny8-sites/marketing/`
|
||||
|
||||
**Sites Renderer Routes**:
|
||||
- Public routes: `/:siteId/*` (no auth required)
|
||||
- Loads from: `/data/app/sites-data/clients/{site_id}/v{version}/`
|
||||
|
||||
---
|
||||
|
||||
### Admin/Management URLs (Frontend App)
|
||||
|
||||
**Site Management Routes** (from `frontend/src/App.tsx`):
|
||||
- `/sites` - All sites list
|
||||
- `/sites/:id` - Site dashboard
|
||||
- `/sites/:id/content` - Site content list
|
||||
- `/sites/:id/editor` - Site content editor
|
||||
- `/sites/:id/pages` - Page manager
|
||||
- `/sites/:id/pages/new` - Create new page
|
||||
- `/sites/:id/pages/:pageId/edit` - Edit page
|
||||
- `/sites/:id/posts/:postId` - View/edit post
|
||||
- `/sites/:id/posts/:postId/edit` - Edit post
|
||||
- `/sites/:id/preview` - Site preview
|
||||
- `/sites/:id/settings` - Site settings (General, SEO, OG, Schema, Integrations)
|
||||
- `/sites/manage` - Site management dashboard
|
||||
|
||||
**Site Builder Routes**:
|
||||
- `/sites/builder` - Site Builder wizard
|
||||
- `/sites/builder/preview` - Preview blueprint (with Generate All Pages button)
|
||||
- `/sites/blueprints` - Blueprints list
|
||||
|
||||
---
|
||||
|
||||
## File Management
|
||||
|
||||
### File Storage Structure
|
||||
|
||||
**Site Files**:
|
||||
```
|
||||
/data/app/sites-data/
|
||||
└── clients/
|
||||
└── {site_id}/
|
||||
└── v{version}/
|
||||
├── site.json
|
||||
├── pages/
|
||||
│ ├── home.json
|
||||
│ ├── about.json
|
||||
│ └── ...
|
||||
└── assets/ # User-managed files
|
||||
├── images/
|
||||
├── documents/
|
||||
└── media/
|
||||
```
|
||||
|
||||
**Service**: `SiteBuilderFileService`
|
||||
- Location: `backend/igny8_core/business/site_building/services/file_management_service.py`
|
||||
- Base path: `/data/app/sites-data/clients`
|
||||
- Max file size: 10MB per file
|
||||
- Max storage per site: 100MB
|
||||
|
||||
### User Access Rules
|
||||
|
||||
- **Owner/Admin**: Full access to all account sites
|
||||
- **Editor**: Access to granted sites (via SiteUserAccess)
|
||||
- **Viewer**: Read-only access to granted sites
|
||||
- File operations scoped to user's accessible sites only
|
||||
|
||||
### File Manager UI
|
||||
|
||||
**Status**: ⚠️ **NOT YET IMPLEMENTED**
|
||||
|
||||
**Planned** (from Phase 3 docs):
|
||||
- File Browser UI: `site-builder/src/components/files/FileBrowser.tsx`
|
||||
- File Upload API: `modules/site_builder/views.py`
|
||||
- Storage quota check: `infrastructure/storage/file_storage.py`
|
||||
|
||||
**Expected Routes** (not yet in App.tsx):
|
||||
- `/sites/:id/files` - File manager for site assets
|
||||
- `/sites/:id/files/upload` - Upload files
|
||||
- `/sites/:id/files/:fileId` - View/edit file
|
||||
|
||||
---
|
||||
|
||||
## Docker Volumes
|
||||
|
||||
**From `docker-compose.app.yml`**:
|
||||
```yaml
|
||||
igny8_sites:
|
||||
volumes:
|
||||
- /data/app/igny8/sites:/app
|
||||
- /data/app/sites-data:/sites # Site definitions and assets
|
||||
```
|
||||
|
||||
**Environment Variable**:
|
||||
- `SITES_DATA_PATH=/sites` (inside container)
|
||||
- Maps to `/data/app/sites-data` on host
|
||||
|
||||
---
|
||||
|
||||
## Next Steps
|
||||
|
||||
1. ✅ **Generate All Pages button** - Added to Preview page
|
||||
2. ⏳ **File Manager UI** - Needs to be implemented
|
||||
3. ⏳ **Deployment URL generation** - Currently placeholder, needs real domain mapping
|
||||
4. ⏳ **Caddy routing configuration** - For custom domains
|
||||
5. ⏳ **File upload API endpoints** - For user file management
|
||||
|
||||
Reference in New Issue
Block a user