dbt-snowflake
dbt-snowflake copied to clipboard
[Feature] Support additional security related config arguments for materializations
Is this your first time submitting a feature request?
- [X] I have read the expectations for open source contributors
- [X] I have searched the existing issues, and I could not find an existing issue for this feature
- [X] I am requesting a straightforward extension of existing dbt-snowflake functionality, rather than a Big Idea better suited to a discussion
Describe the feature
Snowflake has many parameters available when creating a table like adding masking policies, row policies, setting tags, etc. which are not available in the current materialization strategies. The security-related parameters are especially important to be created at the time that the table is created. We should add support to set tags, masking policies and row policies at the time of table creation.
Describe alternatives you've considered
In order to implement these currently, users need to create a custom materialization just to add these arguments, which is not simple, and would create a lot of copy/pasting of the existing materializations or they need to create a post-hook, meaning the table will be created without the additional parameters between the two transactions. In the case of security policies this is unacceptable to have the table created without the policy.
Who will this benefit?
- users who want to create tables with masking policies that are set at the time of table creation
- users who want to add tags to the table, especially those which govern masking policies
- users who want to create row policies that are set at the time of table creation
Are you interested in contributing this feature?
yes
Anything else?
https://docs.snowflake.com/en/sql-reference/sql/create-table
Thanks for opening this @kellyldougan! I agree that there's plenty more that dbt could do here. For us thought, the questions is: should we do it now or later?
Even if we decide that to do everything that is possible with a CREATE TABLE
in Snowflake, we won't be able to do it all at once.
To that end, I propose we break up this issue into new issues where each issue is defined by the use case.
We're in luck because some of these issues already exist
- Dynamic Data Masking: https://github.com/dbt-labs/dbt-adapters/issues/85
- Key-Value Tagging in Snowflake #827
Do you think that there's anything missing from those two above issues?
This issue has been marked as Stale because it has been open for 180 days with no activity. If you would like the issue to remain open, please comment on the issue or else it will be closed in 7 days.
Although we are closing this issue as stale, it's not gone forever. Issues can be reopened if there is renewed community interest. Just add a comment to notify the maintainers.