Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
9206999
Initial hand-edited compiling resource
henryrecker-pingidentity Aug 27, 2025
838f3c7
Fixes to get a create request to pass through
henryrecker-pingidentity Aug 28, 2025
bc12559
Use json types again for unstructured fields
henryrecker-pingidentity Aug 29, 2025
6aff4ee
readClientResponse implementation to get around panics and get state …
henryrecker-pingidentity Aug 29, 2025
98e1033
Handle isExpanded being optional in readClientResponse
henryrecker-pingidentity Aug 29, 2025
9bbb379
Add validation and default for input_schema
henryrecker-pingidentity Aug 29, 2025
6ec4f42
Test changing input_schema to a list
henryrecker-pingidentity Aug 29, 2025
fd8ad46
Commenting valueless computed values
henryrecker-pingidentity Aug 29, 2025
87b8221
Add initial test HCL for a minimal flow, and mark connection_id as co…
henryrecker-pingidentity Aug 29, 2025
5a46c0d
Handle MaxZoom and MinZoom as Numbers
henryrecker-pingidentity Aug 29, 2025
60bd98a
Update for input_schema.required being optional
henryrecker-pingidentity Aug 29, 2025
8e30fc7
Mark unconfigurable node attributes as computed
henryrecker-pingidentity Sep 2, 2025
7be7ebc
Add larger test for bootstrap connector
henryrecker-pingidentity Sep 2, 2025
4a4a27a
Fix unexpected plans for connectors
henryrecker-pingidentity Sep 2, 2025
872745d
Remove remaining UseStateForUnknown
henryrecker-pingidentity Sep 2, 2025
3018991
Add reordered test step
henryrecker-pingidentity Sep 2, 2025
4cf5395
Add computed value checks for minimal flow
henryrecker-pingidentity Sep 3, 2025
001d16e
Add computed values for larger HCL
henryrecker-pingidentity Sep 3, 2025
18eba1b
Change test HCL to be external for flows
henryrecker-pingidentity Sep 3, 2025
34f8c7a
Initial setup for basic davinci test
henryrecker-pingidentity Sep 3, 2025
3c795f4
Add HCL for basic tests and fix some defaults
henryrecker-pingidentity Sep 3, 2025
65987e8
Add PUT after create when necessary due to node connection_id and nam…
henryrecker-pingidentity Sep 4, 2025
e174e18
Merge branch 'DavinciDataSources' into GeneratedDVFlowWithDraftClient
henryrecker-pingidentity Sep 4, 2025
89a201a
Add dependency connector instances and subflows to existing tests
henryrecker-pingidentity Sep 4, 2025
bfc30cc
Add test for adding a node
henryrecker-pingidentity Sep 4, 2025
ded8402
Add TestAccDavinciFlow_EmptyObjectsInSettings
henryrecker-pingidentity Sep 4, 2025
158bba5
Add TestAccDavinciFlow_ComplexObjectsInSettings
henryrecker-pingidentity Sep 4, 2025
f46fe1b
Add check for modifying node properties
henryrecker-pingidentity Sep 4, 2025
154d7fb
Add test with variable refs
henryrecker-pingidentity Sep 4, 2025
b5a11f8
Create flow variable after flow
henryrecker-pingidentity Sep 4, 2025
23e12e8
Extend vars test
henryrecker-pingidentity Sep 4, 2025
98bdf91
Update flow_policy test to cover new flow resource
henryrecker-pingidentity Sep 5, 2025
00814b7
Extend dv variable test with flow resource
henryrecker-pingidentity Sep 5, 2025
31096fd
Fix env ref in flow policy tests
henryrecker-pingidentity Sep 5, 2025
22c3181
Clean up flow resource
henryrecker-pingidentity Sep 5, 2025
ca3248c
Add validator to simulate being required for nested computed+optional…
henryrecker-pingidentity Sep 5, 2025
eeba27f
Add comment explaining cast on zoom
henryrecker-pingidentity Sep 5, 2025
054688b
Fix handling of properties attribute, so that unset values aren't tre…
henryrecker-pingidentity Sep 5, 2025
6e62a7a
Similar fix for data field to prevent reading of unset field as liter…
henryrecker-pingidentity Sep 5, 2025
9ea2ad4
Mark properties as sensitive
henryrecker-pingidentity Sep 18, 2025
b68f6d5
Add default retries for insufficient privilege to davinci resources
henryrecker-pingidentity Sep 18, 2025
f628bc5
Allow setting trigger.configuration
henryrecker-pingidentity Sep 18, 2025
d223a20
Fill out computed attr checks in tests
henryrecker-pingidentity Sep 18, 2025
01c321f
Cleanup and generating docs
henryrecker-pingidentity Sep 19, 2025
b4cfe70
Handle optional connector description
henryrecker-pingidentity Sep 19, 2025
6fb19dd
Make test naming more consistent
henryrecker-pingidentity Sep 19, 2025
f8288b6
Handle false value for enforce_signed_request_openid
Oct 3, 2025
64886a1
Use latest client commit
henryrecker-pingidentity Nov 5, 2025
2a266be
Handle changes from optional to required and use new struct names
henryrecker-pingidentity Nov 6, 2025
dd98901
Handle changes to intermediate loading attrs
henryrecker-pingidentity Nov 6, 2025
ef68a5d
Handle float response types
henryrecker-pingidentity Nov 6, 2025
9637e00
Use updated json var name
henryrecker-pingidentity Nov 6, 2025
306a488
Handle new structured output_schema
henryrecker-pingidentity Nov 6, 2025
08a216d
Handle structured node properties
henryrecker-pingidentity Nov 6, 2025
8491fce
Accurate required for zoom fields
henryrecker-pingidentity Nov 6, 2025
4b6b8e3
Fixes for output, new client bigFloat type
henryrecker-pingidentity Nov 7, 2025
dd5a14c
Revert "Accurate required for zoom fields"
henryrecker-pingidentity Nov 7, 2025
1f27737
Handle new min and max zoom type
henryrecker-pingidentity Nov 14, 2025
5036596
Using unstructured Properties type again
henryrecker-pingidentity Nov 17, 2025
f77f2bd
Merge branch 'DavinciDataSources' into GeneratedDVFlowWithDraftClient
henryrecker-pingidentity Dec 1, 2025
63359ef
Use client fixes branch and fix prechecks
henryrecker-pingidentity Dec 1, 2025
7f2da97
Mark flow as beta
henryrecker-pingidentity Dec 1, 2025
73b7cc3
Add missing copyright header
henryrecker-pingidentity Dec 1, 2025
b18b60d
Bump to latest client fixes branch
henryrecker-pingidentity Dec 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions betatemplates/resources/davinci_flow.md.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
page_title: "{{.Name}} {{.Type}} - {{.RenderedProviderName}}"
subcategory: "DaVinci"
description: |-
{{ .Description | plainmarkdown | trimspace | prefixlines " " }}
---

