@@ -50,12 +50,12 @@ class SummaryCreator {
5050 workflowSummary[' container' ] = workflow. container
5151 }
5252
53- workflowSummary[' launchDir' ] = workflow. launchDir
54- workflowSummary[' workDir' ] = workflow. workDir
55- workflowSummary[' projectDir' ] = workflow. projectDir
53+ workflowSummary[' launchDir' ] = maybeMask( workflow. launchDir)
54+ workflowSummary[' workDir' ] = maybeMask( workflow. workDir)
55+ workflowSummary[' projectDir' ] = maybeMask( workflow. projectDir)
5656 workflowSummary[' userName' ] = workflow. userName
5757 workflowSummary[' profile' ] = workflow. profile
58- workflowSummary[' configFiles' ] = workflow. configFiles ? workflow. configFiles. join(' , ' ) : ' '
58+ workflowSummary[' configFiles' ] = maybeMask( workflow. configFiles ? workflow. configFiles. join(' , ' ) : ' ' )
5959
6060 // Get pipeline parameters defined in JSON Schema
6161 Map paramsSummary = [:]
@@ -121,32 +121,49 @@ class SummaryCreator {
121121
122122 // We have a default in the schema, and this isn't it
123123 if (defaultValue != null && value != defaultValue) {
124- summary. put(param, maybeMaskFusionMount(maybeMaskBucketNames(( value)) ))
124+ summary. put(param, maybeMask( value))
125125 }
126126 // No default in the schema, and this isn't empty or false
127127 else if (defaultValue == null && value != ' ' && value != null && value != false && value != ' false' ) {
128- summary. put(param, maybeMaskFusionMount(maybeMaskBucketNames(( value)) ))
128+ summary. put(param, maybeMask( value))
129129 }
130130 }
131131 }
132132 return summary
133133 }
134134
135- private String maybeMaskFusionMount (String value ) {
135+ private CharSequence maybeMask (Path value ) {
136+ return maybeMask(value. toString())
137+ }
138+
139+ private CharSequence maybeMask (CharSequence value ) {
140+ return maybeMaskFusionMount(maybeMaskBucketNames(maybeMaskFromPaths(value)))
141+ }
142+
143+ private CharSequence maybeMaskFusionMount (CharSequence value ) {
136144 if (config. summary. maskFusionMount) {
137145 return value. replace(' /fusion' , ' ' )
138146 }
139147 return value
140148 }
141149
142150 // see https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html
143- static final String S3_BUCKET_PATH_PREFIX = ' \\ /s3\\ /[a-z0-9][a-z0-9-]{1,61}[a-z0-9]\\ /'
144- static final String S3_BUCKET_URI_PREFIX = ' s3:\\ /\\ /[a-z0-9][a-z0-9-]{1,61}[a-z0-9]\\ /'
151+ static final CharSequence S3_BUCKET_PATH_PREFIX = ' \\ /s3\\ /[a-z0-9][a-z0-9-]{1,61}[a-z0-9]\\ /'
152+ static final CharSequence S3_BUCKET_URI_PREFIX = ' s3:\\ /\\ /[a-z0-9][a-z0-9-]{1,61}[a-z0-9]\\ /'
145153
146- private String maybeMaskBucketNames (String value ) {
147- if (config. summary. maskBucketNames) {
148- value. replaceAll(S3_BUCKET_PATH_PREFIX , ' ' )
149- value. replaceAll(S3_BUCKET_URI_PREFIX , ' ' )
154+ private CharSequence maybeMaskBucketNames (CharSequence value ) {
155+ if (config. summary. maskBucketNames) {
156+ value = value. replaceAll(S3_BUCKET_PATH_PREFIX , ' /[** masked **]/' )
157+ value = value. replaceAll(S3_BUCKET_URI_PREFIX , ' [** masked **]/' )
158+ }
159+ return value
160+ }
161+
162+ private CharSequence maybeMaskFromPaths (CharSequence value ) {
163+ if (config. summary. maskFromPaths != null && config. summary. maskFromPaths. size() > 0 ) {
164+ for (CharSequence toReplace : config. summary. maskFromPaths) {
165+ value = value. replace(toReplace, ' [** masked **]' )
166+ }
150167 }
151168 return value
152169 }
0 commit comments