Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package terraform for openSUSE:Factory 
checked in at 2022-06-23 10:25:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/terraform (Old)
 and      /work/SRC/openSUSE:Factory/.terraform.new.1548 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "terraform"

Thu Jun 23 10:25:14 2022 rev:35 rq:984655 version:1.2.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/terraform/terraform.changes      2022-06-07 
11:45:38.655272452 +0200
+++ /work/SRC/openSUSE:Factory/.terraform.new.1548/terraform.changes    
2022-06-23 10:25:50.783842739 +0200
@@ -1,0 +2,20 @@
+Wed Jun 22 07:58:20 UTC 2022 - Johannes Kastl <ka...@b1-systems.de>
+
+- Update to 1.2.3:
+  * UPGRADE NOTES:
+    The following remote state backends are now marked as deprecated, and are
+    planned to be removed in a future Terraform release. These backends have
+    been unmaintained since before Terraform v1.0, and may contain known bugs,
+    outdated packages, or security vulnerabilities.
+    - artifactory
+    - etcd
+    - etcdv3
+    - manta
+    - swift
+  * BUG FIXES:
+    - Missing check for error diagnostics in GetProviderSchema could result in 
panic (#31184)
+    - Module registries returning X-Terraform-Get locations with no URL would 
error with "no getter available for X-Terraform-Get source protocol" (#31237)
+    - Fix crash from concurrent operation on shared set of resource instance 
dependencies (#31246)
+    - backend/cos: tencentcloud-terraform-lock tag was not removed in all 
cases (#31223)
+
+-------------------------------------------------------------------

Old:
----
  terraform-1.2.2.obscpio
  terraform-1.2.2.tar.gz

New:
----
  terraform-1.2.3.obscpio
  terraform-1.2.3.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ terraform.spec ++++++
--- /var/tmp/diff_new_pack.ZsW0cG/_old  2022-06-23 10:25:51.623843652 +0200
+++ /var/tmp/diff_new_pack.ZsW0cG/_new  2022-06-23 10:25:51.623843652 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           terraform
-Version:        1.2.2
+Version:        1.2.3
 Release:        0
 Summary:        Tool for building infrastructure safely and efficiently
 License:        MPL-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.ZsW0cG/_old  2022-06-23 10:25:51.667843700 +0200
+++ /var/tmp/diff_new_pack.ZsW0cG/_new  2022-06-23 10:25:51.671843704 +0200
@@ -3,8 +3,8 @@
     <param name="url">https://github.com/hashicorp/terraform</param>
     <param name="scm">git</param>
     <param name="filename">terraform</param>
-    <param name="versionformat">1.2.2</param>
-    <param name="revision">v1.2.2</param>
+    <param name="versionformat">1.2.3</param>
+    <param name="revision">v1.2.3</param>
     <param name="exclude">.git</param>
   </service>
   <service name="tar" mode="disabled"/>
@@ -16,7 +16,7 @@
     <param name="basename">terraform</param>
   </service>
   <service name="go_modules" mode="disabled">
-    <param name="archive">terraform-1.2.2.tar.gz</param>
+    <param name="archive">terraform-1.2.3.tar.gz</param>
   </service>
 </services>
 

++++++ terraform-1.2.2.obscpio -> terraform-1.2.3.obscpio ++++++
/work/SRC/openSUSE:Factory/terraform/terraform-1.2.2.obscpio 
/work/SRC/openSUSE:Factory/.terraform.new.1548/terraform-1.2.3.obscpio differ: 
char 49, line 1

++++++ terraform-1.2.2.tar.gz -> terraform-1.2.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terraform-1.2.2/CHANGELOG.md 
new/terraform-1.2.3/CHANGELOG.md
--- old/terraform-1.2.2/CHANGELOG.md    2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/CHANGELOG.md    2022-06-15 19:34:28.000000000 +0200
@@ -1,3 +1,24 @@
+## 1.2.3 (June 15, 2022)
+
+UPGRADE NOTES:
+
+* The following remote state backends are now marked as deprecated, and are
+  planned to be removed in a future Terraform release. These backends have
+  been unmaintained since before Terraform v1.0, and may contain known bugs,
+  outdated packages, or security vulnerabilities.
+  - artifactory
+  - etcd
+  - etcdv3
+  - manta
+  - swift
+
+BUG FIXES:
+
+* Missing check for error diagnostics in GetProviderSchema could result in 
panic ([#31184](https://github.com/hashicorp/terraform/issues/31184))
+* Module registries returning X-Terraform-Get locations with no URL would 
error with "no getter available for X-Terraform-Get source protocol" 
([#31237](https://github.com/hashicorp/terraform/issues/31237))
+* Fix crash from concurrent operation on shared set of resource instance 
dependencies ([#31246](https://github.com/hashicorp/terraform/issues/31246))
+* backend/cos: `tencentcloud-terraform-lock` tag was not removed in all cases 
([#31223](https://github.com/hashicorp/terraform/issues/31223))
+
 ## 1.2.2 (June 01, 2022)
 
 ENHANCEMENTS:
@@ -8,7 +29,7 @@
 
 * Terraform now hides invalid input values for sensitive root module variables 
when generating error diagnostics 
([#30552](https://github.com/hashicorp/terraform/issues/30552))
 * Fixed crash on CLI autocomplete 
([#31160](https://github.com/hashicorp/terraform/issues/31160))
-* The "Configuration contains unknown values" error message now includes 
attribute paths ([#3111](https://github.com/hashicorp/terraform/issues/3111))
+* The "Configuration contains unknown values" error message now includes 
attribute paths ([#31111](https://github.com/hashicorp/terraform/issues/31111))
 
 ## 1.2.1 (May 23, 2022)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terraform-1.2.2/go.mod new/terraform-1.2.3/go.mod
--- old/terraform-1.2.2/go.mod  2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/go.mod  2022-06-15 19:34:28.000000000 +0200
@@ -36,7 +36,7 @@
        github.com/hashicorp/go-azure-helpers v0.31.1
        github.com/hashicorp/go-checkpoint v0.5.0
        github.com/hashicorp/go-cleanhttp v0.5.2
-       github.com/hashicorp/go-getter v1.6.1
+       github.com/hashicorp/go-getter v1.6.2
        github.com/hashicorp/go-hclog v0.15.0
        github.com/hashicorp/go-multierror v1.1.1
        github.com/hashicorp/go-plugin v1.4.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terraform-1.2.2/go.sum new/terraform-1.2.3/go.sum
--- old/terraform-1.2.2/go.sum  2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/go.sum  2022-06-15 19:34:28.000000000 +0200
@@ -387,8 +387,8 @@
 github.com/hashicorp/go-cleanhttp v0.5.2/go.mod 
h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
 github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320/go.mod 
h1:EiZBMaudVLy8fmjf9Npq1dq9RalhveqZG5w/yz3mHWs=
 github.com/hashicorp/go-getter v1.5.3/go.mod 
h1:BrrV/1clo8cCYu6mxvboYg+KutTiFnXjMEgDD8+i7ZI=
-github.com/hashicorp/go-getter v1.6.1 
h1:NASsgP4q6tL94WH6nJxKWj8As2H/2kop/bB1d8JMyRY=
-github.com/hashicorp/go-getter v1.6.1/go.mod 
h1:IZCrswsZPeWv9IkVnLElzRU/gz/QPi6pZHn4tv6vbwA=
+github.com/hashicorp/go-getter v1.6.2 
h1:7jX7xcB+uVCliddZgeKyNxv0xoT7qL5KDtH7rU4IqIk=
+github.com/hashicorp/go-getter v1.6.2/go.mod 
h1:IZCrswsZPeWv9IkVnLElzRU/gz/QPi6pZHn4tv6vbwA=
 github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod 
h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI=
 github.com/hashicorp/go-hclog v0.9.2/go.mod 
h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=
 github.com/hashicorp/go-hclog v0.12.0/go.mod 
h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terraform-1.2.2/internal/backend/init/init.go 
new/terraform-1.2.3/internal/backend/init/init.go
--- old/terraform-1.2.2/internal/backend/init/init.go   2022-06-01 
18:11:56.000000000 +0200
+++ new/terraform-1.2.3/internal/backend/init/init.go   2022-06-15 
19:34:28.000000000 +0200
@@ -54,26 +54,22 @@
                "remote": func() backend.Backend { return 
backendRemote.New(services) },
 
                // Remote State backends.
-               "artifactory": func() backend.Backend { return 
backendArtifactory.New() },
-               "azurerm":     func() backend.Backend { return 
backendAzure.New() },
-               "consul":      func() backend.Backend { return 
backendConsul.New() },
-               "cos":         func() backend.Backend { return backendCos.New() 
},
-               "etcd":        func() backend.Backend { return 
backendEtcdv2.New() },
-               "etcdv3":      func() backend.Backend { return 
backendEtcdv3.New() },
-               "gcs":         func() backend.Backend { return backendGCS.New() 
},
-               "http":        func() backend.Backend { return 
backendHTTP.New() },
-               "inmem":       func() backend.Backend { return 
backendInmem.New() },
-               "kubernetes":  func() backend.Backend { return 
backendKubernetes.New() },
-               "manta":       func() backend.Backend { return 
backendManta.New() },
-               "oss":         func() backend.Backend { return backendOSS.New() 
},
-               "pg":          func() backend.Backend { return backendPg.New() 
},
-               "s3":          func() backend.Backend { return backendS3.New() 
},
-               "swift":       func() backend.Backend { return 
backendSwift.New() },
+               "azurerm":    func() backend.Backend { return 
backendAzure.New() },
+               "consul":     func() backend.Backend { return 
backendConsul.New() },
+               "cos":        func() backend.Backend { return backendCos.New() 
},
+               "gcs":        func() backend.Backend { return backendGCS.New() 
},
+               "http":       func() backend.Backend { return backendHTTP.New() 
},
+               "inmem":      func() backend.Backend { return 
backendInmem.New() },
+               "kubernetes": func() backend.Backend { return 
backendKubernetes.New() },
+               "oss":        func() backend.Backend { return backendOSS.New() 
},
+               "pg":         func() backend.Backend { return backendPg.New() },
+               "s3":         func() backend.Backend { return backendS3.New() },
 
                // Terraform Cloud 'backend'
                // This is an implementation detail only, used for the cloud 
package
                "cloud": func() backend.Backend { return 
backendCloud.New(services) },
 
+               // FIXME: remove deprecated backends for v1.3
                // Deprecated backends.
                "azure": func() backend.Backend {
                        return deprecateBackend(
@@ -81,6 +77,36 @@
                                `Warning: "azure" name is deprecated, please 
use "azurerm"`,
                        )
                },
+               "artifactory": func() backend.Backend {
+                       return deprecateBackend(
+                               backendArtifactory.New(),
+                               `Warning: "artifactory" backend is deprecated, 
and will be removed in a future release."`,
+                       )
+               },
+               "etcd": func() backend.Backend {
+                       return deprecateBackend(
+                               backendEtcdv2.New(),
+                               `Warning: "etcd" backend is deprecated, and 
will be removed in a future release."`,
+                       )
+               },
+               "etcdv3": func() backend.Backend {
+                       return deprecateBackend(
+                               backendEtcdv3.New(),
+                               `Warning: "etcdv3" backend is deprecated, and 
will be removed in a future release."`,
+                       )
+               },
+               "manta": func() backend.Backend {
+                       return deprecateBackend(
+                               backendManta.New(),
+                               `Warning: "manta" backend is deprecated, and 
will be removed in a future release."`,
+                       )
+               },
+               "swift": func() backend.Backend {
+                       return deprecateBackend(
+                               backendSwift.New(),
+                               `Warning: "swift" backend is deprecated, and 
will be removed in a future release."`,
+                       )
+               },
        }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terraform-1.2.2/internal/backend/init/init_test.go 
new/terraform-1.2.3/internal/backend/init/init_test.go
--- old/terraform-1.2.2/internal/backend/init/init_test.go      2022-06-01 
18:11:56.000000000 +0200
+++ new/terraform-1.2.3/internal/backend/init/init_test.go      2022-06-15 
19:34:28.000000000 +0200
@@ -18,14 +18,17 @@
                {"azurerm", "*azure.Backend"},
                {"consul", "*consul.Backend"},
                {"cos", "*cos.Backend"},
-               {"etcdv3", "*etcd.Backend"},
                {"gcs", "*gcs.Backend"},
                {"inmem", "*inmem.Backend"},
-               {"manta", "*manta.Backend"},
                {"pg", "*pg.Backend"},
                {"s3", "*s3.Backend"},
-               {"swift", "*swift.Backend"},
+
                {"azure", "init.deprecatedBackendShim"},
+               {"artifactory", "init.deprecatedBackendShim"},
+               {"etcd", "init.deprecatedBackendShim"},
+               {"etcdv3", "init.deprecatedBackendShim"},
+               {"manta", "init.deprecatedBackendShim"},
+               {"swift", "init.deprecatedBackendShim"},
        }
 
        // Make sure we get the requested backend
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/internal/backend/remote-state/cos/client.go 
new/terraform-1.2.3/internal/backend/remote-state/cos/client.go
--- old/terraform-1.2.2/internal/backend/remote-state/cos/client.go     
2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/internal/backend/remote-state/cos/client.go     
2022-06-15 19:34:28.000000000 +0200
@@ -123,6 +123,11 @@
                return c.lockError(err)
        }
 
+       err = c.cosUnlock(c.bucket, c.lockFile)
+       if err != nil {
+               return c.lockError(err)
+       }
+
        return nil
 }
 
@@ -362,6 +367,16 @@
 
        var err error
        for i := 0; i < 30; i++ {
+               tagExists, err := c.CheckTag(lockTagKey, lockTagValue)
+
+               if err != nil {
+                       return err
+               }
+
+               if !tagExists {
+                       return nil
+               }
+
                err = c.DeleteTag(lockTagKey, lockTagValue)
                if err == nil {
                        return nil
@@ -372,6 +387,30 @@
        return err
 }
 
+// CheckTag checks if tag key:value exists
+func (c *remoteClient) CheckTag(key, value string) (exists bool, err error) {
+       request := tag.NewDescribeTagsRequest()
+       request.TagKey = &key
+       request.TagValue = &value
+
+       response, err := c.tagClient.DescribeTags(request)
+       log.Printf("[DEBUG] create tag %s:%s: error: %v", key, value, err)
+       if err != nil {
+               return
+       }
+
+       if len(response.Response.Tags) == 0 {
+               return
+       }
+
+       tagKey := response.Response.Tags[0].TagKey
+       tagValue := response.Response.Tags[0].TagValue
+
+       exists = key == *tagKey && value == *tagValue
+
+       return
+}
+
 // CreateTag create tag by key and value
 func (c *remoteClient) CreateTag(key, value string) error {
        request := tag.NewCreateTagRequest()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terraform-1.2.2/internal/plugin/grpc_provider.go 
new/terraform-1.2.3/internal/plugin/grpc_provider.go
--- old/terraform-1.2.2/internal/plugin/grpc_provider.go        2022-06-01 
18:11:56.000000000 +0200
+++ new/terraform-1.2.3/internal/plugin/grpc_provider.go        2022-06-15 
19:34:28.000000000 +0200
@@ -137,6 +137,10 @@
 
        resp.Diagnostics = 
resp.Diagnostics.Append(convert.ProtoToDiagnostics(protoResp.Diagnostics))
 
+       if resp.Diagnostics.HasErrors() {
+               return resp
+       }
+
        if protoResp.Provider == nil {
                resp.Diagnostics = resp.Diagnostics.Append(errors.New("missing 
provider schema"))
                return resp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/internal/plugin/grpc_provider_test.go 
new/terraform-1.2.3/internal/plugin/grpc_provider_test.go
--- old/terraform-1.2.2/internal/plugin/grpc_provider_test.go   2022-06-01 
18:11:56.000000000 +0200
+++ new/terraform-1.2.3/internal/plugin/grpc_provider_test.go   2022-06-15 
19:34:28.000000000 +0200
@@ -39,6 +39,15 @@
        }
 }
 
+// checkDiagsHasError ensures error diagnostics are present or fails the test.
+func checkDiagsHasError(t *testing.T, d tfdiags.Diagnostics) {
+       t.Helper()
+
+       if !d.HasErrors() {
+               t.Fatal("expected error diagnostics")
+       }
+}
+
 func providerProtoSchema() *proto.GetProviderSchema_Response {
        return &proto.GetProviderSchema_Response{
                Provider: &proto.Schema{
@@ -92,6 +101,58 @@
        checkDiags(t, resp.Diagnostics)
 }
 
+// Ensure that gRPC errors are returned early.
+// Reference: https://github.com/hashicorp/terraform/issues/31047
+func TestGRPCProvider_GetSchema_GRPCError(t *testing.T) {
+       ctrl := gomock.NewController(t)
+       client := mockproto.NewMockProviderClient(ctrl)
+
+       client.EXPECT().GetSchema(
+               gomock.Any(),
+               gomock.Any(),
+               gomock.Any(),
+       ).Return(&proto.GetProviderSchema_Response{}, fmt.Errorf("test error"))
+
+       p := &GRPCProvider{
+               client: client,
+       }
+
+       resp := p.GetProviderSchema()
+
+       checkDiagsHasError(t, resp.Diagnostics)
+}
+
+// Ensure that provider error diagnostics are returned early.
+// Reference: https://github.com/hashicorp/terraform/issues/31047
+func TestGRPCProvider_GetSchema_ResponseErrorDiagnostic(t *testing.T) {
+       ctrl := gomock.NewController(t)
+       client := mockproto.NewMockProviderClient(ctrl)
+
+       client.EXPECT().GetSchema(
+               gomock.Any(),
+               gomock.Any(),
+               gomock.Any(),
+       ).Return(&proto.GetProviderSchema_Response{
+               Diagnostics: []*proto.Diagnostic{
+                       {
+                               Severity: proto.Diagnostic_ERROR,
+                               Summary:  "error summary",
+                               Detail:   "error detail",
+                       },
+               },
+               // Trigger potential panics
+               Provider: &proto.Schema{},
+       }, nil)
+
+       p := &GRPCProvider{
+               client: client,
+       }
+
+       resp := p.GetProviderSchema()
+
+       checkDiagsHasError(t, resp.Diagnostics)
+}
+
 func TestGRPCProvider_PrepareProviderConfig(t *testing.T) {
        client := mockProviderClient(t)
        p := &GRPCProvider{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terraform-1.2.2/internal/plugin6/grpc_provider.go 
new/terraform-1.2.3/internal/plugin6/grpc_provider.go
--- old/terraform-1.2.2/internal/plugin6/grpc_provider.go       2022-06-01 
18:11:56.000000000 +0200
+++ new/terraform-1.2.3/internal/plugin6/grpc_provider.go       2022-06-15 
19:34:28.000000000 +0200
@@ -144,6 +144,10 @@
 
        resp.Diagnostics = 
resp.Diagnostics.Append(convert.ProtoToDiagnostics(protoResp.Diagnostics))
 
+       if resp.Diagnostics.HasErrors() {
+               return resp
+       }
+
        if protoResp.Provider == nil {
                resp.Diagnostics = resp.Diagnostics.Append(errors.New("missing 
provider schema"))
                return resp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/internal/plugin6/grpc_provider_test.go 
new/terraform-1.2.3/internal/plugin6/grpc_provider_test.go
--- old/terraform-1.2.2/internal/plugin6/grpc_provider_test.go  2022-06-01 
18:11:56.000000000 +0200
+++ new/terraform-1.2.3/internal/plugin6/grpc_provider_test.go  2022-06-15 
19:34:28.000000000 +0200
@@ -46,6 +46,15 @@
        }
 }
 
+// checkDiagsHasError ensures error diagnostics are present or fails the test.
+func checkDiagsHasError(t *testing.T, d tfdiags.Diagnostics) {
+       t.Helper()
+
+       if !d.HasErrors() {
+               t.Fatal("expected error diagnostics")
+       }
+}
+
 func providerProtoSchema() *proto.GetProviderSchema_Response {
        return &proto.GetProviderSchema_Response{
                Provider: &proto.Schema{
@@ -99,6 +108,58 @@
        checkDiags(t, resp.Diagnostics)
 }
 
+// Ensure that gRPC errors are returned early.
+// Reference: https://github.com/hashicorp/terraform/issues/31047
+func TestGRPCProvider_GetSchema_GRPCError(t *testing.T) {
+       ctrl := gomock.NewController(t)
+       client := mockproto.NewMockProviderClient(ctrl)
+
+       client.EXPECT().GetProviderSchema(
+               gomock.Any(),
+               gomock.Any(),
+               gomock.Any(),
+       ).Return(&proto.GetProviderSchema_Response{}, fmt.Errorf("test error"))
+
+       p := &GRPCProvider{
+               client: client,
+       }
+
+       resp := p.GetProviderSchema()
+
+       checkDiagsHasError(t, resp.Diagnostics)
+}
+
+// Ensure that provider error diagnostics are returned early.
+// Reference: https://github.com/hashicorp/terraform/issues/31047
+func TestGRPCProvider_GetSchema_ResponseErrorDiagnostic(t *testing.T) {
+       ctrl := gomock.NewController(t)
+       client := mockproto.NewMockProviderClient(ctrl)
+
+       client.EXPECT().GetProviderSchema(
+               gomock.Any(),
+               gomock.Any(),
+               gomock.Any(),
+       ).Return(&proto.GetProviderSchema_Response{
+               Diagnostics: []*proto.Diagnostic{
+                       {
+                               Severity: proto.Diagnostic_ERROR,
+                               Summary:  "error summary",
+                               Detail:   "error detail",
+                       },
+               },
+               // Trigger potential panics
+               Provider: &proto.Schema{},
+       }, nil)
+
+       p := &GRPCProvider{
+               client: client,
+       }
+
+       resp := p.GetProviderSchema()
+
+       checkDiagsHasError(t, resp.Diagnostics)
+}
+
 func TestGRPCProvider_PrepareProviderConfig(t *testing.T) {
        client := mockProviderClient(t)
        p := &GRPCProvider{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/internal/terraform/node_resource_plan.go 
new/terraform-1.2.3/internal/terraform/node_resource_plan.go
--- old/terraform-1.2.2/internal/terraform/node_resource_plan.go        
2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/internal/terraform/node_resource_plan.go        
2022-06-15 19:34:28.000000000 +0200
@@ -38,6 +38,9 @@
 
        // We attach dependencies to the Resource during refresh, since the
        // instances are instantiated during DynamicExpand.
+       // FIXME: These would be better off converted to a generic Set data
+       // structure in the future, as we need to compare for equality and take 
the
+       // union of multiple groups of dependencies.
        dependencies []addrs.ConfigResource
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/internal/terraform/node_resource_plan_instance.go 
new/terraform-1.2.3/internal/terraform/node_resource_plan_instance.go
--- old/terraform-1.2.2/internal/terraform/node_resource_plan_instance.go       
2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/internal/terraform/node_resource_plan_instance.go       
2022-06-15 19:34:28.000000000 +0200
@@ -391,6 +391,14 @@
                return false
        }
 
+       // Because we need to sort the deps to compare equality, make shallow
+       // copies to prevent concurrently modifying the array values on
+       // dependencies shared between expanded instances.
+       copyA, copyB := make([]addrs.ConfigResource, len(a)), 
make([]addrs.ConfigResource, len(b))
+       copy(copyA, a)
+       copy(copyB, b)
+       a, b = copyA, copyB
+
        less := func(s []addrs.ConfigResource) func(i, j int) bool {
                return func(i, j int) bool {
                        return s[i].String() < s[j].String()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terraform-1.2.2/version/version.go 
new/terraform-1.2.3/version/version.go
--- old/terraform-1.2.2/version/version.go      2022-06-01 18:11:56.000000000 
+0200
+++ new/terraform-1.2.3/version/version.go      2022-06-15 19:34:28.000000000 
+0200
@@ -11,7 +11,7 @@
 )
 
 // The main version number that is being run at the moment.
-var Version = "1.2.2"
+var Version = "1.2.3"
 
 // A pre-release marker for the version. If this is "" (empty string)
 // then it means that it is a final release. Otherwise, this is a pre-release
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terraform-1.2.2/website/data/cli-nav-data.json 
new/terraform-1.2.3/website/data/cli-nav-data.json
--- old/terraform-1.2.2/website/data/cli-nav-data.json  2022-06-01 
18:11:56.000000000 +0200
+++ new/terraform-1.2.3/website/data/cli-nav-data.json  2022-06-15 
19:34:28.000000000 +0200
@@ -429,59 +429,6 @@
     ]
   },
   {
-    "title": "Internals",
-    "routes": [
-      {
-        "title": "Overview",
-        "href": "/internals"
-      },
-      {
-        "title": "Credentials Helpers",
-        "href": "/internals/credentials-helpers"
-      },
-      {
-        "title": "Debugging Terraform",
-        "href": "/internals/debugging"
-      },
-      {
-        "title": "Module Registry Protocol",
-        "href": "/internals/module-registry-protocol"
-      },
-      {
-        "title": "Provider Network Mirror Protocol",
-        "href": "/internals/provider-network-mirror-protocol"
-      },
-      {
-        "title": "Provider Registry Protocol",
-        "href": "/internals/provider-registry-protocol"
-      },
-      {
-        "title": "Resource Graph",
-        "href": "/internals/graph"
-      },
-      {
-        "title": "Resource Lifecycle",
-        "href": "/internals/lifecycle"
-      },
-      {
-        "title": "Login Protocol",
-        "href": "/internals/login-protocol"
-      },
-      {
-        "title": "JSON Output Format",
-        "href": "/internals/json-format"
-      },
-      {
-        "title": "Remote Service Discovery",
-        "href": "/internals/remote-service-discovery"
-      },
-      {
-        "title": "Provider Metadata",
-        "href": "/internals/provider-meta"
-      }
-    ]
-  },
-  {
     "title": "Installation",
     "hidden": true,
     "routes": [
@@ -494,5 +441,8 @@
         "path": "install/yum"
       }
     ]
-  }
+  },
+  { "divider": true },
+  { "title": "Terraform Internals", "href": "/internals" },
+  { "divider": true }
 ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terraform-1.2.2/website/data/internals-nav-data.json 
new/terraform-1.2.3/website/data/internals-nav-data.json
--- old/terraform-1.2.2/website/data/internals-nav-data.json    2022-06-01 
18:11:56.000000000 +0200
+++ new/terraform-1.2.3/website/data/internals-nav-data.json    2022-06-15 
19:34:28.000000000 +0200
@@ -1,4 +1,5 @@
 [
+  { "heading": "Terraform Internals" },
   {
     "title": "Credentials Helpers",
     "path": "credentials-helpers"
@@ -52,5 +53,10 @@
     "title": "Archiving",
     "path": "archiving",
     "hidden": true
-  }
+  },
+  { "divider": true },
+  { "title": "Terraform CLI", "href": "/cli" },
+  { "divider": true },
+  { "title": "Configuration Language", "href": "/language" },
+  { "divider": true }
 ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terraform-1.2.2/website/data/language-nav-data.json 
new/terraform-1.2.3/website/data/language-nav-data.json
--- old/terraform-1.2.2/website/data/language-nav-data.json     2022-06-01 
18:11:56.000000000 +0200
+++ new/terraform-1.2.3/website/data/language-nav-data.json     2022-06-15 
19:34:28.000000000 +0200
@@ -908,7 +908,6 @@
       {
         "title": "Backends",
         "routes": [
-          { "title": "Overview", "path": "settings/backends" },
           {
             "title": "Backend Configuration",
             "path": "settings/backends/configuration"
@@ -1220,5 +1219,8 @@
         "path": "configuration-0-11/environment-variables"
       }
     ]
-  }
+  },
+  { "divider": true },
+  { "title": "Terraform Internals", "href": "/internals" },
+  { "divider": true }
 ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terraform-1.2.2/website/docs/internals/debugging.mdx 
new/terraform-1.2.3/website/docs/internals/debugging.mdx
--- old/terraform-1.2.2/website/docs/internals/debugging.mdx    2022-06-01 
18:11:56.000000000 +0200
+++ new/terraform-1.2.3/website/docs/internals/debugging.mdx    2022-06-15 
19:34:28.000000000 +0200
@@ -12,7 +12,7 @@
 
 Terraform has detailed logs which can be enabled by setting the `TF_LOG` 
environment variable to any value. This will cause detailed logs to appear on 
stderr.
 
-You can set `TF_LOG` to one of the log levels `TRACE`, `DEBUG`, `INFO`, `WARN` 
or `ERROR` to change the verbosity of the logs.
+You can set `TF_LOG` to one of the log levels (in order of decreasing 
verbosity) `TRACE`, `DEBUG`, `INFO`, `WARN` or `ERROR` to change the verbosity 
of the logs.
 
 Setting `TF_LOG` to `JSON` outputs logs at the `TRACE` level or higher, and 
uses a parseable JSON encoding as the formatting.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/website/docs/language/expressions/custom-conditions.mdx 
new/terraform-1.2.3/website/docs/language/expressions/custom-conditions.mdx
--- old/terraform-1.2.2/website/docs/language/expressions/custom-conditions.mdx 
2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/website/docs/language/expressions/custom-conditions.mdx 
2022-06-15 19:34:28.000000000 +0200
@@ -312,12 +312,12 @@
 }
 
 resource "aws_internet_gateway" "example" {
-  for_each = aws_vpc.example
+  for_each = data.aws_vpc.example
   vpc_id = each.value.id
 
   lifecycle {
     precondition {
-      condition     = aws_vpc.example[each.key].state == "available"
+      condition     = data.aws_vpc.example[each.key].state == "available"
       error_message = "VPC ${each.key} must be available."
     }
   }
@@ -341,7 +341,7 @@
 ```
 
 The `error_message` argument can be any expression that evaluates to a string.
-This includes literal strings, heredocs, and template expressions. Multi-line
+This includes literal strings, heredocs, and template expressions. You can use 
the [`format` function](/language/functions/format) to convert items of `null`, 
`list`, or `map` types into a formatted string. Multi-line
 error messages are supported, and lines with leading whitespace will not be
 word wrapped.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/website/docs/language/meta-arguments/depends_on.mdx 
new/terraform-1.2.3/website/docs/language/meta-arguments/depends_on.mdx
--- old/terraform-1.2.2/website/docs/language/meta-arguments/depends_on.mdx     
2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/website/docs/language/meta-arguments/depends_on.mdx     
2022-06-15 19:34:28.000000000 +0200
@@ -14,7 +14,7 @@
 
 ## Processing and Planning Consequences
 
-The `depends_on` meta-argument instructs Terraform to complete all actions on 
the the dependency object (including Read actions) before performing actions on 
the object declaring the dependency. When one the dependency object is an 
entire module, `depends_on` affects the order in which Terraform processes all 
of the resources and data sources associated with that module. Refer to 
[Resource Dependencies](/language/resources/behavior#resource-dependencies) and 
[Data Resource Dependencies](/language/data-sources#data-resource-dependencies) 
for more details.
+The `depends_on` meta-argument instructs Terraform to complete all actions on 
the dependency object (including Read actions) before performing actions on the 
object declaring the dependency. When the dependency object is an entire 
module, `depends_on` affects the order in which Terraform processes all of the 
resources and data sources associated with that module. Refer to [Resource 
Dependencies](/language/resources/behavior#resource-dependencies) and [Data 
Resource Dependencies](/language/data-sources#data-resource-dependencies) for 
more details.
 
 You should use `depends_on` as a last resort because it can cause Terraform to 
create more conservative plans that replace more resources than necessary. For 
example, Terraform may treat more values as unknown ???(known after apply)??? 
because it is uncertain what changes will occur on the upstream object. This is 
especially likely when you use `depends_on` for modules.
 
@@ -70,4 +70,4 @@
     aws_iam_role_policy.example
   ]
 }
-```
\ No newline at end of file
+```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/website/docs/language/settings/backends/artifactory.mdx 
new/terraform-1.2.3/website/docs/language/settings/backends/artifactory.mdx
--- old/terraform-1.2.2/website/docs/language/settings/backends/artifactory.mdx 
2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/website/docs/language/settings/backends/artifactory.mdx 
2022-06-15 19:34:28.000000000 +0200
@@ -45,7 +45,9 @@
 }
 ```
 
-## Configuration variables
+## Configuration Variables
+
+!> **Warning:**  We recommend using environment variables to supply 
credentials and other sensitive data. If you use `-backend-config` or hardcode 
these values directly in your configuration, Terraform will include these 
values in both the `.terraform` subdirectory and in plan files. Refer to 
[Credentials and Sensitive 
Data](/language/settings/backends/configuration#credentials-and-sensitive-data) 
for details.
 
 The following configuration options / environment variables are supported:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/website/docs/language/settings/backends/azurerm.mdx 
new/terraform-1.2.3/website/docs/language/settings/backends/azurerm.mdx
--- old/terraform-1.2.2/website/docs/language/settings/backends/azurerm.mdx     
2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/website/docs/language/settings/backends/azurerm.mdx     
2022-06-15 19:34:28.000000000 +0200
@@ -230,7 +230,10 @@
 }
 ```
 
-## Configuration variables
+## Configuration Variables
+
+!> **Warning:**  We recommend using environment variables to supply 
credentials and other sensitive data. If you use `-backend-config` or hardcode 
these values directly in your configuration, Terraform will include these 
values in both the `.terraform` subdirectory and in plan files. Refer to 
[Credentials and Sensitive 
Data](/language/settings/backends/configuration#credentials-and-sensitive-data) 
for details.
+
 
 The following configuration options are supported:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/website/docs/language/settings/backends/configuration.mdx 
new/terraform-1.2.3/website/docs/language/settings/backends/configuration.mdx
--- 
old/terraform-1.2.2/website/docs/language/settings/backends/configuration.mdx   
    2022-06-01 18:11:56.000000000 +0200
+++ 
new/terraform-1.2.3/website/docs/language/settings/backends/configuration.mdx   
    2022-06-15 19:34:28.000000000 +0200
@@ -4,19 +4,27 @@
 
 # Backend Configuration
 
-Each Terraform configuration can specify a backend, which defines where
-[state](/language/state) snapshots are stored.
+A backend defines where Terraform stores its [state](/language/state) data 
files.
 
-You do not need to configure a backend when using Terraform Cloud because
-Terraform Cloud automatically manages state in the workspaces associated with 
your configuration. If your configuration includes [a `cloud` 
block](/language/settings/terraform-cloud), it cannot include a `backend` block.
+Terraform uses persisted state data to keep track of the resources it manages. 
Most non-trivial Terraform configurations either [integrate with Terraform 
Cloud](/language/settings/terraform-cloud) or use a backend to store state 
remotely. This lets multiple people access the state data and work together on 
that collection of infrastructure resources.
+
+This page describes how to configure a backend by adding the [`backend` 
block](#using-a-backend-block) to your configuration.
+
+-> **Note:** In Terraform versions before 1.1.0, we classified backends as 
standard or enhanced. The enhanced label differentiated the [`remote` 
backend](/language/settings/backends/remote), which could both store state and 
perform Terraform operations. This classification has been removed. Refer to 
[Using Terraform Cloud](/cli/cloud) for details about storing state, executing 
remote operations, and using Terraform Cloud directly from Terraform.
 
-Most non-trivial Terraform configurations store state remotely so that multiple
-people can work with the same infrastructure.
+## Available Backends
+
+By default, Terraform uses a backend called 
[`local`](/language/settings/backends/local), which stores state as a local 
file on disk. You can also configure one of the built-in backends listed in the 
documentation sidebar.
+
+Some of these backends act like plain remote disks for state files, while 
others support locking the state while operations are being performed. This 
helps prevent conflicts and inconsistencies. The built-in backends listed are 
the only backends. You cannot load additional backends as plugins.
 
 ## Using a Backend Block
 
-Backends are configured with a nested `backend` block within the top-level
-`terraform` block:
+You do not need to configure a backend when using Terraform Cloud because
+Terraform Cloud automatically manages state in the workspaces associated with 
your configuration. If your configuration includes a [`cloud` 
block](/language/settings/terraform-cloud), it cannot include a `backend` block.
+
+To configure a backend, add a nested `backend` block within the top-level
+`terraform` block. The following example configures the `remote` backend.
 
 ```hcl
 terraform {
@@ -35,6 +43,18 @@
 - A configuration can only provide one backend block.
 - A backend block cannot refer to named values (like input variables, locals, 
or data source attributes).
 
+### Credentials and Sensitive Data
+
+Backends store state in a remote service, which allows multiple people to 
access it. Accessing remote state generally requires access credentials, since 
state data contains extremely sensitive information.
+
+!> **Warning:**  We recommend using environment variables to supply 
credentials and other sensitive data. If you use `-backend-config` or hardcode 
these values directly in your configuration, Terraform will include these 
values in both the `.terraform` subdirectory and in plan files. This can leak 
sensitive credentials.
+
+Terraform writes the backend configuration in plain text in two separate files.
+- The `.terraform/terraform.tfstate` file contains the backend configuration 
for the current working directory.
+- All plan files capture the information in `.terraform/terraform.tfstate` at 
the time the plan was created. This helps ensure Terraform is applying the plan 
to correct set of infrastructure.
+
+When applying a plan that you previously saved to a file, Terraform uses the 
backend configuration stored in that file instead of the current backend 
settings. If that configuration contains time-limited credentials, they may 
expire before you finish applying the plan. Use environment variables to pass 
credentials when you need to use different values between the plan and apply 
steps.
+
 ### Backend Types
 
 The block label of the backend block (`"remote"`, in the example above) 
indicates which backend type to use. Terraform has a built-in selection of 
backends, and the configured backend must be available in the version of 
Terraform you are using.
@@ -43,7 +63,7 @@
 
 Some backends allow providing access credentials directly as part of the 
configuration for use in unusual situations, for pragmatic reasons. However, in 
normal use we _do not_ recommend including access credentials as part of the 
backend configuration. Instead, leave those arguments completely unset and 
provide credentials via the credentials files or environment variables that are 
conventional for the target system, as described in the documentation for each 
backend.
 
-See the list of backend types in the navigation sidebar for details about each 
supported backend type and its configuration arguments.
+Refer to the list of backend types in the navigation sidebar for details about 
each supported backend type and its configuration arguments.
 
 ### Default Backend
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/website/docs/language/settings/backends/consul.mdx 
new/terraform-1.2.3/website/docs/language/settings/backends/consul.mdx
--- old/terraform-1.2.2/website/docs/language/settings/backends/consul.mdx      
2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/website/docs/language/settings/backends/consul.mdx      
2022-06-15 19:34:28.000000000 +0200
@@ -35,7 +35,9 @@
 }
 ```
 
-## Configuration variables
+## Configuration Variables
+
+!> **Warning:**  We recommend using environment variables to supply 
credentials and other sensitive data. If you use `-backend-config` or hardcode 
these values directly in your configuration, Terraform will include these 
values in both the `.terraform` subdirectory and in plan files. Refer to 
[Credentials and Sensitive 
Data](/language/settings/backends/configuration#credentials-and-sensitive-data) 
for details.
 
 The following configuration options / environment variables are supported:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/website/docs/language/settings/backends/cos.mdx 
new/terraform-1.2.3/website/docs/language/settings/backends/cos.mdx
--- old/terraform-1.2.2/website/docs/language/settings/backends/cos.mdx 
2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/website/docs/language/settings/backends/cos.mdx 
2022-06-15 19:34:28.000000000 +0200
@@ -45,7 +45,9 @@
 }
 ```
 
-## Configuration variables
+## Configuration Variables
+
+!> **Warning:**  We recommend using environment variables to supply 
credentials and other sensitive data. If you use `-backend-config` or hardcode 
these values directly in your configuration, Terraform will include these 
values in both the `.terraform` subdirectory and in plan files. Refer to 
[Credentials and Sensitive 
Data](/language/settings/backends/configuration#credentials-and-sensitive-data) 
for details.
 
 The following configuration options or environment variables are supported:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/website/docs/language/settings/backends/etcd.mdx 
new/terraform-1.2.3/website/docs/language/settings/backends/etcd.mdx
--- old/terraform-1.2.2/website/docs/language/settings/backends/etcd.mdx        
2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/website/docs/language/settings/backends/etcd.mdx        
2022-06-15 19:34:28.000000000 +0200
@@ -32,7 +32,9 @@
 }
 ```
 
-## Configuration variables
+## Configuration Variables
+
+!> **Warning:**  We recommend using environment variables to supply 
credentials and other sensitive data. If you use `-backend-config` or hardcode 
these values directly in your configuration, Terraform will include these 
values in both the `.terraform` subdirectory and in plan files. Refer to 
[Credentials and Sensitive 
Data](/language/settings/backends/configuration#credentials-and-sensitive-data) 
for details.
 
 The following configuration options are supported:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/website/docs/language/settings/backends/etcdv3.mdx 
new/terraform-1.2.3/website/docs/language/settings/backends/etcdv3.mdx
--- old/terraform-1.2.2/website/docs/language/settings/backends/etcdv3.mdx      
2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/website/docs/language/settings/backends/etcdv3.mdx      
2022-06-15 19:34:28.000000000 +0200
@@ -37,7 +37,9 @@
 }
 ```
 
-## Configuration variables
+## Configuration Variables
+
+!> **Warning:**  We recommend using environment variables to supply 
credentials and other sensitive data. If you use `-backend-config` or hardcode 
these values directly in your configuration, Terraform will include these 
values in both state and plan files. Refer to [Credentials and Sensitive 
Data](/language/settings/backends/configuration#credentials-and-sensitive-data) 
for details.
 
 The following configuration options / environment variables are supported:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/website/docs/language/settings/backends/gcs.mdx 
new/terraform-1.2.3/website/docs/language/settings/backends/gcs.mdx
--- old/terraform-1.2.2/website/docs/language/settings/backends/gcs.mdx 
2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/website/docs/language/settings/backends/gcs.mdx 
2022-06-15 19:34:28.000000000 +0200
@@ -73,7 +73,9 @@
 
 Terraform can impersonate a Google Service Account as described 
[here](https://cloud.google.com/iam/docs/creating-short-lived-service-account-credentials).
 A valid credential must be provided as mentioned in the earlier section and 
that identity must have the `roles/iam.serviceAccountTokenCreator` role on the 
service account you are impersonating.
 
-## Configuration variables
+## Configuration Variables
+
+!> **Warning:**  We recommend using environment variables to supply 
credentials and other sensitive data. If you use `-backend-config` or hardcode 
these values directly in your configuration, Terraform will include these 
values in both the `.terraform` subdirectory and in plan files. Refer to 
[Credentials and Sensitive 
Data](/language/settings/backends/configuration#credentials-and-sensitive-data) 
for details.
 
 The following configuration options are supported:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/website/docs/language/settings/backends/http.mdx 
new/terraform-1.2.3/website/docs/language/settings/backends/http.mdx
--- old/terraform-1.2.2/website/docs/language/settings/backends/http.mdx        
2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/website/docs/language/settings/backends/http.mdx        
2022-06-15 19:34:28.000000000 +0200
@@ -38,7 +38,9 @@
 }
 ```
 
-## Configuration variables
+## Configuration Variables
+
+!> **Warning:**  We recommend using environment variables to supply 
credentials and other sensitive data. If you use `-backend-config` or hardcode 
these values directly in your configuration, Terraform will include these 
values in both the `.terraform` subdirectory and in plan files. Refer to 
[Credentials and Sensitive 
Data](/language/settings/backends/configuration#credentials-and-sensitive-data) 
for details.
 
 The following configuration options / environment variables are supported:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/website/docs/language/settings/backends/index.mdx 
new/terraform-1.2.3/website/docs/language/settings/backends/index.mdx
--- old/terraform-1.2.2/website/docs/language/settings/backends/index.mdx       
2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/website/docs/language/settings/backends/index.mdx       
1970-01-01 01:00:00.000000000 +0100
@@ -1,58 +0,0 @@
----
-page_title: Backend Overview - Configuration Language
-description: >-
-  A backend defines where Terraform stores its state. Learn about how backends
-  work.
----
-
-# Backends
-
-Backends define where Terraform's [state](/language/state) snapshots are 
stored.
-
-A given Terraform configuration can either specify a backend,
-[integrate with Terraform Cloud](/language/settings/terraform-cloud),
-or do neither and default to storing state locally.
-
-The rest of this page introduces the concept of backends; the other pages in
-this section document how to configure and use backends.
-
-- [Backend Configuration](/language/settings/backends/configuration) documents 
the form
-  of a `backend` block, which selects and configures a backend for a
-  Terraform configuration.
-- This section also includes a page for each of Terraform's built-in backends,
-  documenting its behavior and available settings. See the navigation sidebar
-  for a complete list.
-
-## What Backends Do
-
-Backends primarily determine where Terraform stores its 
[state](/language/state).
-Terraform uses this persisted [state](/language/state) data to keep track of 
the
-resources it manages. Since it needs the state in order to know which 
real-world infrastructure
-objects correspond to the resources in a configuration, everyone working with 
a given collection of
-infrastructure resources must be able to access the same state data.
-
-By default, Terraform implicitly uses a backend called
-[`local`](/language/settings/backends/local) to store state as a local file on 
disk.
-Every other backend stores state in a remote service of some kind, which 
allows multiple people to
-access it. Accessing state in a remote service generally requires some kind of 
access credentials,
-since state data contains extremely sensitive information.
-
-Some backends act like plain "remote disks" for state files; others support
-_locking_ the state while operations are being performed, which helps prevent
-conflicts and inconsistencies.
-
--> **Note:** In Terraform versions prior to 1.1.0, backends were also 
classified as being 'standard'
-or 'enhanced', where the latter term referred to the ability of the
-[remote backend](/language/settings/backends/remote) to store state and perform
-Terraform operations. This classification has been removed, clarifying the 
primary purpose of
-backends. Refer to [Using Terraform Cloud](/cli/cloud) for details about how to
-store state, execute remote operations, and use Terraform Cloud directly from 
Terraform.
-
-## Available Backends
-
-Terraform includes a built-in selection of backends, which are listed in the
-navigation sidebar. This selection has changed over time, but does not change
-very often.
-
-The built-in backends are the only backends. You cannot load additional 
backends
-as plugins.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/website/docs/language/settings/backends/kubernetes.mdx 
new/terraform-1.2.3/website/docs/language/settings/backends/kubernetes.mdx
--- old/terraform-1.2.2/website/docs/language/settings/backends/kubernetes.mdx  
2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/website/docs/language/settings/backends/kubernetes.mdx  
2022-06-15 19:34:28.000000000 +0200
@@ -44,7 +44,9 @@
 }
 ```
 
-## Configuration variables
+## Configuration Variables
+
+!> **Warning:**  We recommend using environment variables to supply 
credentials and other sensitive data. If you use `-backend-config` or hardcode 
these values directly in your configuration, Terraform will include these 
values in both the `.terraform` subdirectory and in plan files. Refer to 
[Credentials and Sensitive 
Data](/language/settings/backends/configuration#credentials-and-sensitive-data) 
for details.
 
 The following configuration options are supported:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/website/docs/language/settings/backends/manta.mdx 
new/terraform-1.2.3/website/docs/language/settings/backends/manta.mdx
--- old/terraform-1.2.2/website/docs/language/settings/backends/manta.mdx       
2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/website/docs/language/settings/backends/manta.mdx       
2022-06-15 19:34:28.000000000 +0200
@@ -35,7 +35,9 @@
 }
 ```
 
-## Configuration variables
+## Configuration Variables
+
+!> **Warning:**  We recommend using environment variables to supply 
credentials and other sensitive data. If you use `-backend-config` or hardcode 
these values directly in your configuration, Terraform will include these 
values in both the `.terraform` subdirectory and in plan files. Refer to 
[Credentials and Sensitive 
Data](/language/settings/backends/configuration#credentials-and-sensitive-data) 
for details.
 
 The following configuration options are supported:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/website/docs/language/settings/backends/oss.mdx 
new/terraform-1.2.3/website/docs/language/settings/backends/oss.mdx
--- old/terraform-1.2.2/website/docs/language/settings/backends/oss.mdx 
2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/website/docs/language/settings/backends/oss.mdx 
2022-06-15 19:34:28.000000000 +0200
@@ -69,7 +69,9 @@
 }
 ```
 
-## Configuration variables
+## Configuration Variables
+
+!> **Warning:**  We recommend using environment variables to supply 
credentials and other sensitive data. If you use `-backend-config` or hardcode 
these values directly in your configuration, Terraform will include these 
values in both the `.terraform` subdirectory and in plan files. Refer to 
[Credentials and Sensitive 
Data](/language/settings/backends/configuration#credentials-and-sensitive-data) 
for details.
 
 The following configuration options or environment variables are supported:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/website/docs/language/settings/backends/pg.mdx 
new/terraform-1.2.3/website/docs/language/settings/backends/pg.mdx
--- old/terraform-1.2.2/website/docs/language/settings/backends/pg.mdx  
2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/website/docs/language/settings/backends/pg.mdx  
2022-06-15 19:34:28.000000000 +0200
@@ -64,6 +64,8 @@
 
 ## Configuration Variables
 
+!> **Warning:**  We recommend using environment variables to supply 
credentials and other sensitive data. If you use `-backend-config` or hardcode 
these values directly in your configuration, Terraform will include these 
values in both the `.terraform` subdirectory and in plan files. Refer to 
[Credentials and Sensitive 
Data](/language/settings/backends/configuration#credentials-and-sensitive-data) 
for details.
+
 The following configuration options or environment variables are supported:
 
 - `conn_str` - (Required) Postgres connection string; a `postgres://` URL
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/website/docs/language/settings/backends/remote.mdx 
new/terraform-1.2.3/website/docs/language/settings/backends/remote.mdx
--- old/terraform-1.2.2/website/docs/language/settings/backends/remote.mdx      
2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/website/docs/language/settings/backends/remote.mdx      
2022-06-15 19:34:28.000000000 +0200
@@ -173,7 +173,9 @@
 }
 ```
 
-## Configuration variables
+## Configuration Variables
+
+!> **Warning:**  We recommend using environment variables to supply 
credentials and other sensitive data. If you use `-backend-config` or hardcode 
these values directly in your configuration, Terraform will include these 
values in both the `.terraform` subdirectory and in plan files. Refer to 
[Credentials and Sensitive 
Data](/language/settings/backends/configuration#credentials-and-sensitive-data) 
for details.
 
 The following configuration options are supported:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/website/docs/language/settings/backends/s3.mdx 
new/terraform-1.2.3/website/docs/language/settings/backends/s3.mdx
--- old/terraform-1.2.2/website/docs/language/settings/backends/s3.mdx  
2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/website/docs/language/settings/backends/s3.mdx  
2022-06-15 19:34:28.000000000 +0200
@@ -142,6 +142,8 @@
 
 ### Credentials and Shared Configuration
 
+!> **Warning:**  We recommend using environment variables to supply 
credentials and other sensitive data. If you use `-backend-config` or hardcode 
these values directly in your configuration, Terraform will include these 
values in both the `.terraform` subdirectory and in plan files. Refer to 
[Credentials and Sensitive 
Data](/language/settings/backends/configuration#credentials-and-sensitive-data) 
for details.
+
 The following configuration is required:
 
 * `region` - (Required) AWS Region of the S3 Bucket and DynamoDB Table (if 
used). This can also be sourced from the `AWS_DEFAULT_REGION` and `AWS_REGION` 
environment variables.
@@ -411,7 +413,7 @@
 ```
 
 It is also possible to apply fine-grained access control to the DynamoDB
-table used for locking. When Terraform puts the state lock in place during 
`terraform plan`, it stores the full state file as a document and sets the s3 
object key as the partition key for the document. After the state lock is 
released, Terraform places a digest of the updated state file in DynamoDB. The 
key is similar to the one for the original state file, but is suffixed with 
`-md5`. 
+table used for locking. When Terraform puts the state lock in place during 
`terraform plan`, it stores the full state file as a document and sets the s3 
object key as the partition key for the document. After the state lock is 
released, Terraform places a digest of the updated state file in DynamoDB. The 
key is similar to the one for the original state file, but is suffixed with 
`-md5`.
 
 The example below shows a simple IAM policy that allows the backend operations 
role to perform these operations:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terraform-1.2.2/website/docs/language/settings/backends/swift.mdx 
new/terraform-1.2.3/website/docs/language/settings/backends/swift.mdx
--- old/terraform-1.2.2/website/docs/language/settings/backends/swift.mdx       
2022-06-01 18:11:56.000000000 +0200
+++ new/terraform-1.2.3/website/docs/language/settings/backends/swift.mdx       
2022-06-15 19:34:28.000000000 +0200
@@ -39,7 +39,9 @@
 }
 ```
 
-## Configuration variables
+## Configuration Variables
+
+!> **Warning:**  We recommend using environment variables to supply 
credentials and other sensitive data. If you use `-backend-config` or hardcode 
these values directly in your configuration, Terraform will include these 
values in both the `.terraform` subdirectory and in plan files. Refer to 
[Credentials and Sensitive 
Data](/language/settings/backends/configuration#credentials-and-sensitive-data) 
for details.
 
 The following configuration options are supported:
 

++++++ terraform.obsinfo ++++++
--- /var/tmp/diff_new_pack.ZsW0cG/_old  2022-06-23 10:25:52.707844830 +0200
+++ /var/tmp/diff_new_pack.ZsW0cG/_new  2022-06-23 10:25:52.711844834 +0200
@@ -1,5 +1,5 @@
 name: terraform
-version: 1.2.2
-mtime: 1654099916
-commit: 129f62ae6f340ad8cf006a2f4d25d391d35a027b
+version: 1.2.3
+mtime: 1655314468
+commit: 9a30749b89d4e88ed31a13d727996ec9bbfeeca2
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/terraform/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.terraform.new.1548/vendor.tar.gz differ: char 4, 
line 1

Reply via email to