Hosts
One SharePoint Framework web part is exposed as a SharePoint web part, a SharePoint full-page app, a Teams channel tab, and a Teams personal app. The package is tenant-scoped, which Teams requires. The store name is Chronodat Procurement Hub.
Client stack
| Layer | Choice |
|---|---|
| Runtime | SharePoint Framework 1.21.1 |
| Data | SharePoint REST in the host site. Not Dataverse |
| Routing | Hash routes, for example #/requests and #/settings/security |
| Languages | English, Spanish, French, and German |
| Microsoft Graph /me/sendMail, or the Chronodat API, or Power Automate | |
| License | Chronodat subscription service. A 14-day trial is enforced per tenant |
Data model
| Title | Role |
|---|---|
| Requests | Parent request |
| RequestVendors | Bid and vendor rows, up to 6 |
| RequestReferences | PO, invoice, packing list, export form |
| RequestDocuments | Metadata-tagged library |
| Clients, Projects, Vendors, Categories | Master data |
| DocumentTypes, Currencies, Phases | Lookups |
| NumberSequence | Auto-numbering |
| Administrators | Settings access |
| ProcurementCustomRoles | Role definitions and the permission matrix |
| ProcurementSiteMembers | User or group mapped to a role |
| AppSettings | Branding, workflows, and trial flags |
| FormTemplates | Extra fields by category |
Setup creates or repairs this schema. Sample rows can be seeded. They are not required to use the app. Do not rename these lists. The interface labels them as procurement requests, and the app still depends on the list titles setup created.
Security and licensing
Permissions inside the app are interface-level. SharePoint list permissions are not broken or replaced. Mail.Send is delegated: mail is sent as the current user.
A license check runs when the app opens and shows either the trial banner or the paywall. After the 14-day tenant trial ends, only Settings and Subscription stay available.
Packages
| Artifact | Path |
|---|---|
| SharePoint package | sharepoint/solution/procurement-hub.sppkg |
| Teams zip | packages/procurement-hub-teams.zip |
| Sync-to-Teams zip | packages/TeamsSPFxApp.zip |