Articles tagged with 'permissions'

Retiring the Project Owner Role

In the Version 88 release (June 21, 2026) we are retiring the Project Owner role in favor of Project Roles.

If you are a Project Owner today, you do not need to do anything. We will automatically migrate you to a Role that has exactly the same permissions, so nothing changes about what you can do. The rest of this post explains the migration, how creating Projects changes, and - for those interested - why we made the change.

Migration

As part of the Version 88 release process we will find every Project that has a Project Owner assigned. In the URL for that Project we will create a Role called "Project Owner" with every permission set. If a URL already has a Role named "Project Owner", we will name the new Role "Project Owner (migrated)" instead. Every user who is a Project Owner will then be migrated to this new Role in their Project.

Organizations that have no users assigned as Project Owner in any of their Projects will not have this Role created.

Creating new Projects

In Version 88 the Project creation page looks a little different:

New Project User/Role Selection

When you open the page it will automatically select your username and the "No role" option.

You must either select a Role for yourself (or another user), or set the Username option to "No user" and the Role to "No role".

Note that in a brand-new URL you will need to create at least one Role before this dropdown can be populated.

Why we are making this change

When we built TrialGrid in 2016, the first feature was running Diagnostics on Medidata Rave study builds. We wanted that to be fast: log in, create a Project, load an ALS, run Diagnostics - so the person who created a Project became its Project Owner, a role with every permission in that Project.

Old Project Owner Selection

Ten years on, TrialGrid is much more than a study-build checker. Most work now happens through Project Roles: named sets of permissions, such as creating Drafts, editing objects, or applying labels. A Role lets Data Managers, Clinical Programmers and others work together in a Project, each with their own responsibilities. Against that, a single all-powerful Project Owner has become an awkward fit:

  • There can be only one Project Owner. To share that ownership you have to use Project Roles anyway.
  • Our larger customers do not use it, and many actively avoid it, preferring to manage every Project through defined Project Roles rather than a single owner.
  • Licensing. A Project Owner has every permission, which makes them a Full License user. If your organization only licenses Rave Diagnostics, seeing Full License users in your user listings causes confusion and the worry that you are under-licensed.

All in all, TrialGrid's functionality and adoption have outgrown the original Project Owner concept. The migration we have put in place means every user keeps the same permissions they had before, now within a more streamlined structure.

TrialGrid Version 87 - Richer Custom Properties, Veeva Diagnostics and Property Sheets

This is one of our largest releases to date. Version 87 rounds out Custom Properties with a full set of data types, brings a wave of new Veeva diagnostics and Test Case generation improvements, makes Property Sheets far more capable, and adds Timeline tracking, finer-grained permissions, and self-service API tokens. There is a great deal here, so let's work through it theme by theme.

For more information see the release notes for Version 87.

Custom Property Data Types

Custom Properties have grown from a handful of value kinds into a complete typing system. This release adds URI properties (validated as web addresses with a scheme), Color properties (hex codes shown as swatches and edited with a color picker), Numeric properties (with optional minimum and maximum bounds and decimal-place constraints), Date and DateTime properties (native pickers, displayed in your preferred date format and stored as ISO values), and Set properties (multi-value selection from a defined list of allowed values). Short text properties under 100 characters now render as a single-line input rather than a text area, making compact values quicker to read and edit.

Working with custom objects is easier too. A new Search columns filter lets you choose exactly which columns the search box matches against, and the Copy-from dialog gains the same control so you can restrict a search to a single column. For teams building tailored layouts, custom object Field nodes now accept an optional renderer that replaces the default input with a specialised widget - a number spinner for numeric properties, radio buttons for choices, or a transfer list for sets.

Property Sheets

Property Sheets see a major round of improvements. You can now create Property Sheets for Forms, and Veeva URLs come with a default set out of the box. Sheets can be made read-only - either the whole sheet or for specific child object definitions - and a new Exclude Blanks filter option hides rows where a column has no value.

Editing in the spreadsheet view is now much smoother. Choice columns use an in-cell dropdown with type-to-filter instead of a popup dialog, and a single click selects a choice or checkbox cell rather than immediately changing it - the dropdown opens only when you click the arrow, and a checkbox toggles only when you click the box. The newer property types are fully supported in spreadsheets too: Color properties show a swatch with the hex code and edit with a color picker, Set properties edit with a multi-select dropdown, and Date and DateTime properties display in your chosen format with a date/time picker.

Veeva Diagnostics

Version 87 brings a substantial expansion of Veeva diagnostics, most with autofixes and configurable exclusion lists. Several focus on form and item presentation - flagging ItemGroups where Header Visible or Visual Group isn't enabled, Items whose Control Type doesn't suit their codelist size, Forms with mixed radio-button orientations, and codelist groups whose Items use inconsistent control types. Others tighten data definitions: Items with overly long names, Date and Date/Time Items missing 'No Future Date', Items whose Length doesn't match their codelist's maximum choice code length, and data Items that aren't marked Required.

