> For the complete documentation index, see [llms.txt](https://docs.snowddl.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.snowddl.com/breaking-changes-log/0.33.0-october-2024.md).

# 0.33.0 - October 2024

This update introduces significant changes related to management of policies.

## NETWORK POLICY rework

[NETWORK POLICY](/basic/yaml-configs/network-policy.md) object type was significantly reworked. Now it behaves similarly to other types of policies. Internally it uses `POLICY_REFERENCES` table function to get connected objects (ACCOUNT, USER, etc.). Env prefix is now supported for network policies.

#### Account-level NETWORK POLICY

Setting `NETWORK POLICY` on ACCOUNT now requires [ACCOUNT POLICY](/basic/yaml-configs/account-policy.md) config. Setting it via [ACCOUNT PARAMETERS](/basic/yaml-configs/account-parameter.md) no longer works.

Before:

```
account_params.yaml
---

network_policy: MY_NETWORK_POLICY
```

After:

```
account_policy.yaml
---

network_policy: MY_NETWORK_POLICY
```

#### User-level NETWORK POLICY

Setting `NETWORK POLICY` on USER now requires explicit `network_policy` parameter in [USER](/basic/yaml-configs/user.md) config. Setting it via `session_params` no longer works.

Before:

```yaml
my_user:
  first_name: John
  last_name: Doe
  session_params:
    network_policy: MY_NETWORK_POLICY
```

After:

```yaml
my_user:
  first_name: John
  last_name: Doe
  network_policy: my_network_policy
```

## Policy references rework

Previously it was required to specify references for most types of policies in policy config using `references` parameter. This parameter is still working, but it is now deprecated.

Policy references can now be specified directly in [TABLE](/basic/yaml-configs/table.md) or [VIEW](/basic/yaml-configs/view.md) config using new policy reference parameters.

Before:

```yaml
test_masking_policy_1.yaml
---

arguments:
  name: VARCHAR(255)

returns: VARCHAR(255)

body: |-
  REPLACE(name, 'A', '*')

references:
  - object_type: TABLE
    object_name: test_table_1
    columns: [name]


---
test_table_1.yaml
---

columns:
  name: VARCHAR(255)
```

After:

```
test_masking_policy_1.yaml
---

arguments:
  name: VARCHAR(255)

returns: VARCHAR(255)

body: |-
  REPLACE(name, 'A', '*')


---
test_table_1.yaml
---

columns:
  name: VARCHAR(255)

masking_policies:
  - policy_name: test_masking_policy_1
    columns: [name]
```

## Execution sequence rework

This update introduced new `destroy_sequence` for SnowDDL applications.

Original sequences were renamed:

* `parser_sequence` -> `parse_sequence`
* `resolver_sequence` -> `resolve_sequence`

If you implemented custom application using SnowDDL code, please update it accordingly.
