Project Locking, Permissions and Linked Projects
Project Locking
When you open a project, TX1 attempts to create a ProjectLock. The lock includes:
- The user ID and machine name.
- A timestamp and expiry (default 1 hour, refreshed on activity).
- A pointer to the shared database profile (if applicable).
While a lock is active:
- You can edit freely.
- Other users see the project in read-only mode with a banner showing who holds the lock.
- The status bar shows 🔒 and the lock holder.
Releasing a Lock
- Automatically on project close or TX1 exit.
- Automatically on lock expiry.
- Manually via Project → Release Lock (admins can release another user's lock).
Tip
Warning — Never kill the TX1 process while a shared-database project is open. The lock may linger until expiry.
Permissions
ProjectPermission lets you grant individual users specific roles on a project:
| Role | Can |
|---|---|
| Viewer | Open and read. |
| Editor | Edit items, resources, notes. |
| Approver | Editor + mark items Approved / Complete. |
| Owner | All above + manage permissions + delete. |
Users without an entry inherit from their global role plus folder-level access control (15.2).
Linked Projects
A LinkedProject references another project's data and aggregates it into a parent. Common use cases:
- A programme project that sums multiple packages.
- A portfolio project showing total spend across phases.
How It Works
- The parent project has one or more LinkedProject rows pointing to child project IDs.
- The parent's Direct Cost grid shows child totals as read-only synthesised rows.
- Changes in the child update the parent live.
Limitations
- Linked children cannot be inside a folder you don't have access to.
- Circular links are prevented.
- Overheads / markups are not linked — only cost totals.
Project Locks in a Shared Database
When a SharedDatabaseProfile is configured (multi-user setup), locks are the single authoritative source of truth for "who has this project right now". Set the profile up from Settings → Shared Database.