A further set targets clinical correctness. New diagnostics check that measurement Items (height, weight, vitals and the like) have an appropriate Unit Codelist and plausible Length, Decimal and value ranges, and that Unit Codelist conversion formulas match the canonical conversion factors. Others flag objects whose External ID doesn't match their Name, classify lot, kit and accession number Items that should be Text, check for inconsistent Form ordering across Events, and catch Concomitant Medications forms that collect Total Daily Dose alongside Dose and Frequency. We've also refined several existing diagnostics to play nicely with TrialGrid's auto-created local-lab objects, excluding them by default so findings stay focused on real issues.

Veeva Data Model

We've made Veeva builds more navigable and less error-prone. The relationship objects behind EventGroup Events, EventForms, Codelist Entries and Unit Codelist Entries are now displayed as custom object definitions, so their per-relationship properties - such as Visit Method, Dynamic, Choice Label and Conversion - appear directly in lists. More significantly, properties that previously held the free-text name of another Veeva object are now reference properties: Codelist and Unit Codelist on Items, and Event Group, Event, Form, Item Group and Item references across Casebook Variables, Rules, Repeating Event Groups, Review Plans and more. This enables dropdown selection and reference validation in place of typo-prone text, with existing URLs converted automatically by migration. When adding a new Veeva Vault, you can now copy roles, labels, custom objects, custom properties, actions and other settings from an existing Vault.

Veeva Test Case Generation

The Veeva Test Case generator has become considerably more capable and robust. It now handles a much wider range of rule shapes correctly - InWindow rules over event dates, Max/Min wrappers around wildcard references, IsBlank arguments in Add Event predicates, attributes shared across events, and rules that reference previous or next instances of repeating objects via [-1]/[+1] identifiers. It sequences login-block events and data entry into cascade-driven phases so gating data is entered before the events it enables, switches to a Background section with per-scenario subjects when different events need testing, and combines rules that share query text and an action target into a single scenario instead of one per rule. It also submits unsubmitted forms before checking derived values, skips lab forms, generates the right steps for event change reasons and did-not-occur attributes, and clearly surfaces a 'Subject ID must be set' issue when it cannot choose a unique value.

Alongside the generator, there are new and improved Test Case steps: setting visit method, change reason, planned date override and externally-owned on Events; adding a reason to 'did not occur' steps; and a new step to add an empty repeating form to an existing event. The editor now warns about invalid date, datetime and time values, and 'Has value' results show both the User String and the Coded Data for fields that use a data dictionary, matching what users see in Rave.

AI Agents

Several agents have been migrated to our new orchestrator framework - the Custom Function Review, Test Case Creator, Custom Function creator and Test Case search agents - for a more consistent and maintainable foundation. The Field Visibility Advisor (Medidata) and Progressive Display Advisor (Veeva) have also been updated for a more responsive experience. Note that any in-progress conversations with the updated agents will be cleared when this release is deployed; simply start a fresh chat to continue.

Document Templates

Document Templates gain a powerful new capability: an {% ai %}...{% endai %} tag that transforms the enclosed block content using an AI call, making it easy to summarise or rewrite sections of a template at generation time. The URL Document Templates list can now be filtered by scope, format and active state, and a new REST API lets you discover, generate and download document templates for drafts and projects programmatically.

Permissions and API Tokens

Access control gets finer-grained. A new 'Merge Draft' Project Role permission controls who can use the draft merge flow, and a separate 'Assign Users' permission governs whether users can assign people to objects from lists, draft objects and property sheets. Both default to disabled on existing roles so you can grant them deliberately. Users with the new 'Can Use API Tokens' permission can now create, view and revoke their own API tokens from their profile - token values are shown only once at creation, and existing tokens continue to work and are migrated automatically.

Actions

Action preconditions can now reference more of your build's context. Alongside the existing project-property function, you can reference draft properties with d("draft_property_name"), draft labels with draft_has_label("label_name"), and project labels with project_has_label("label_name"), making preconditions far more expressive.

Study Build, Labels and Timelines

A new Amendment Advisor compares two Drafts in a Project and highlights structural, field and edit-check changes that could cause data loss when a Rave Amendment Manager migration runs. The Draft Fields list gains a 'Copy from' button so fields can be copied from another draft, and Labels can now be applied to Fields, with full support in the Draft Fields list, Form editor and Copy Form modal, plus removal conditions that auto-remove a label when a Field's attributes change. For project tracking, Timeline Templates can be created at URL level and added to Projects so you can track progress against milestones.

Standards, Security and More

URLs can now disable the standards compliance approval workflow: compliance is still calculated for drafts linked to a library, but the Request Approval, Approve and Reject UI is hidden where it isn't wanted. TrialGrid can configure a minimum password length above the system default of 9 characters on a per-organization basis, and staff can export customer-authored diagnostics and document templates and re-apply them between URLs. A number of UX touches round things out - list-view buttons consolidated into 'Add' and 'Actions' groups, instant cloning of drafts that have no user assignments, Select All / Select None on the Project Role edit page, and a spreadsheet-style URL Team list. Finally, our validation documentation now links each issue to the release notes for the version in which it was fixed.

This post was auto-generated by a LLM.