Skip to content

Commit dc5f60e

Browse files
authored
policy/ppl: handle mix of json/yaml and semantic equality (#11)
Related: https://linear.app/pomerium/issue/ENG-1752/terraform-ppl-is-considered-changed-every-time
1 parent b5d55c8 commit dc5f60e

File tree

10 files changed

+464
-170
lines changed

10 files changed

+464
-170
lines changed

example/.gitignore

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
.terraform
22
.terraform.lock.hcl
3-
terraform.tfstate
4-
terraform.tfstate.backup
3+
terraform.tfstate*
54
terraform.tfvars

example/main.tf

+17-17
Original file line numberDiff line numberDiff line change
@@ -38,20 +38,20 @@ resource "pomerium_route" "test_route" {
3838
policies = [pomerium_policy.test_policy.id]
3939
}
4040

41-
# Data source examples
42-
data "pomerium_namespace" "existing_namespace" {
43-
id = "9d8dbd2c-8cce-4e66-9c1f-c490b4a07243"
44-
}
45-
46-
data "pomerium_route" "existing_route" {
47-
id = pomerium_route.test_route.id
48-
}
49-
50-
# Output examples
51-
output "namespace_name" {
52-
value = data.pomerium_namespace.existing_namespace.name
53-
}
54-
55-
output "route_from" {
56-
value = data.pomerium_route.existing_route.from
57-
}
41+
# # Data source examples
42+
# data "pomerium_namespace" "existing_namespace" {
43+
# id = "9d8dbd2c-8cce-4e66-9c1f-c490b4a07243"
44+
# }
45+
46+
# data "pomerium_route" "existing_route" {
47+
# id = pomerium_route.test_route.id
48+
# }
49+
50+
# # Output examples
51+
# output "namespace_name" {
52+
# value = data.pomerium_namespace.existing_namespace.name
53+
# }
54+
55+
# output "route_from" {
56+
# value = data.pomerium_route.existing_route.from
57+
# }

go.mod

+26-18
Original file line numberDiff line numberDiff line change
@@ -5,33 +5,36 @@ go 1.23.0
55
require (
66
github.com/go-jose/go-jose/v3 v3.0.3
77
github.com/hashicorp/terraform-plugin-framework v1.11.0
8+
github.com/hashicorp/terraform-plugin-go v0.23.0
89
github.com/hashicorp/terraform-plugin-log v0.9.0
9-
github.com/pomerium/enterprise-client-go v0.18.1-0.20240903154554-9b855ec72cfd
10+
github.com/pomerium/enterprise-client-go v0.18.1-0.20241202185750-aab20a674922
11+
github.com/pomerium/pomerium v0.28.0
1012
github.com/rs/zerolog v1.33.0
11-
github.com/stretchr/testify v1.9.0
12-
google.golang.org/grpc v1.66.2
13+
github.com/stretchr/testify v1.10.0
14+
google.golang.org/grpc v1.68.0
1315
)
1416

1517
require (
1618
cel.dev/expr v0.16.1 // indirect
17-
github.com/caddyserver/certmagic v0.21.3 // indirect
19+
github.com/OneOfOne/xxhash v1.2.8 // indirect
20+
github.com/caddyserver/certmagic v0.21.4 // indirect
1821
github.com/caddyserver/zerossl v0.1.3 // indirect
1922
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
2023
github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 // indirect
2124
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
22-
github.com/envoyproxy/go-control-plane v0.13.0 // indirect
25+
github.com/envoyproxy/go-control-plane v0.13.1 // indirect
2326
github.com/envoyproxy/protoc-gen-validate v1.1.0 // indirect
24-
github.com/fatih/color v1.13.0 // indirect
27+
github.com/fatih/color v1.14.1 // indirect
2528
github.com/golang/protobuf v1.5.4 // indirect
26-
github.com/google/btree v1.1.3 // indirect
29+
github.com/google/go-cmp v0.6.0 // indirect
2730
github.com/google/uuid v1.6.0 // indirect
2831
github.com/hashicorp/errwrap v1.1.0 // indirect
2932
github.com/hashicorp/go-hclog v1.5.0 // indirect
3033
github.com/hashicorp/go-multierror v1.1.1 // indirect
3134
github.com/hashicorp/go-plugin v1.6.0 // indirect
35+
github.com/hashicorp/go-set/v3 v3.0.0 // indirect
3236
github.com/hashicorp/go-uuid v1.0.3 // indirect
3337
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
34-
github.com/hashicorp/terraform-plugin-go v0.23.0 // indirect
3538
github.com/hashicorp/terraform-registry-address v0.2.3 // indirect
3639
github.com/hashicorp/terraform-svchost v0.1.1 // indirect
3740
github.com/hashicorp/yamux v0.1.1 // indirect
@@ -40,28 +43,33 @@ require (
4043
github.com/libdns/libdns v0.2.2 // indirect
4144
github.com/mattn/go-colorable v0.1.13 // indirect
4245
github.com/mattn/go-isatty v0.0.20 // indirect
43-
github.com/mholt/acmez/v2 v2.0.2 // indirect
46+
github.com/mholt/acmez/v2 v2.0.3 // indirect
4447
github.com/miekg/dns v1.1.62 // indirect
4548
github.com/mitchellh/go-testing-interface v1.14.1 // indirect
4649
github.com/oklog/run v1.0.0 // indirect
50+
github.com/open-policy-agent/opa v0.70.0 // indirect
4751
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
4852
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
49-
github.com/pomerium/pomerium v0.27.0 // indirect
53+
github.com/pomerium/protoutil v0.0.0-20240813175624-47b7ac43ff46 // indirect
54+
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
5055
github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect
5156
github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
57+
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
58+
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
5259
github.com/zeebo/blake3 v0.2.4 // indirect
5360
go.uber.org/multierr v1.11.0 // indirect
5461
go.uber.org/zap v1.27.0 // indirect
55-
golang.org/x/crypto v0.27.0 // indirect
62+
golang.org/x/crypto v0.31.0 // indirect
5663
golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect
5764
golang.org/x/mod v0.21.0 // indirect
58-
golang.org/x/net v0.29.0 // indirect
59-
golang.org/x/sync v0.8.0 // indirect
60-
golang.org/x/sys v0.25.0 // indirect
61-
golang.org/x/text v0.18.0 // indirect
65+
golang.org/x/net v0.31.0 // indirect
66+
golang.org/x/sync v0.10.0 // indirect
67+
golang.org/x/sys v0.28.0 // indirect
68+
golang.org/x/text v0.21.0 // indirect
6269
golang.org/x/tools v0.25.0 // indirect
63-
google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect
64-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect
65-
google.golang.org/protobuf v1.34.2 // indirect
70+
google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect
71+
google.golang.org/genproto/googleapis/rpc v0.0.0-20241113202542-65e8d215514f // indirect
72+
google.golang.org/protobuf v1.35.2 // indirect
6673
gopkg.in/yaml.v3 v3.0.1 // indirect
74+
sigs.k8s.io/yaml v1.4.0 // indirect
6775
)

0 commit comments

Comments
 (0)