Administration
Nextcloud admin panel for configuring Pipelinq, plus the foundational OpenRegister integration that stores all CRM data.
Specs
openspec/specs/admin-settings/spec.mdopenspec/specs/openregister-integration/spec.md
Features
Nextcloud Admin Panel (MVP)
Pipelinq registers a settings section in Nextcloud's admin panel, accessible to administrators for configuration.
- Register status display (shows OpenRegister connection health)
- Re-import configuration action (reloads schemas from config file)
Pipeline Management (MVP)
Full CRUD for pipelines and their stages from the admin panel:
- Create, edit, and delete pipelines
- Add, reorder, and remove stages within pipelines
- Set default pipeline (exactly one pipeline marked as default)
- Drag-and-drop stage reordering
Default Pipelines on Installation (MVP)
Two default pipelines are created automatically during app installation via the repair step:
- Sales Pipeline (default): New → Contacted → Qualified → Proposal → Negotiation → Won → Lost
- Service Requests: New → In Progress → Completed → Rejected → Converted
Settings Persistence (MVP)
All configuration is stored in Nextcloud's IAppConfig and survives app updates and server restarts.
OpenRegister Integration (MVP)
Pipelinq owns no database tables — all data is stored as OpenRegister objects in the pipelinq register with 5 schemas:
client— Person or organizationcontact— Contact person linked to a clientlead— Sales opportunityrequest— Service/intake requestpipeline— Configurable workflow board with stages
Auto-Configuration on Install (MVP)
The repair step (InitializeSettings) automatically:
- Checks if OpenRegister is available (skips gracefully if not installed)
- Imports the register configuration from
pipelinq_register.json - Creates default pipelines
- Ensures system tags are set up
Pinia Store Pattern (MVP)
A generic object store (useObjectStore) manages all entity types through a single Pinia store. Features:
- CRUD operations:
fetchCollection,fetchObject,saveObject,deleteObject - Structured error objects with HTTP status distinction (404, 403, 422, 500)
- 422 validation error parsing with field-level feedback
- Batched reference resolution (
resolveReferences) to avoid N+1 queries - Pagination support
- Object caching
Error Handling (MVP)
Comprehensive error handling across the frontend:
- Structured errors:
{ message, status, fields }instead of plain strings - List views: inline error display with retry button (
NcNoteCard) - Detail views: error toasts on save/delete failures (
showError) - Form preservation: form data stays intact when save fails
- Network error detection and user-friendly messaging
RBAC Integration (MVP)
All data access respects OpenRegister's role-based access control. Dashboard data and entity lists are scoped to the user's permissions.
Audit Trail (MVP)
OpenRegister automatically tracks who created/modified objects and when, providing full audit trail without additional Pipelinq code.
Planned (V1)
- Lead source value configuration (admin-customizable dropdown values)
- Request channel value configuration
- NL Design System theming support
Planned (Enterprise)
- Priority label/color customization
- Field-level access control