Mon Nov 20 2023

0.3.39

Critical Update | Resource Binding Changes

Context:

To enhance clarity and improve tooling compatibility, we have introduced a significant change in the naming convention of template references within Hulk. This update involves prefixing all reference fields with an '@' symbol. This modification aims to distinguish clearly between reference fields and configuration fields.

Impact:

This change is pivotal for tool development, as it simplifies the identification of references in schema templates. However, it also means that all existing templates will become incompatible with this new version.

Before the Update:


{

    "application_insights": {

        "name": "appi-argvengers-{env}",

        "log_analytics_workspace_name": "log-argvengers-{env}"

    }

},

{

    "log_analytics": {

        "name": "log-argvengers-{env}",

        "sku": "PerGB2018"

    }

}

After the Update:


{

    "application_insights": {

        "name": "appi-argvengers-{env}",

        "@log_analytics_workspace_name": "log-argvengers-{env}"

    }

},

{

    "log_analytics": {

        "name": "log-argvengers-{env}",

        "sku": "PerGB2018"

    }

}

Note:

This update, while not extensive in its changes to the templates, necessitates a review and update of all existing templates to ensure compatibility with the new naming convention.

Variables

  • Template variables can now be escaped in cases where users need values containing {text}.

Usage


{

    "function_app": {

    "name": "func-releasenotes-{env}",

    "sku": "Consumption",

    "@plan_name": "...",

        "@storage_account_name": "...",

        "app_settings": [

            {

                "type": "String",

                "name": "app-settings-name",

                "value": "https://www.google.com/{{slug}}"

            }

        ]

    }

}


By adding the double {{ }} we are escaping the variable and the app setting value would be: https://www.google.com/{slug} when looking at it from the portal

API Connection

  • The resource is not available

Logic App

  • Logic Apps can now bind to api connections to provide more API safety