The Grand Project — Plugin Dependencies
`GRAND-PROJECT-SPECIFICATION.md` is authoritative.
Required
```text
Asset Registry
└── ServiceVault
Products
├── Inventory Tracking
│ └── Order Processing
└── E-commerce
Suppliers
├── Supplier Portal
└── E-commerce
Invoice Generation
├── Payments & Billing
│ └── E-commerce
└── E-commerce
```
Equivalent list:
- ServiceVault → Asset Registry
- Inventory Tracking → Products
- Order Processing → Inventory Tracking
- Payments & Billing → Invoice Generation
- E-commerce → Products
- E-commerce → Suppliers
- E-commerce → Payments & Billing
- E-commerce → Invoice Generation
- Supplier Portal → Suppliers
ServiceVault may still ship as a General-only profile when Asset Registry is not present at runtime, but the standard `servicevault-server` deployment profile selects both modules together and ServiceVault must degrade cleanly through capability discovery if Asset Registry is disabled or absent.
The technician workflow, service reporting, and asset-history references are runtime behaviours built on that same optional integration boundary, not on direct cross-plugin SQL.
Optional integrations
- Lead Pipeline ↔ Suppliers
- Lead Pipeline ↔ Products
- Lead Pipeline ↔ Project Tendering
- Lead Pipeline ↔ Invoice Generation
- Lead Pipeline ↔ Order Processing
- E-commerce ↔ Inventory Tracking
- E-commerce ↔ Order Processing
- E-commerce ↔ Website Builder
- Supplier Portal ↔ Suppliers
- Website Builder ↔ E-commerce
- ServiceVault ↔ Products
- ServiceVault ↔ Inventory Tracking
- ServiceVault ↔ Invoice Generation
- ServiceVault ↔ Payments & Billing
- Products ↔ Suppliers
- Project Tendering ↔ Lead Pipeline
- Project Tendering ↔ Products
- Project Tendering ↔ Suppliers
- Project Tendering ↔ Invoice Generation
Resolver rules
- Installation Type decides which central server roles are even eligible for the install.
- General installations may use central-service client capability, but must not install central Auth, Update, or File Server implementations as business-module dependencies.
- Recursively resolve required dependencies.
- Understand transitive dependencies.
- Prevent cycles.
- Prevent incompatible versions.
- Block disabling a plugin required by an enabled dependent.
- Treat related updates as one transaction where required.
- Maintain exact installed versions in a lock file.
2026-08-12 implementation note
- The first real commerce batch uses the declared dependency chain exactly as intended: `Products` is authoritative for catalogue data, `Suppliers` owns supplier management, `E-commerce` depends on `Products`, `Suppliers`, `Payments & Billing`, and `Invoice Generation`, and Website Builder integration stays optional and site-scoped.
- `Order Processing`, `Inventory Tracking`, `Asset Registry`, `ServiceVault`, `Lead Pipeline`, `Project Tendering`, and `Business Intelligence & Reporting` remain preserved scaffolds and are not expanded by this batch.
2026-08-13 installation-role note
- `auth-server`, `update-server`, and `file-server` are installation-role selections, not business profiles.
- `servicevault-server`, `commerce-site`, and `custom` are currently General-only application profiles layered under Installation Type.
- The resolver remains authoritative over profile presets: profile and type selection request modules, then `plugin.json` decides required additions, conflicts, compatibility, and final install order.