[NOPE] NOPE - Usage Manual

[NOPE] NOPE - Usage Manual

  
Forge Component
(3)
Published on 2017-09-03 by Armando Gomes
3 votes
Published on 2017-09-03 by Armando Gomes

Work in progress. Come back later :)

Solution

Here we go:


- What is NOPE?

NOPE is a (N)o M(o)re Site (P)rop(E)rties initiative. It allows you to easily manage and use configuration values cross-application.


- What can NOPE do for you?

Replace Site Properties and allow people without development access to configure them. No more "can you please change the value from X to Y?".


- How can I define variables?

The ConfigurationEntry entity has all the variables present on the System. Each record of this entity has the following properties:


Label: name of the variable

Description: context help description

ConfigurationGroupId: filtering purposes

IsTimeSensitive: If the value is time sensitive (explained later)

ConfigurationTypeId: Data type (Integer, Decimal, Boolean, Text, Date, DateTime)


- How can I configure variables?

On the /NOPE endpoint, you can configure the values for those variables.


- How can I use those variables?

Just reference the GetConfiguration<Type> Server Actions.


- What is the IsTimeSensitive property?

Let's say the pre-order price is 10 and the regular price is 20. You pre-order it and you'll only be billed during regular price season. With this time-sensitive property, you can always get the value that was active at a specific time - passed by parameter.


- Do you record a log of any change?

Yes. There's an entity called ConfigurationValueHistory (viewable on the History tab) that has the record of all the changes made to any given variable.


- Who can view and change values?

There are two roles: NOPERead and NOPEManager. The names are pretty self explanatory.


- How do I change environments?

There's the Data Management feature which includes the Export / Import functionality. The Import feature has two operation modes: clean import and not-so-clean import. The clean import, erases every configuration and creates the configurations that are on the file. The no-so-clean import just replace the configurations that are on the file. Assuming that you have 10 values configured and a file with just 5, the first scenario will produce an output of 5 variables (5 were deleted) while the second scenario will still have 10 variables, with only 5 being overwritten.


- What about versioning/tags?

There's a feature called Snapshots. With Snapshots, you can create, well... a Snapshot of your current configuration. This way, you can easily rollback into a point in time for which you know it was working.


- WebReferences? Why?

Once I had a project with lots of WebReferences. As such, it was common for us to go to Service Center and manually disable the WebReferences in order to test error behavior and flow execution. As Jesse Ventura would say, "I ain't got time to do that" - and, as a result, you'll just need to create the WebReference Prefix (default property) and, within a click of a button, you can enable/disable the WebReference. Note: this feature is in beta testing. I haven't had the opportunity to test it in "real world" projects.


- I've found an issue or I want to suggest something awesome.

Drop a new discussion or send me a private message.


Cheers,

Armando

Solution