Vault structure
Every setting in the CtrlSync configuration that names a piece of vault structure is listed here. None of them can be filled in until the thing it names exists, so this is the work that comes before configuration rather than during it.
How the pieces relate
Section titled “How the pieces relate”A connection object type. This is the centre of CtrlSync and the thing most often missed: one object per SharePoint site or Teams channel. It holds the URL to synchronise, a flag saying whether it is active, and the status of the last run. Documents CtrlSync imports get a reference back to it.
Give connections their own object type rather than putting the properties on a project or a customer. A connection moves through its own workflow states as synchronisation is switched on, pauses and fails, and those transitions have nothing to do with where a project is in its own workflow.
Classes on that object type. CtrlSync behaves differently per class, so a class is how one deployment can treat a Teams channel and a SharePoint document library differently. One class exists by default when the object type is created.
Properties on the documents. Every document CtrlSync imports carries the Graph ID that identifies it in Microsoft 365 and the reference to its connection. Those two are what make a second run update a document rather than import it again.
Optional properties worth having anyway. The path property records where a document came from in SharePoint, which is what automation steps and property mappers work from. The status property is where CtrlSync writes the reason a connection failed, and without it the reason is only in the log.
CtrlSync binds 36 settings to something that has to exist in the vault, 8 of them required. Everything below is generated from the shipping application, so nothing it needs is missing from this list.
Object types
Create these first; classes and properties hang off them.
| Needed for | Configuration section | Required |
|---|---|---|
| Employee Object Type | Employee configuration | Optional |
Classes
Each belongs to one of the object types above.
| Needed for | Configuration section | Required |
|---|---|---|
| Connection Source Class | Connection configuration | Yes |
| Default Document Class | Connection configuration | Optional |
| Source Error Assignment Class | Connection configuration | Optional |
| Document Error Assignment Class | Connection configuration | Optional |
| Class | Class entry | Yes |
Properties
The data type is not advice. A property of the wrong type cannot be selected for the setting at all.
| Needed for | Configuration section | Data type | Required |
|---|---|---|---|
| Data Source 'Active' | Graph configuration | Boolean | Yes |
| Data Source 'Error' | Graph configuration | Boolean | Yes |
| Data Source 'On Demand Sync' | Graph configuration | Boolean | Optional |
| Data Source Reference | Graph configuration | Lookup or Multi Select Lookup | Optional |
| Data Source Status | Graph configuration | Multi Line Text | Optional |
| Graph URL | Graph configuration | Text or Multi Line Text | Yes |
| Graph ID | Graph configuration | Text | Yes |
| Drive ID | Graph configuration | Text | Optional |
| Add Document to Graph | Graph configuration | Boolean | Optional |
| Delete on Graph | Graph configuration | Boolean | Optional |
| Deleted on Graph | Graph configuration | Boolean | Optional |
| Document Hash Code | Graph configuration | Text | Yes |
| Graph JSON Data | Graph configuration | Multi Line Text | Optional |
| User Property | Employee configuration | Multi Select Lookup or Lookup | Optional |
| Email Property | Employee configuration | Text | Optional |
| Path Property | Connection configuration | Multi Line Text | Optional |
| Created-by property | Connection configuration | Lookup | Optional |
| Modified-by property | Connection configuration | Lookup | Optional |
| Property | Property entry | Any | Yes |
| Matching property | Path property mapping | Boolean or Date or Floating or Integer or Text or Multi Line Text or Lookup or Multi Select Lookup | Optional |
| Matching property | Name property mapping | Boolean or Date or Floating or Integer or Text or Multi Line Text or Lookup or Multi Select Lookup | Optional |
| Matching property | Graph property mapping | Boolean or Date or Floating or Integer or Text or Multi Line Text or Lookup or Multi Select Lookup | Optional |
| Text Property | Column configuration | Any | Optional |
| Multi-Line Text Property | Column configuration | Any | Optional |
| Number Property | Column configuration | Integer or Integer64 or Floating | Optional |
| Boolean Property | Column configuration | Boolean | Optional |
| DateTime Property | Column configuration | Date or Timestamp | Optional |
Workflows
One per object type that the application drives through states.
| Needed for | Configuration section | Required |
|---|---|---|
| Workflow | Workflow and starting state | Optional |
Workflow states
States within the workflows above. Entering one is what triggers the work.
| Needed for | Configuration section | Required |
|---|---|---|
| Initial State | Workflow and starting state | Optional |
Named access control lists
| Needed for | Configuration section | Required |
|---|---|---|
| Default Named Access Control List | Connection configuration | Optional |
Generated from CtrlSync 0.26.6.0.
- A connection object can be created by hand with every property the configuration will ask for, and the URL property is multi-line text rather than text.
- Exactly one class is set up for the first kind of connection you plan to synchronise.
- The Graph ID property on documents is hidden or read-only on the metadata card.
Set up CtrlSync — step four, entering the Graph credentials.