@@ -53,6 +53,7 @@ export class CompositeModel {
5353 > | null ;
5454 compositionCheck : Awaited < ReturnType < RegistryChecks [ 'composition' ] > > ;
5555 conditionalBreakingChangeDiffConfig : null | ConditionalBreakingChangeDiffConfig ;
56+ failDiffOnDangerousChange : null | boolean ;
5657 } ) : Promise < Array < ContractCheckInput > | null > {
5758 const contractResults = ( args . compositionCheck . result ?? args . compositionCheck . reason )
5859 ?. contracts ;
@@ -80,6 +81,7 @@ export class CompositeModel {
8081 approvedChanges : contract . approvedChanges ?? null ,
8182 existingSdl : contract . latestValidVersion ?. compositeSchemaSdl ?? null ,
8283 incomingSdl : contractCompositionResult ?. result ?. fullSchemaSdl ?? null ,
84+ failDiffOnDangerousChange : args . failDiffOnDangerousChange ,
8385 } ) ,
8486 } ;
8587 } ) ,
@@ -104,6 +106,7 @@ export class CompositeModel {
104106 approvedChanges,
105107 conditionalBreakingChangeDiffConfig,
106108 contracts,
109+ failDiffOnDangerousChange,
107110 } : {
108111 input : {
109112 sdl : string ;
@@ -131,6 +134,7 @@ export class CompositeModel {
131134 organization : Organization ;
132135 approvedChanges : Map < string , SchemaChangeType > ;
133136 conditionalBreakingChangeDiffConfig : null | ConditionalBreakingChangeDiffConfig ;
137+ failDiffOnDangerousChange : null | boolean ;
134138 contracts : Array <
135139 ContractInput & {
136140 approvedChanges : Map < string , SchemaChangeType > | null ;
@@ -222,6 +226,7 @@ export class CompositeModel {
222226 contracts,
223227 compositionCheck,
224228 conditionalBreakingChangeDiffConfig,
229+ failDiffOnDangerousChange,
225230 } ) ;
226231 this . logger . info ( 'Contract checks: %o' , contractChecks ) ;
227232
@@ -234,6 +239,7 @@ export class CompositeModel {
234239 incomingSdl :
235240 compositionCheck . result ?. fullSchemaSdl ?? compositionCheck . reason ?. fullSchemaSdl ?? null ,
236241 conditionalBreakingChangeConfig : conditionalBreakingChangeDiffConfig ,
242+ failDiffOnDangerousChange,
237243 } ) ,
238244 this . checks . policyCheck ( {
239245 selector,
@@ -304,6 +310,7 @@ export class CompositeModel {
304310 baseSchema,
305311 contracts,
306312 conditionalBreakingChangeDiffConfig,
313+ failDiffOnDangerousChange,
307314 } : {
308315 input : PublishInput ;
309316 project : Project ;
@@ -323,6 +330,7 @@ export class CompositeModel {
323330 baseSchema : string | null ;
324331 contracts : Array < ContractInput > | null ;
325332 conditionalBreakingChangeDiffConfig : null | ConditionalBreakingChangeDiffConfig ;
333+ failDiffOnDangerousChange : null | boolean ;
326334 } ) : Promise < SchemaPublishResult > {
327335 const incoming : PushedCompositeSchema = {
328336 kind : 'composite' ,
@@ -478,12 +486,14 @@ export class CompositeModel {
478486 approvedChanges : null ,
479487 existingSdl : previousVersionSdl ,
480488 incomingSdl : compositionCheck . result ?. fullSchemaSdl ?? null ,
489+ failDiffOnDangerousChange,
481490 } ) ;
482491
483492 const contractChecks = await this . getContractChecks ( {
484493 contracts,
485494 compositionCheck,
486495 conditionalBreakingChangeDiffConfig,
496+ failDiffOnDangerousChange,
487497 } ) ;
488498
489499 const messages : string [ ] = [ ] ;
@@ -545,6 +555,7 @@ export class CompositeModel {
545555 baseSchema,
546556 conditionalBreakingChangeDiffConfig,
547557 contracts,
558+ failDiffOnDangerousChange,
548559 } : {
549560 input : {
550561 serviceName : string ;
@@ -569,6 +580,7 @@ export class CompositeModel {
569580 } | null ;
570581 contracts : Array < ContractInput > | null ;
571582 conditionalBreakingChangeDiffConfig : null | ConditionalBreakingChangeDiffConfig ;
583+ failDiffOnDangerousChange : null | boolean ;
572584 } ) : Promise < SchemaDeleteResult > {
573585 const incoming : DeletedCompositeSchema = {
574586 kind : 'composite' ,
@@ -645,12 +657,14 @@ export class CompositeModel {
645657 approvedChanges : null ,
646658 existingSdl : previousVersionSdl ,
647659 incomingSdl : compositionCheck . result ?. fullSchemaSdl ?? null ,
660+ failDiffOnDangerousChange,
648661 } ) ;
649662
650663 const contractChecks = await this . getContractChecks ( {
651664 contracts,
652665 compositionCheck,
653666 conditionalBreakingChangeDiffConfig,
667+ failDiffOnDangerousChange,
654668 } ) ;
655669
656670 if (
0 commit comments