Inheritable session custom properties

In a previous project (using Vision) we used Client Vision Tags in a higher-level project and subsequent projects that were set to inherit this project would also inherit the Client Vision Tags.

We are now tasked with using Perspective to create a similar project. We would like to use the same methodology but it appears that the Perspective equivalent (session custom properties) has no inheritance from a high-level project.

Is there any way to access the session custom properties of the inherited project?
Thank you.

1 Like

No, and if I remember correctly, this has to do with how the inheritance works. When you “inherit” a resource from the parent, you’re using the parent’s resource - you are not using the parent’s resource AND whatever you add to it, unless you override the resource. But we can’t do that with session properties because there is no resource to right-click and select the override option.

For example, if you inherit ViewA from a parent project, you can use ViewA as it is in the parent. If you want to override ViewA, you right-click the resource node and select “Override Resource”. This copies the resource to the “local” project and when make some changes and now you have “ViewAPrime”. Nowhere in the Designer do you have the ability to select/modify/override session props as a resource.

Cody’s essentially correct. Project inheritance is an either/or - you either have (a) parent’s resource, or your own. There’s no ability to ‘super’ to the original resource, because each resource type is different, and doing that would require the project system to ‘know’ intimate details of each type. The UI/UX around this is fairly poor, and we’re gradually working to make it more clear (the same restriction applies to project properties, for instance, but the UI there was much improved midstream 8.0.X).

What I use to keep things in “sync” is a combination of a designer setup script and a runtime script that runs on startup of the session. The script is part of an inherited project.

On a new project, or if our session.custom properties change, we run the setup script in each project, this goes through a dict structure in the script and sets up the session.custom in the designer. Then the startup script is added to the perspective session startup to do logging and init of the values of session.custom as needed so you don’t need to make sure you save the properties correctly in the designer every time you save.