@@ -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 ,
@@ -541,12 +542,14 @@ type RecursivePartial<T> = {
541542} ;
542543
543544interface EchoProvisionerResponses {
545+ init ?: RecursivePartial < Response > [ ] ;
544546 // parse is for observing any Terraform variables
545547 parse ?: RecursivePartial < Response > [ ] ;
546548 // plan occurs when the template is imported
547549 plan ?: RecursivePartial < Response > [ ] ;
548550 // apply occurs when the workspace is built
549551 apply ?: RecursivePartial < Response > [ ] ;
552+ graph ?: RecursivePartial < Response > [ ] ;
550553 // extraFiles allows the bundling of terraform files in echo provisioner tars
551554 // in order to support dynamic parameters
552555 extraFiles ?: Map < string , string > ;
@@ -561,6 +564,13 @@ const emptyPlan = new TextEncoder().encode("{}");
561564const createTemplateVersionTar = async (
562565 responses : EchoProvisionerResponses = { } ,
563566) : Promise < Buffer > => {
567+ if ( ! responses . init ) {
568+ responses . init = [
569+ {
570+ init : { } ,
571+ } ,
572+ ] ;
573+ }
564574 if ( ! responses . parse ) {
565575 responses . parse = [
566576 {
@@ -576,17 +586,24 @@ const createTemplateVersionTar = async (
576586 ] ;
577587 }
578588 if ( ! responses . plan ) {
579- responses . plan = responses . apply . map ( ( response ) => {
589+ responses . plan = [
590+ {
591+ plan : { } ,
592+ } ,
593+ ] ;
594+ }
595+ if ( ! responses . graph ) {
596+ responses . graph = responses . apply . map ( ( response ) => {
580597 if ( response . log ) {
581598 return response ;
582599 }
583600 return {
584- plan : {
585- error : response . apply ?. error ?? "" ,
586- resources : response . apply ?. resources ?? [ ] ,
587- parameters : response . apply ?. parameters ?? [ ] ,
588- externalAuthProviders : response . apply ?. externalAuthProviders ?? [ ] ,
589- timings : response . apply ?. timings ?? [ ] ,
601+ graph : {
602+ error : response . graph ?. error ?? "" ,
603+ resources : response . graph ?. resources ?? [ ] ,
604+ parameters : response . graph ?. parameters ?? [ ] ,
605+ externalAuthProviders : response . graph ?. externalAuthProviders ?? [ ] ,
606+ timings : response . graph ?. timings ?? [ ] ,
590607 presets : [ ] ,
591608 resourceReplacements : [ ] ,
592609 plan : emptyPlan ,
@@ -699,25 +716,25 @@ const createTemplateVersionTar = async (
699716 } ;
700717
701718 responses . apply . forEach ( ( response , index ) => {
702- response . apply = {
719+ response . graph = {
703720 error : "" ,
704721 state : new Uint8Array ( ) ,
705722 resources : [ ] ,
706723 parameters : [ ] ,
707724 externalAuthProviders : [ ] ,
708725 timings : [ ] ,
709726 aiTasks : [ ] ,
710- ...response . apply ,
727+ ...response . graph ,
711728 } as ApplyComplete ;
712- response . apply . resources = response . apply . resources ?. map ( fillResource ) ;
729+ response . graph . resources = response . graph . resources ?. map ( fillResource ) ;
713730
714731 tar . addFile (
715732 `${ index } .apply.protobuf` ,
716733 Response . encode ( response as Response ) . finish ( ) ,
717734 ) ;
718735 } ) ;
719- responses . plan . forEach ( ( response , index ) => {
720- response . plan = {
736+ responses . graph . forEach ( ( response , index ) => {
737+ response . graph = {
721738 error : "" ,
722739 resources : [ ] ,
723740 parameters : [ ] ,
@@ -730,9 +747,9 @@ const createTemplateVersionTar = async (
730747 moduleFiles : new Uint8Array ( ) ,
731748 moduleFilesHash : new Uint8Array ( ) ,
732749 aiTasks : [ ] ,
733- ...response . plan ,
734- } as PlanComplete ;
735- response . plan . resources = response . plan . resources ?. map ( fillResource ) ;
750+ ...response . graph ,
751+ } as GraphComplete ;
752+ response . graph . resources = response . graph . resources ?. map ( fillResource ) ;
736753
737754 tar . addFile (
738755 `${ index } .plan.protobuf` ,
@@ -890,21 +907,22 @@ ${options}}
890907 parse : { } ,
891908 } ,
892909 ] ,
893- plan : [
910+ graph : [
894911 {
895- plan : {
912+ graph : {
896913 parameters : richParameters ,
914+ resources : [
915+ {
916+ name : "example" ,
917+ } ,
918+ ] ,
897919 } ,
898920 } ,
899921 ] ,
900922 apply : [
901923 {
902924 apply : {
903- resources : [
904- {
905- name : "example" ,
906- } ,
907- ] ,
925+
908926 } ,
909927 } ,
910928 ] ,
@@ -921,22 +939,22 @@ export const echoResponsesWithExternalAuth = (
921939 parse : { } ,
922940 } ,
923941 ] ,
924- plan : [
942+ graph : [
925943 {
926- plan : {
944+ graph : {
927945 externalAuthProviders : providers ,
946+ resources : [
947+ {
948+ name : "example" ,
949+ } ,
950+ ] ,
928951 } ,
929952 } ,
930953 ] ,
931954 apply : [
932955 {
933956 apply : {
934- externalAuthProviders : providers ,
935- resources : [
936- {
937- name : "example" ,
938- } ,
939- ] ,
957+
940958 } ,
941959 } ,
942960 ] ,
0 commit comments