About project definition files¶
When developing Streamlit or Snowpark applications you often work with multiple files and objects, be it python file or stored procedures. Organizing this in a clear and concise way is very important for smooth development experience. That’s the reason why Snowflake CLI is using the concept of project definition files.
A project definition file (usually named snowflake.yml)
is a file containing information about the type of the project you are working on as well as information about the Snowflake objects you are developing. The following snowflake.yml
example shows a Snowpark project with a UDF and a stored procedure.
definition_version: 1
snowpark:
project_name: "my_snowpark_project"
stage_name: "dev_deployment"
src: "app/"
functions:
- name: test_function
handler: "functions.hello_function"
signature: ""
returns: string
procedures:
- name: hello_procedure
handler: "procedures.hello_procedure"
signature:
- name: "name"
type: "string"
returns: string
Each project type requires specific information about what you are building. Snowflake CLI currently supports the following projects types:
Caution
Files inside a project directory are processed by Snowflake CLI and could be uploaded to Snowflake when executing other snow
commands. You should use caution when putting any sensitive information inside files in a project directory.