@@ -32,6 +32,7 @@ import {
3232 type ApplyComplete ,
3333 AppSharingLevel ,
3434 type ExternalAuthProviderResource ,
35+ type GraphComplete ,
3536 type ParseComplete ,
3637 type PlanComplete ,
3738 type Resource ,
@@ -540,12 +541,14 @@ type RecursivePartial<T> = {
540541} ;
541542
542543interface EchoProvisionerResponses {
544+ init ?: RecursivePartial < Response > [ ] ;
543545 // parse is for observing any Terraform variables
544546 parse ?: RecursivePartial < Response > [ ] ;
545547 // plan occurs when the template is imported
546548 plan ?: RecursivePartial < Response > [ ] ;
547549 // apply occurs when the workspace is built
548550 apply ?: RecursivePartial < Response > [ ] ;
551+ graph ?: RecursivePartial < Response > [ ] ;
549552 // extraFiles allows the bundling of terraform files in echo provisioner tars
550553 // in order to support dynamic parameters
551554 extraFiles ?: Map < string , string > ;
@@ -560,6 +563,13 @@ const emptyPlan = new TextEncoder().encode("{}");
560563const createTemplateVersionTar = async (
561564 responses : EchoProvisionerResponses = { } ,
562565) : Promise < Buffer > => {
566+ if ( ! responses . init ) {
567+ responses . init = [
568+ {
569+ init : { } ,
570+ } ,
571+ ] ;
572+ }
563573 if ( ! responses . parse ) {
564574 responses . parse = [
565575 {
@@ -575,17 +585,24 @@ const createTemplateVersionTar = async (
575585 ] ;
576586 }
577587 if ( ! responses . plan ) {
578- responses . plan = responses . apply . map ( ( response ) => {
588+ responses . plan = [
589+ {
590+ plan : { } ,
591+ } ,
592+ ] ;
593+ }
594+ if ( ! responses . graph ) {
595+ responses . graph = responses . apply . map ( ( response ) => {
579596 if ( response . log ) {
580597 return response ;
581598 }
582599 return {
583- plan : {
584- error : response . apply ?. error ?? "" ,
585- resources : response . apply ?. resources ?? [ ] ,
586- parameters : response . apply ?. parameters ?? [ ] ,
587- externalAuthProviders : response . apply ?. externalAuthProviders ?? [ ] ,
588- timings : response . apply ?. timings ?? [ ] ,
600+ graph : {
601+ error : response . graph ?. error ?? "" ,
602+ resources : response . graph ?. resources ?? [ ] ,
603+ parameters : response . graph ?. parameters ?? [ ] ,
604+ externalAuthProviders : response . graph ?. externalAuthProviders ?? [ ] ,
605+ timings : response . graph ?. timings ?? [ ] ,
589606 presets : [ ] ,
590607 resourceReplacements : [ ] ,
591608 plan : emptyPlan ,
@@ -698,25 +715,25 @@ const createTemplateVersionTar = async (
698715 } ;
699716
700717 responses . apply . forEach ( ( response , index ) => {
701- response . apply = {
718+ response . graph = {
702719 error : "" ,
703720 state : new Uint8Array ( ) ,
704721 resources : [ ] ,
705722 parameters : [ ] ,
706723 externalAuthProviders : [ ] ,
707724 timings : [ ] ,
708725 aiTasks : [ ] ,
709- ...response . apply ,
726+ ...response . graph ,
710727 } as ApplyComplete ;
711- response . apply . resources = response . apply . resources ?. map ( fillResource ) ;
728+ response . graph . resources = response . graph . resources ?. map ( fillResource ) ;
712729
713730 tar . addFile (
714731 `${ index } .apply.protobuf` ,
715732 Response . encode ( response as Response ) . finish ( ) ,
716733 ) ;
717734 } ) ;
718- responses . plan . forEach ( ( response , index ) => {
719- response . plan = {
735+ responses . graph . forEach ( ( response , index ) => {
736+ response . graph = {
720737 error : "" ,
721738 resources : [ ] ,
722739 parameters : [ ] ,
@@ -729,9 +746,9 @@ const createTemplateVersionTar = async (
729746 moduleFiles : new Uint8Array ( ) ,
730747 moduleFilesHash : new Uint8Array ( ) ,
731748 aiTasks : [ ] ,
732- ...response . plan ,
733- } as PlanComplete ;
734- response . plan . resources = response . plan . resources ?. map ( fillResource ) ;
749+ ...response . graph ,
750+ } as GraphComplete ;
751+ response . graph . resources = response . graph . resources ?. map ( fillResource ) ;
735752
736753 tar . addFile (
737754 `${ index } .plan.protobuf` ,
@@ -889,21 +906,22 @@ ${options}}
889906 parse : { } ,
890907 } ,
891908 ] ,
892- plan : [
909+ graph : [
893910 {
894- plan : {
911+ graph : {
895912 parameters : richParameters ,
913+ resources : [
914+ {
915+ name : "example" ,
916+ } ,
917+ ] ,
896918 } ,
897919 } ,
898920 ] ,
899921 apply : [
900922 {
901923 apply : {
902- resources : [
903- {
904- name : "example" ,
905- } ,
906- ] ,
924+
907925 } ,
908926 } ,
909927 ] ,
@@ -920,22 +938,22 @@ export const echoResponsesWithExternalAuth = (
920938 parse : { } ,
921939 } ,
922940 ] ,
923- plan : [
941+ graph : [
924942 {
925- plan : {
943+ graph : {
926944 externalAuthProviders : providers ,
945+ resources : [
946+ {
947+ name : "example" ,
948+ } ,
949+ ] ,
927950 } ,
928951 } ,
929952 ] ,
930953 apply : [
931954 {
932955 apply : {
933- externalAuthProviders : providers ,
934- resources : [
935- {
936- name : "example" ,
937- } ,
938- ] ,
956+
939957 } ,
940958 } ,
941959 ] ,
0 commit comments