54 lines
2.4 KiB
Markdown
54 lines
2.4 KiB
Markdown
# Publisher Endpoints
|
|
|
|
## Purpose
|
|
Document publisher API endpoints for publishing records and deployments.
|
|
|
|
## Code Locations (exact paths)
|
|
- Routing: `backend/igny8_core/modules/publisher/urls.py`
|
|
- Viewsets: `backend/igny8_core/modules/publisher/views.py`
|
|
- Models: `backend/igny8_core/business/publishing/models.py`
|
|
|
|
## High-Level Responsibilities
|
|
- Expose CRUD for publishing records (content publishing to destinations) and deployment records (site deployments).
|
|
- Scope resources by account/site/sector and provide unified responses.
|
|
|
|
## Detailed Behavior
|
|
- Base path: `/api/v1/publisher/`
|
|
- Routers register:
|
|
- `publishing-records/` → `PublishingRecordViewSet`
|
|
- `deployments/` → `DeploymentRecordViewSet`
|
|
- Root publisher viewset (`PublisherViewSet`) for additional publisher actions (see module code).
|
|
- Viewsets inherit account/site/sector filtering via base classes; permissions/throttles defined in module views.
|
|
- Publishing records track destination/status/URLs/errors; deployments track versions/status/URL/metadata.
|
|
|
|
## Data Structures / Models Involved (no code)
|
|
- `PublishingRecord`, `DeploymentRecord`, `Account`, `Site`, `Sector`.
|
|
|
|
## Execution Flow
|
|
- Requests → DRF auth → base scoping → serializer validation → model CRUD → unified responses.
|
|
|
|
## Cross-Module Interactions
|
|
- Publishing records reference writer content; deployments reference sites; integration data may influence destinations (see integration/publishing services).
|
|
|
|
## State Transitions
|
|
- Publishing status: pending/publishing/published/failed; Deployment status: pending/deploying/deployed/failed/rolled_back.
|
|
|
|
## Error Handling
|
|
- Unified responses; validation errors for missing/invalid fields; standard 4xx/5xx on failures.
|
|
|
|
## Tenancy Rules
|
|
- All endpoints scoped to account/site/sector via base viewsets and permissions; privileged roles may bypass filtering but data retains tenant fields.
|
|
|
|
## Billing Rules
|
|
- None directly in publisher endpoints; any credit usage would occur in upstream AI flows.
|
|
|
|
## Background Tasks / Schedulers
|
|
- None specific in endpoints; deployments/publishing actions may be driven by services or Celery tasks elsewhere.
|
|
|
|
## Key Design Considerations
|
|
- Separation of publishing records and deployment records keeps content publishing and site deployment distinct.
|
|
|
|
## How Developers Should Work With This Module
|
|
- Use existing viewsets; maintain site/sector scoping and unified response patterns when extending publisher functionality.
|
|
|