Best practices
Recommended GIT directory structure
- Every entity descriptor is pushed to GIT. The files can be copied in a flat or unlimited nested directory structure.
However, it is strongly recommended to follow the following structure. - create a directory
/config/
and use it as the root directory for all your configuration files. Then the following paths should be used: - schemas:
/config/schemas
- dataSources:
/config/dataSources
- dataSinks:
/config/dataSinks
- dataFeeds:
/config/dataFeeds
- distributions:
/config/distributions
- dataBlockCollections:
/config/datablockCollections
- scriptables:
/config/scriptables
- rest Extensions:
/config/restExtensions
- api extensions:
/config/apiExtensions
- orchestrations:
config/orchestrations
- dataPointTemplates:
dataPointTemplates
- sysProps:
/config/sysProps
API tokens and secrets
Apiro has support for enterprise vaults and secret managers like AWS KMS
, Azure KeyVault
or Cyberark
but it also supports local system properties and secrets.
It is strongly advised to always encode any keys that are placed in system properties as explained in the Authentication Manager page
Pipeline Data Processors
- When creating data processors you should modify values only within the data point descriptor
- Note: This point will be clearer once you complete section 8 of the getting started guide.
- We can see two data point descriptions below,
TFN
andTFN_MASKED
. TFN_MASKED
is a derived field because it masks theTFN
value. We can see the processorTFN_HASH_MASKING
is included in theTFN_MASKED
data point descriptor and not in theTFN
. This is a best practice to ensure that all processors that modify a specific data point are included in the data point itself and not update other data points. This ensures that it is easier to troubleshoot and understand what modifies a specific data point.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
<dataPoint name="TFN" dataType="STRING"/> <dataPoint name="TFN_MASKED" dataType="STRING"> <consDPProcessors> <consDPProcessor name="TFN_HASH_MASKING" entity="HASH_MASK"> <config> <![CDATA[ { "inputValue":"#GRV{ CTX['TFN'] }", "maskingSalt":"akjahsdfkljhadsflkjhasldkfhakls" } ]]> </config> </consDPProcessor> </consDPProcessors> </dataPoint>