Skip to content

AccessApplication resource fails to upgrade from v5 to v6 due to invalid 'cors_headers' #1284

@ollaw

Description

@ollaw

Describe what happened

For the migration between v5 and v6 Provider, I'm trying to migrate the AccessApplication resource. Following the migration guide the resource was renamed to ZeroTrustAccessApplication (but the old resource still exists, even if deprecated).

Sample program

From this code with pulumi-cloudflare v5.49.1

import pulumi_cloudflare as cloudflare 

cloudflare.AccessApplication(
    "my-app",
    cors_headers=[
        cloudflare.AccessApplicationCorsHeaderArgs(
            allow_credentials=True,
            allowed_methods=[
                "GET",
                "POST",
                "OPTIONS",
            ],
            allowed_origins=["my.app.it"],
            max_age=10,
        )
    ],
    domain="my.app.it",
    name="my-name",
    session_duration="24h",
    type="self_hosted",
    zone_id="abcedf13245",
    allowed_idps=["idp1","idp2" ...],
)

To this with pulumi-cloudflare v6.4.0

import pulumi_cloudflare as cloudflare 

cloudflare.AccessApplication( 
    "my-app",
    cors_headers=cloudflare.AccessApplicationCorsHeadersArgs(
        allow_credentials=True,
        allowed_methods=[
            "GET",
            "POST",
            "OPTIONS",
        ],
        allowed_origins=["my.app.it"],
        max_age=10,
    ),
    domain="my.app.it",
    name="my-name",
    session_duration="24h",
    type="self_hosted",
    zone_id="abcedf13245",
    allowed_idps=["idp1","idp2" ...],
)

Same happens with ZeroTrustAccessApplication.

Log output

error: [pf/tfbridge] Error calling EncodePropertyMap: objectEncoder failed on property "cors_headers":
Expected an Object PropertyValue, found [] ("{[{map[allowAllHeaders:{false} allowAllMethods:{false} allowAllOrigins:{false} allowCredentials:{true} allowedHeaders:{[]} allowedMethods:{[{GET} {OPTIONS} {POST}]} allowedOrigins:{[{*****.****.it}]} maxAge:{10}]}]}")

Affected Resource(s)

AccessApplication but there are many more.

Output of pulumi about

CLI
Version 3.178.0
Go Version go1.24.4
Go Compiler gc

Plugins
KIND NAME VERSION
resource archive 0.3.3
resource auth0 3.22.0
resource aws 6.83.0
resource cloudamqp 3.22.0
resource cloudflare 6.4.0
resource command 1.1.0
resource confluentcloud 2.32.0
resource datadog 4.52.0
resource kubernetes 4.23.0
resource mysql 0.0.11
resource postgresql 3.15.2
language python 3.178.0
resource rabbitmq 3.3.10
resource random 4.18.2
resource time 0.1.1
resource vault 7.1.0

Host
OS ubuntu
Version 24.04
Arch x86_64

This project is written in python: executable='/home/gabrieleolla/projects/artemide/pulumi/projects/.venv/bin/python' version='3.11.11'

Current Stack: organization/bolla/bolla.production

TYPE URN
pulumi:pulumi:Stack urn:pulumi:bolla.production::bolla::pulumi:pulumi:Stack::bolla-bolla.production
pulumi:providers:aws urn:pulumi:bolla.production::bolla::pulumi:providers:aws::default_6_83_0
prima:cloudflare:Access urn:pulumi:bolla.production::bolla::prima:cloudflare:Access::bolla-production
pulumi:providers:pulumi urn:pulumi:bolla.production::bolla::pulumi:providers:pulumi::default
pulumi:pulumi:StackReference urn:pulumi:bolla.production::bolla::pulumi:pulumi:StackReference::organization/core/core.production
pulumi:providers:cloudflare urn:pulumi:bolla.production::bolla::pulumi:providers:cloudflare::default_5_49_1
cloudflare:index/accessServiceToken:AccessServiceToken urn:pulumi:bolla.production::bolla::cloudflare:index/accessServiceToken:AccessServiceToken::crash-bolla-access-token
cloudflare:index/accessServiceToken:AccessServiceToken urn:pulumi:bolla.production::bolla::cloudflare:index/accessServiceToken:AccessServiceToken::borat-bolla-access-token
cloudflare:index/accessServiceToken:AccessServiceToken urn:pulumi:bolla.production::bolla::cloudflare:index/accessServiceToken:AccessServiceToken::fantozzi-bolla-access-token
cloudflare:index/accessServiceToken:AccessServiceToken urn:pulumi:bolla.production::bolla::cloudflare:index/accessServiceToken:AccessServiceToken::emiglio-bolla-access-token
cloudflare:index/accessServiceToken:AccessServiceToken urn:pulumi:bolla.production::bolla::cloudflare:index/accessServiceToken:AccessServiceToken::starsky-bolla-access-token
cloudflare:index/accessApplication:AccessApplication urn:pulumi:bolla.production::bolla::prima:cloudflare:Access$cloudflare:index/accessApplication:AccessApplication::bolla-production-application
cloudflare:index/accessGroup:AccessGroup urn:pulumi:bolla.production::bolla::cloudflare:index/accessGroup:AccessGroup::crash-bolla-access-group
cloudflare:index/accessGroup:AccessGroup urn:pulumi:bolla.production::bolla::cloudflare:index/accessGroup:AccessGroup::borat-bolla-access-group
cloudflare:index/accessGroup:AccessGroup urn:pulumi:bolla.production::bolla::cloudflare:index/accessGroup:AccessGroup::fantozzi-bolla-access-group
cloudflare:index/accessGroup:AccessGroup urn:pulumi:bolla.production::bolla::cloudflare:index/accessGroup:AccessGroup::emiglio-bolla-access-group
cloudflare:index/accessGroup:AccessGroup urn:pulumi:bolla.production::bolla::cloudflare:index/accessGroup:AccessGroup::starsky-bolla-access-group
cloudflare:index/accessPolicy:AccessPolicy urn:pulumi:bolla.production::bolla::prima:cloudflare:Access$cloudflare:index/accessPolicy:AccessPolicy::bolla-production-allow-service-tokens-policy

Found no pending operations associated with bolla.production

Backend
Name L-PA-PW0CVKL1
URL s3://**********
User gabrieleolla
Organizations
Token type personal

Dependencies:
NAME VERSION
black 25.1.0
flake8 7.3.0
isort 6.0.1
mypy 1.17.0
prima-pulumi 1.18.1
types-boto3-s3control 1.39.2

Pulumi locates its logs in /tmp by default

Additional context

No response

Contributing

Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugSome behavior is incorrect or out of spec

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions