Who can turn on SPCS / App Runtime on a partner-managed Snowflake account — and is it in a DSA/TAL's hands?
The question
"What is the SPCS (Snowpark Container Services) App Runtime enablement process for Snowflake accounts managed by a partner like phData, and can a DSA/TAL enable it independently or does it require Snowflake account-admin action outside their control?" Context: Hex deployment matrix v2 (2026-07-07) flagged "App Runtime enablement on a phData account may need admin action nobody controls" as an explicit P3 blocker; CAF/DIE roadmap EPIC 3 targets SPCS-native / App-Runtime deployment. The founder is a DSA/TAL and does NOT hold ACCOUNTADMIN on client or phData Snowflake accounts.
Why this is in the vault
App Runtime enablement on a phData-managed Snowflake account is a named P3 blocker in the CAF/DIE roadmap (EPIC 3, ticket 3.1). The founder is a DSA/TAL without ACCOUNTADMIN on any phData or client account, so this research resolves whether EPIC 3's "verify App Runtime enablement" step is self-serviceable or requires an escalation dependency to a named account admin (Dom Rocco / Gary Duma per the hex deployment matrix). The answer directly shapes whether a live demo URL is achievable for KB4 (July 15) or falls back to P2.5.
What we already know (from the vault)
- The marketplace/website was already deployed into Snowflake via App Runtime on the founder's personal sandbox (KMB25927), driven by env-as-code (
snowflake_deploy.pyprovision/deploy/ingest/status + doctor + tiered grants). App Runtime — not raw SPCS — is the exercised path. [[2026-07-07-hex-deployment-matrix-v2]] - P3 ("Snowflake-native") in the matrix documents the exact sharp edge: "account must be App-Runtime-enabled, snow CLI ≥3.19," App Runtime is public preview, "the sandbox happened to be pre-configured, and enablement on a phData account may need admin action nobody in the room controls." Brigade-in-SPCS remains unproven and C1-gated; P2.5 exists precisely so P3 isn't the only Snowflake story. [[2026-07-07-hex-deployment-matrix-v2]]
- CAF/DIE roadmap EPIC 3 acceptance explicitly lists "re-provision on a phData-side account (verify App Runtime enablement — public preview) · render confirmed by a human." Ticket 3.1 order = "verify App Runtime enablement on the target account" before running the driver. The delta log notes "SPCS remains available as an adapter; App Runtime is the exercised path." [[caf-die-roadmap-v1]]
- v0 pack already predicted this: "SPCS egress / client-admin approval can sink Epic 3's deployment shape at specific clients." [[2026-07-06-caf-die-roadmap-v0-pack]]
- SPCS study notes: SPCS is Snowflake's managed container orchestration; compute pools remain active/billed by default (cost-control is exactly why creation is admin-gated). [[study-snowpark-container-services]]
What the web says
- Two distinct layers. "Snowpark Container Services" (SPCS) is the GA container-orchestration substrate (compute pools, image repos, services). "Snowflake App Runtime" is a newer, higher-level layer built on top of SPCS for building/deploying Node.js/Next.js web apps via Cortex Code or the Snowflake CLI. The founder's exercised path is App Runtime specifically. (App Runtime privileges, preview features)
- App Runtime is PUBLIC PREVIEW (not GA) as of mid-2026, and is not available on trial accounts. "Features, syntax, and outputs might change before general availability." (App Runtime limitations, preview features)
- Gate 1 — preview access toggle. Because App Runtime is preview, the account must have preview access enabled via
SYSTEM$ENABLE_PREVIEW_ACCESS— described as "an all-or-nothing setting that affects all users and all previews within an account," and "account administrators can enable or disable access to preview features for their entire Snowflake account." This is an account-admin-scoped action. (preview features) - Gate 2 — account-admin setup + account-level grants. The App Runtime docs recommend "account administrator setup so
snow app setupandsnow app deployuse shared account defaults"; a "deploy role" is provisioned and "deploy roles receive the grants they need during Snowsight setup." The underlying SPCS setup requires ACCOUNTADMIN: "To create the role and objects, you must use the ACCOUNTADMIN role." Compute-pool creation is an account-level operation restricted to ACCOUNTADMIN ("This restriction helps to control costs and manage business information risks"); pool creation itself is not delegable in the default setup. (App Runtime privileges, SPCS common setup) - The specific account-level grants a deploy role needs (issued once by ACCOUNTADMIN, then the role self-serves):
GRANT CREATE COMPUTE POOL ON ACCOUNT TO ROLE <role>,GRANT BIND SERVICE ENDPOINT ON ACCOUNT TO ROLE <role>(required for public endpoints), plusCREATE INTEGRATION/CREATE DATABASE/CREATE WAREHOUSE/MONITOR USAGEon account andIMPORTED PRIVILEGESon thesnowflakeDB. Per-service object privileges (USAGE / MONITOR / OPERATE / OWNERSHIP on the Application Service) are ordinary object grants the owning role can manage afterward. (SPCS common setup, App Runtime privileges)
Convergences and contradictions
- Convergence: vault and docs agree — enablement is a real gate. The matrix's phrase "must be App-Runtime-enabled" maps precisely to two documented account-admin actions (preview toggle + account-admin setup/grants), both above a DSA's privilege ceiling.
- Contradiction/clarification: the question treats "SPCS App Runtime" as one thing. They are two layers. Raw SPCS is GA and needs a one-time ACCOUNTADMIN grant of account-level privileges; App Runtime is public preview and adds a second gate (the account-wide preview toggle) plus a no-trial-account constraint. So App Runtime is more admin-gated than base SPCS, not less.
- No ORGADMIN involved: every documented step is ACCOUNTADMIN-scoped for the specific account. ORGADMIN only matters for creating/provisioning a new account, which is not what's required here.
Synthesis for RDCO
Verdict: No — a DSA/TAL without ACCOUNTADMIN cannot self-serve App Runtime enablement. It requires a one-time ACCOUNTADMIN escalation on the target account (not ORGADMIN, not per-deploy). There are two admin gates, and both sit above the founder's privilege level on a phData or client account: (1) the account-wide preview-access toggle for App Runtime (SYSTEM$ENABLE_PREVIEW_ACCESS, an account-admin all-or-nothing setting), and (2) the account-administrator/Snowsight setup that provisions the deploy role and grants the account-level privileges CREATE COMPUTE POOL and BIND SERVICE ENDPOINT (compute-pool creation is explicitly ACCOUNTADMIN-restricted for cost control). The reason the sandbox "just worked" is that it was pre-configured — the founder never had to cross either gate, which is exactly why P3 on a fresh phData account is not free.
The good news: it's a small, one-time, well-scoped escalation, not an open-ended blocker. The exact ask to hand whoever holds ACCOUNTADMIN on the target account is: (a) enable App Runtime preview access on the account (SYSTEM$ENABLE_PREVIEW_ACCESS — confirm it's not a trial account, which App Runtime disallows); (b) run the App Runtime account-administrator setup in Snowsight to create the deploy role + shared account defaults; (c) grant that deploy role the account-level SPCS privileges — GRANT CREATE COMPUTE POOL ON ACCOUNT TO ROLE <deploy_role> and, if public HTTP endpoints are needed, GRANT BIND SERVICE ENDPOINT ON ACCOUNT TO ROLE <deploy_role> (plus CREATE INTEGRATION/CREATE WAREHOUSE/MONITOR USAGE as the env-as-code doctor requires). After that one-time setup, the founder's deploy role self-serves every subsequent snow app setup/snow app deploy, and env-as-code re-provisioning becomes a pure runbook run.
Mapping to EPIC 3 P3: P3 is NOT self-serviceable — treat "verify App Runtime enablement" (roadmap ticket 3.1) as an escalation dependency, not a self-check. The roadmap already half-encodes this ("re-provision on a phData-side account · verify App Runtime enablement"); this brief sharpens it to a named owner-and-grant request rather than a hope. Action: identify the ACCOUNTADMIN on the intended phData demo account (the matrix names Dom Rocco / Gary Duma as the people to clear the sandbox with) and send the three-line enablement request above this week if a live URL is wanted for KB4 (July 15). If the escalation can't clear in time, the matrix's own mitigation holds: fall back to P2.5 (screenshot of the already-rendered sandbox, or the brigade-outputs-only Snowflake showcase) which needs no new account enablement. Strategically, this also validates the founder's hexagonal bet: because deployment is behind an adapter/config layer, the enablement gate is the only client-specific cost — no business-logic fork — so the escalation is a per-account checklist item, repeatable at every client, not a re-engineering task.
Open follow-ups
- What is the exact preview-feature identifier string to pass to
SYSTEM$ENABLE_PREVIEW_ACCESSfor App Runtime (vs enabling all previews), so the ask to ACCOUNTADMIN is minimal-blast-radius? - Does phData operate a shared internal "demo/showcase" Snowflake account with a standing ACCOUNTADMIN process, and who owns its enablement requests (vs one-off personal sandboxes)?
- For client-owned accounts (not phData's), is App-Runtime preview enablement blocked by client security review / egress policy — i.e., does the v0-pack "client-admin approval can sink Epic 3" risk mean some clients can never enable it, forcing the P2.5 fallback permanently at those accounts?
- What is App Runtime's expected GA date — does waiting for GA remove the preview-toggle gate entirely (leaving only the compute-pool/BIND grants)?
- Does raw brigade-in-SPCS (the C1-gated P3 shape, distinct from the App Runtime website) need any account-level privilege beyond
CREATE COMPUTE POOL+BIND SERVICE ENDPOINT— e.g., external access integrations for Anthropic API reachability from inside a service?
Related
- [[2026-07-07-hex-deployment-matrix-v2]]
- [[2026-07-03-hex-deployment-matrix]]
- [[caf-die-roadmap-v1]]
- [[2026-07-06-caf-die-roadmap-v0-pack]]
- [[2026-07-05-brigade-skills-snowflake-cortex-code]]
- [[study-snowpark-container-services]]
Sources
- [[2026-07-07-hex-deployment-matrix-v2]] —
rdco-vault/01-projects/phdata/2026-07-07-hex-deployment-matrix-v2.md(P3 App-Runtime enablement blocker; sandbox pre-config) - [[caf-die-roadmap-v1]] —
rdco-vault/01-projects/phdata/roadmap-v1-work/caf-die-roadmap-v1.md(EPIC 3 acceptance + ticket 3.1) - [[2026-07-06-caf-die-roadmap-v0-pack]] —
rdco-vault/01-projects/phdata/2026-07-06-caf-die-roadmap-v0-pack.md(SPCS egress / client-admin approval risk) - [[study-snowpark-container-services]] —
rdco-vault/01-projects/certifications/snowpro-genai-c02/study-snowpark-container-services.md(SPCS compute-pool cost/billing) - Snowflake App Runtime — privileges: https://docs.snowflake.com/en/developer-guide/snowflake-app-runtime/privileges
- Snowflake App Runtime — limitations (public preview, no trial accounts): https://docs.snowflake.com/en/developer-guide/snowflake-app-runtime/limitations
- Snowflake — Preview features + SYSTEM$ENABLE_PREVIEW_ACCESS: https://docs.snowflake.com/en/release-notes/preview-features
- SPCS — Common setup for tutorials (ACCOUNTADMIN setup, CREATE COMPUTE POOL, BIND SERVICE ENDPOINT grants): https://docs.snowflake.com/en/developer-guide/snowpark-container-services/tutorials/common-setup
- SPCS — Working with services (public-endpoint BIND SERVICE ENDPOINT privilege): https://docs.snowflake.com/en/developer-guide/snowpark-container-services/working-with-services