[Environment Sticker] Site property system tables

[Environment Sticker] Site property system tables

Forge Component
Published on 2013-12-24 by Paulo Ramos
11 votes
Published on 2013-12-24 by Paulo Ramos
Hi Paulo,

First, great component! It looks to solve a lot of problems around QA and protecting data between environments. I really appreciate you taking the time to develop and share this with the community.

If you don't mind, I have a question about this application...

I was told that the effective values of site properties are not retrievable from within an Outsystems application, but I see the 'Site_Property_Definition' and 'Site_Property_Shared' tables which appear to expose values. (The description of the shared table says 'Single tenant site property effective values.')

Is this a safe and reliable way to retrieve these values? What about future upgrades to the platform (do you think this will continue to be exposed/supported. Also what about multi-tenant site properties?

My use case is that I would like to look at the EFFECTIVE value of a site property given the environment that I am in and modularize this.
Hi Brian,

I assume you need a dynamic way of accessing and changing site property values for all eSpaces, and exposing public actions reading / updating the values (using the Site.PropertyName keyword) would not suffice (this would be the easier way).

Multi-tenant site properties are kept in the 'Site_Property' entity. I'd say it's relatively safe to use these entities if you know what you're doing. :) But as with most things you can't be 100% assured it won't change in a future release. In that case, the breaking changes documentation would give you some alternative, requiring or not manual intervention during the upgrade.

Also, you probably need to use action EspaceInvalidateCache (from System references) after you change a site property value (as they are cached in runtime when you use the Site keyword). For this reason, don't use site properties for data continuously changing, as it may affect performance.

Having said that, check out the Site Properties Management component in the Forge. I haven't tried it, but it seems to match your use case.