@@ -15,6 +15,7 @@ import { Result, Rule, Severity } from '../../rules-engine/types'
1515import Plugin , { ConfiguredPlugin , PluginManager } from '../types'
1616import DgraphDataProcessor from '../../rules-engine/data-processors/dgraph-data-processor'
1717import DataProcessor from '../../rules-engine/data-processors/data-processor'
18+ import getLinkedData from '../../utils/data'
1819
1920export default class PolicyPackPlugin extends Plugin {
2021 constructor ( {
@@ -137,13 +138,13 @@ export default class PolicyPackPlugin extends Plugin {
137138 }
138139
139140 private async executeRule ( {
141+ data,
140142 rules,
141143 policyPack,
142- storageEngine,
143144 } : {
145+ data : any ,
144146 rules : Rule [ ]
145147 policyPack : string
146- storageEngine : StorageEngine
147148 } ) : Promise < RuleFinding [ ] > {
148149 const findings : RuleFinding [ ] = [ ]
149150
@@ -159,18 +160,16 @@ export default class PolicyPackPlugin extends Plugin {
159160
160161 findings . push (
161162 ...( await this . executeRule ( {
163+ data,
162164 rules : subRules ,
163165 policyPack,
164- storageEngine,
165166 } ) )
166167 )
167168 } else {
168- const { data } = rule . gql
169- ? await storageEngine . query ( rule . gql )
170- : { data : undefined }
169+ const ruleData = rule . gql ? data : undefined
171170 const results = ( await this . policyPacksPlugins [
172171 policyPack
173- ] ?. engine ?. processRule ( rule , data ) ) as RuleFinding [ ]
172+ ] ?. engine ?. processRule ( rule , ruleData ) ) as RuleFinding [ ]
174173
175174 findings . push ( ...results )
176175 }
@@ -277,10 +276,12 @@ export default class PolicyPackPlugin extends Plugin {
277276 async execute ( {
278277 storageRunning,
279278 storageEngine,
279+ providerData,
280280 processConnectionsBetweenEntities,
281281 } : {
282282 storageRunning : boolean
283283 storageEngine : StorageEngine
284+ providerData : ProviderData
284285 processConnectionsBetweenEntities : ( props : {
285286 provider ?: string
286287 providerData : ProviderData
@@ -314,10 +315,13 @@ export default class PolicyPackPlugin extends Plugin {
314315 mergeSchemas ( currentSchema , findingsSchema ) ,
315316 ] )
316317
318+ // Format metadata and link connections
319+ const linkedData = getLinkedData ( providerData , this . provider . schemasMap )
320+
317321 const findings = await this . executeRule ( {
322+ data : linkedData ,
318323 rules,
319324 policyPack,
320- storageEngine,
321325 } )
322326
323327 // Prepare mutations
0 commit comments