# {{.Name}} ({{.Type}})

{{ .Description | trimspace }}

{{ if .HasExample -}}
## Example Usage

{{ tffile (printf "%s%s%s" "examples/resources/" .Name "/resource.tf") }}
{{- end }}

{{ .SchemaMarkdown | trimspace }}

{{ if .HasImport -}}
## Import

Import is supported using the following syntax, where attributes in `<>` brackets are replaced with the relevant ID. For example, `<environment_id>` should be replaced with the ID of the environment to import from.

{{ codefile "shell" (printf "%s%s%s" "examples/resources/" .Name "/import.sh") }}
{{- end }}
1 change: 1 addition & 0 deletions examples/resources/pingone_davinci_flow/import.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
terraform import pingone_davinci_flow.example <environment_id>/<flow_id>
76 changes: 76 additions & 0 deletions examples/resources/pingone_davinci_flow/resource.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
resource "pingone_davinci_connector_instance" "example-errors" {
environment_id = var.environment_id
connector = {
id = "errorConnector"
}
name = "example-errors"
}

resource "pingone_davinci_flow" "example" {
environment_id = var.environment_id
description = "A simple flow that shows an error message"
name = "simple"
settings = {
csp = "worker-src 'self' blob:; script-src 'self' https://cdn.jsdelivr.net https://code.jquery.com https://devsdk.singularkey.com http://cdnjs.cloudflare.com 'unsafe-inline' 'unsafe-eval';"
intermediate_loading_screen_css = ""
intermediate_loading_screen_html = ""
flow_http_timeout_in_seconds = 300
log_level = 1
use_custom_css = true
}
color = "#FFC8C1"
graph_data = {
elements = {
nodes = [
{
data = {
id = "2pzouq7el7"
node_type = "CONNECTION"
connection_id = pingone_davinci_connector_instance.example-errors.id
connector_id = "errorConnector"
label = "Error Message"
status = "configured"
capability_name = "customErrorMessage"
type = "action"
properties = jsonencode({
"error_message" : {
"value" : "[\n {\n \"children\": [\n {\n \"text\": \"This is an error\"\n }\n ]\n }\n]"
},
"error_description" : {
"value" : "[\n {\n \"children\": [\n {\n \"text\": \"This is an error, really\"\n }\n ]\n }\n]"
}
})
}
position = {
x = 400
y = 400
}
group = "nodes"
removed = false
selected = false
selectable = true
locked = false
grabbable = true
pannable = false
classes = ""
}
]
}

zooming_enabled = true
user_zooming_enabled = true
zoom = 1
min_zoom = 1e-50
max_zoom = 1e+50
panning_enabled = true
user_panning_enabled = true
pan = {
x = 0
y = 0
}
box_selection_enabled = true
renderer = jsonencode({
"name" : "null"
})
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
#TODO update with real flow resource
resource "pingone_davinci_flow" "my_awesome_main_flow" {
environment_id = var.environment_id
name = "My Awesome Main Flow"

name = "My Awesome Main Flow"
flow_json = file("./path/to/example-mainflow.json")

# ... subflow_link and connection_link arguments
graph_data = {
// edges, nodes, etc.
}
}

resource "pingone_davinci_variable" "my_awesome_usercontext_variable" {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
#TODO use real flow resource
resource "pingone_davinci_flow" "my_awesome_main_flow" {
environment_id = var.environment_id
name = "My Awesome Main Flow"

name = "My Awesome Main Flow"
flow_json = file("./path/to/example-mainflow.json")

# ... subflow_link and connection_link arguments
graph_data = {
// edges, nodes, etc.
}
}

resource "pingone_davinci_variable" "my_awesome_usercontext_variable" {
Expand Down
9 changes: 4 additions & 5 deletions examples/resources/pingone_davinci_variable/resource.tf
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,17 @@ resource "pingone_davinci_variable" "my_awesome_region_variable" {
}
}

#TODO update for real flow resource
resource "pingone_davinci_flow" "my_awesome_main_flow" {
depends_on = [
pingone_davinci_variable.my_awesome_region_variable,
]

environment_id = var.environment_id
name = "My Awesome Main Flow"

name = "My Awesome Main Flow"
flow_json = file("./path/to/example-mainflow.json")

# ... subflow_link and connection_link arguments
graph_data = {
// edges, nodes, etc.
}
}

resource "pingone_davinci_variable" "my_awesome_usercontext_variable" {
Expand Down
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ require (
github.com/patrickcping/pingone-go-sdk-v2/mfa v0.23.2
github.com/patrickcping/pingone-go-sdk-v2/risk v0.21.0
github.com/patrickcping/pingone-go-sdk-v2/verify v0.10.0
github.com/pingidentity/pingone-go-client v0.3.1-0.20251117224159-0cf427981cb9
github.com/pingidentity/pingone-go-client v0.3.2-0.20251201224222-0310cc8fc128
)

require (
Expand Down Expand Up @@ -390,7 +390,7 @@ require (
golang.org/x/crypto v0.42.0 // indirect
golang.org/x/mod v0.27.0 // indirect
golang.org/x/net v0.43.0 // indirect
golang.org/x/oauth2 v0.32.0 // indirect
golang.org/x/oauth2 v0.33.0 // indirect
golang.org/x/sys v0.36.0 // indirect
golang.org/x/text v0.29.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
Expand Down
8 changes: 4 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1496,8 +1496,8 @@ github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2
github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI=
github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI=
github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
github.com/pingidentity/pingone-go-client v0.3.1-0.20251117224159-0cf427981cb9 h1:tjRKI8gRimaLZrUzXTyuKMqcqbJpzenG/+51B4QUc6Y=
github.com/pingidentity/pingone-go-client v0.3.1-0.20251117224159-0cf427981cb9/go.mod h1:cI4exDxqhSAEzazgVmiY7T0HZC4XF/lgTMy2hKjs5no=
github.com/pingidentity/pingone-go-client v0.3.2-0.20251201224222-0310cc8fc128 h1:M+lInytttL22soVCcujPspARzjuLWrQMF4PajX5Gi/k=
github.com/pingidentity/pingone-go-client v0.3.2-0.20251201224222-0310cc8fc128/go.mod h1:UAraIiLEymjK8AzR68+VchJ3AZf2legV3O8VKf5GsE8=
github.com/pjbgf/sha1cd v0.3.2 h1:a9wb0bp1oC2TGwStyn0Umc/IGKQnEgF0vVaZ8QF8eo4=
github.com/pjbgf/sha1cd v0.3.2/go.mod h1:zQWigSxVmsHEZow5qaLtPYxpcKMMQpa09ixqBxuCS6A=
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ=
Expand Down Expand Up @@ -2002,8 +2002,8 @@ golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec
golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I=
golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw=
golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4=
golang.org/x/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY=
golang.org/x/oauth2 v0.32.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
golang.org/x/oauth2 v0.33.0 h1:4Q+qn+E5z8gPRJfmRy7C2gGG3T4jIprK6aSYgTXGRpo=
golang.org/x/oauth2 v0.33.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
Expand Down
Loading