CertSafari
    Snowflake SnowPro Specialty: Native Apps· Lessons

    Domain 4 · Lesson 10/12

    Native App Release Channels, Versions and Patches

    Manage deployed applications.

    12 min read
    9.67% of exam
    4 sources
    Published 5 Oct 2026
    Docs as of 4 Oct 2026

    What you will be able to do

    • Tell the QA, ALPHA and DEFAULT release channels apart by audience, security scan and intended use
    • Add, remove and replace the accounts targeted by a release channel
    • Name the privileges that govern release management and installing preview apps
    • Explain how channel choice affects pricing, trials and the number of instances
    • Explain which channel types are monetized and which are for testing only
    • Register, deregister and assign versions and patches within the documented limits

    Key concept

    Per-channel release directive — When release channels are enabled, versions are assigned to a channel (QA, ALPHA or DEFAULT), and each channel has its own release directive that decides which version and patch its consumers get. Every release-management task happens inside one channel.

    1.QA, ALPHA and DEFAULT release channels

    Release channels let a provider publish an app at different stages of its development lifecycle, and run several versions and patches at the same time. Release channels are enabled by default when you create an application package. If you created a package without them, you can turn them on later with ENABLE_RELEASE_CHANNELS=TRUE on CREATE APPLICATION PACKAGE or ALTER APPLICATION PACKAGE. This is a one-way decision: after release channels are enabled for a package, they cannot be disabled.

    The framework supports three channels. They differ in who can reach them and whether the automated security scan runs.

    The three release channels compared
    ChannelWho can receive itAutomated security scanIntended use
    QAOnly specific accounts in the provider's own organizationNot triggered by adding a version to QATesting
    ALPHACan be published to consumers outside the provider's organizationRuns when a version is assigned; a version that fails can no longer be usedWorking with consumers while the app is still in development
    DEFAULTAll consumers who have access to the app version or patchMust passProduction

    ALPHA has one subtlety. While the security scan is still running, the provider can already set the release directive for the version, and consumers can install it. If the scan then fails, the version can no longer be used. DEFAULT is the production channel, and everything assigned to it must meet the security requirements for publishing an app.

    Checkpoint 1 of 7· Check yourself

    A provider adds version V2 only to the QA release channel and waits for the automated security scan to finish. What happens?

    Sources12

    2.Targeting accounts and release-management privileges

    By default, only the DEFAULT channel is open to every consumer with access to the listing. QA and ALPHA must be enabled explicitly for specific accounts, and the application package keeps a list of the accounts in each of those channels. You edit that list with ALTER APPLICATION PACKAGE … MODIFY RELEASE CHANNEL, using ADD ACCOUNTS, REMOVE ACCOUNTS or SET ACCOUNTS.

    Adding one consumer account to the ALPHA channelsql
    ALTER APPLICATION PACKAGE my_app_package MODIFY RELEASE CHANNEL ALPHA ADD ACCOUNTS=(ORG1.ACCOUNT1);

    SET ACCOUNTS does not add to the list. It overwrites the list. Every account that is not in the new list is removed from the channel.

    SET replaces the whole account list for the channelsql
    ALTER APPLICATION PACKAGE my_app_package MODIFY RELEASE CHANNEL ALPHA SET ACCOUNTS=(ORG1.ACCOUNT2);

    Checkpoint 2 of 7· Check yourself

    ALPHA currently contains ORG1.ACCOUNT1. The provider runs MODIFY RELEASE CHANNEL ALPHA SET ACCOUNTS=(ORG1.ACCOUNT2). Which accounts are in ALPHA afterwards?

    The documentation names privileges for release management in more than one place. The release-channels guide says a role needs MANAGE RELEASES. That privilege lets the role enable release channels and the QA and ALPHA channels, register and deregister versions and patches, add versions and patches, and set the release directive. The SQL reference for MODIFY RELEASE CHANNEL instead lists OWNERSHIP on the application package, or the account-level MANAGE VERSIONS privilege. MANAGE VERSIONS lets a role modify release channels and release directives on any application package without owning it.

    Installing from the test channels is controlled separately. To create an app from QA or ALPHA, even in your own account, the role needs CREATE PREVIEW APPLICATION.

    Checkpoint 3 of 7· Exam question

    Which statement correctly distinguishes a version from a patch when managing an application package's release lifecycle?

    Checkpoint 4 of 7· Check yourself

    A provider's test engineer runs CREATE APPLICATION … USING RELEASE CHANNEL QA and gets a privilege error. Which privilege is missing?

    Sources13

    3.Channel choice and monetization

    The channel an app is installed from decides how it is billed. Every instance installed from DEFAULT uses the pricing plan configured for the listing. Instances from QA and ALPHA are free, because they are meant for testing. Only DEFAULT is meant for production.

    The channel also limits how many instances a consumer can have. A provider enables multiple instances with the MULTIPLE_INSTANCES property on the application package, and the setting applies to every channel in the package. Even so, on a paid listing a consumer can have only one DEFAULT-channel instance.

    How the installing channel affects pricing and instance count
    Installed fromPricingInstances per consumer
    QA or ALPHAFree; does not use the listing pricing planMultiple
    DEFAULT, paid listingUses the listing pricing planOne
    DEFAULT, free listingUses the listing pricing planMultiple

    Trials work differently by channel on limited trial and paid (with trial) listings. A QA or ALPHA install is free and is disabled when the trial ends. If it was installed from a paid listing, though, it stays available after the trial. To revoke it, the provider removes the consumer from the channel's active targets. A DEFAULT install is disabled when the trial ends, and to keep using the app the consumer must accept an offer and select the app from the DEFAULT channel.

    If the USING RELEASE CHANNEL clause is left out of CREATE APPLICATION, the app is installed from DEFAULT.

    Checkpoint 5 of 7· Fill the gap

    Complete this command so the provider installs a test instance from the channel that is limited to their own organization and does not trigger the security scan.

    CREATE APPLICATION my_app
      FROM APPLICATION PACKAGE my_app_package
      USING RELEASE CHANNEL  ? ;

    Checkpoint 6 of 7· Check yourself

    A consumer installed an app from the ALPHA channel of a paid listing. The trial has ended and the app is still available. How does the provider revoke access?

    Putting the channel types and their monetization implications together: the three channel types split into one production channel and two testing channels, and that split is what drives monetization. DEFAULT is the only production channel, and it is the only one whose installs are billed at the listing's pricing plan. QA and ALPHA are testing channels, so their installs are free and never use the pricing plan, whichever listing they came from. That makes channel membership a commercial control as well as a release control: an account added to QA or ALPHA gets a free test instance, while a consumer who should pay must install from DEFAULT.

    The implications reach trials and instance counts too. On a paid listing, a QA or ALPHA instance outlives the trial unless the provider removes the consumer from the channel's targets, whereas a DEFAULT instance is disabled when the trial ends until the consumer accepts an offer. A paid listing also caps a consumer at one DEFAULT instance, while QA and ALPHA instances can be multiple. So a provider should not leave a paying customer on a test channel: it is free, and access continues after the trial.

    Sources1

    4.Registering versions and adding patches

    Versions usually carry major updates such as new features and changed functionality. Patches should carry only small updates, such as security fixes. Each version and patch needs its own manifest file and setup script.

    With release channels enabled, the legacy ADD VERSION USING '@stage/path' clause is not supported. Instead, you register a version in the package, then assign it to a channel. Registering creates the version and its patch 0, but does not put it in any channel.

    Step 1: register a version, which also creates patch 0sql
    ALTER APPLICATION PACKAGE my_app_package REGISTER VERSION V1 USING '@stage/path';
    Step 2: assign the registered version to a channelsql
    ALTER APPLICATION PACKAGE my_app_package MODIFY RELEASE CHANNEL QA ADD VERSION V1;
    Version operations on a package with release channels
    ClauseEffectConstraint
    REGISTER VERSIONCreates a version from files at a stage pathNot in any channel until ADD VERSION assigns it
    DEREGISTER VERSIONRemoves the version and its patches from the packageOnly when it is in no release channel and no installed instances run on it
    MODIFY RELEASE CHANNEL … ADD VERSIONMakes a registered version available to release directives in that channelAt most two versions per channel; adding to QA does not trigger the scan
    MODIFY RELEASE CHANNEL … DROP VERSIONRemoves the version from the channelAsynchronous; finishes only after every install on it has been upgraded

    Each limit applies at a specific level. A package can hold at most two unassigned versions, so to register a third you must deregister one first. The two-version limit applies to each release channel, not to the whole package, which is how channels let a provider run more than two versions at once. Within a version, patches are not capped at two: a single version can have up to 130 patches. Patches cannot be dropped. When you add a patch without a number, Snowflake uses the previous patch number plus 1. Version identifiers can be at most 30 characters long. When a version is added to a channel, its later patches are bound to that same channel.

    Checkpoint 7 of 7· Put it in order

    Put these steps in order to make a new version installable through a channel's release directive.

    1. 1.Add the registered version to a release channel with MODIFY RELEASE CHANNEL … ADD VERSION
    2. 2.Set the channel's release directive to that version and patch
    3. 3.Register the version from its stage path with REGISTER VERSION

    Sources142

    Exam traps

    Each one states something that sounds right. Open it to see what is actually true.

    1. 1.MODIFY RELEASE CHANNEL … SET ACCOUNTS appends the listed accounts to the channel.Why is that wrong?

      SET overwrites the list, so any account left out is removed. Use ADD ACCOUNTS to append.

      Covered in Targeting accounts and release-management privileges

    2. 2.An app installed from the ALPHA or QA channel of a paid listing is billed at the listing's pricing plan.Why is that wrong?

      Only DEFAULT installs use the listing's pricing plan. QA and ALPHA installs are free.

      Covered in Channel choice and monetization

    3. 3.On a package with release channels you can still create a version with ADD VERSION … USING a stage path.Why is that wrong?

      That clause is not supported once channels are enabled. Register the version, then add it to a channel.

      Covered in Registering versions and adding patches

    Sources

    Every claim above is drawn from one of these pages, quoted as it was written on the date shown.

    1. 1.
      “After release channels are enabled for an application package, they cannot be disabled.”
      ↩︎ QA, ALPHA and DEFAULT release channels
      “To use release channels, you must use a role that has been granted the MANAGE RELEASES privilege.”
      ↩︎ Targeting accounts and release-management privileges
      “a consumer can only have one instance of an app using the DEFAULT release channel”
      ↩︎ Channel choice and monetization
      “All app instances installed using the DEFAULT release channel use the pricing plan configured for the listing.”
      ↩︎ Channel choice and monetization
      “Only apps installed from the DEFAULT release channel are meant for production.”
      ↩︎ Channel choice and monetization
      “There is a maximum of two unassigned versions (not added to any release channels) allowed in the application package.”
      ↩︎ Registering versions and adding patches
      “When release channels are enabled for an application package, each channel has its own release directive.”
      ↩︎ Key concept
      “This command removes all current accounts from the ALPHA release channel and adds the ORG1.ACCOUNT2 account.”
      ↩︎ Exam trap 1
      “App instances installed from ALPHA and QA release channels are free and do not use the pricing plan configured for the listing.”
      ↩︎ Exam trap 2
      “Providers must register and deregister a version in the application package.”
      ↩︎ Exam trap 3
      “Adding a version to the QA release channel does not initiate the automated security scan.”
      ↩︎ Checkpoint
      “This command removes all current accounts from the ALPHA release channel and adds the ORG1.ACCOUNT2 account.”
      ↩︎ Checkpoint
      “you must use a role that has been granted the CREATE PREVIEW APPLICATION privilege”
      ↩︎ Checkpoint
      “App instances installed from ALPHA and QA release channels are free and do not use the pricing plan configured for the listing.”
      ↩︎ Prediction
      “they can do so by removing the consumer from the active targets of the release channel”
      ↩︎ Checkpoint
      “you must explicitly add the version to a release channel to set the release directive for the app”
      ↩︎ Checkpoint
    2. 2.
      “if a version assigned to this release channel fails the security scan, it can no longer be used.”
      ↩︎ QA, ALPHA and DEFAULT release channels
      “This release channel is the production release channel.”
      ↩︎ QA, ALPHA and DEFAULT release channels
      “Patches cannot be dropped.”
      ↩︎ Registering versions and adding patches
    3. 3.
      “Global privilege that allows modifying release channels and release directives on any application package.”
      ↩︎ Targeting accounts and release-management privileges

    Continue to page 2 of 2

    Native App Release Directives, Upgrades and Monitoring

    Spotted a mistake, or was something unclear? Tell us.