# 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.snowddl.com/breaking-changes-log/0.33.0-october-2024.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
