Summary
Uploading to a declared @blob() storage folder against a real deployed Fabric app consistently 404s. Before assuming a bug, I want to confirm whether remote storage-folder provisioning is actually supported in the current preview yet, or whether storage is local-dev-only for now (similar question to #22 for functions).
Environment
@microsoft/rayfin-cli / @microsoft/rayfin-core / @microsoft/rayfin-storage / @microsoft/rayfin-client / @microsoft/rayfin-lib — all 1.34.0-beta.0
- Deployed to a Fabric workspace (Fabric Apps preview enabled)
- Windows, PowerShell
What works
services.storage.enabled: true in rayfin.yml correctly toggles the service on (rayfin up status --json → "services":{"storage":true})
- A minimal
@blob('test-collection') class in rayfin/storage/schema.ts compiles and typechecks fine
rayfin up deploys successfully otherwise (auth, data, static hosting all fine)
- Client-side wiring works: built an
ApiClient directly (@microsoft/rayfin-lib) with a real Entra/Fabric SSO access token, then createStorageClient(apiClient) from @microsoft/rayfin-storage, and called .upload() / .download() against client.storage['test-collection']
What fails
Both upload and download return HTTP 404:
https://<capacity>.pbidedicated.windows.net/storage/test-collection/spike-hello.txt
What I've ruled out / found by reading @microsoft/rayfin-cli dist source
- The CLI does have logic to scan
rayfin/storage/*.ts for @blob() classes and generate a storage-config.json (utils/storage-config-generator.js → generateStorageConfig()), and a function to POST that config remotely (utils/apply-storage-config.js → applyStorageConfig({remote, ...}), targets ${base}/__private/applystorageconfig).
- However, this is only wired into
rayfin dev storage apply (hardcoded remote: false, local Azurite-backed dev server) and rayfin dev watch. There is no rayfin up storage apply and no --remote flag exposed anywhere in this build.
rayfin dev itself isn't even registered in this installed CLI's entrypoint (npx rayfin dev --help → error: unknown command 'dev'), even though the compiled command files exist under node_modules/@microsoft/rayfin-cli/dist/commands/dev/. npx rayfin --help only lists init, up, env, login, logout, docs, help.
storage-apply.js's own error string hints the webservice side may not support it yet: "Upgrade the Rayfin webservice to enable storage apply endpoint (Feature 178b)".
- Not attempted: calling
__private/applystorageconfig directly — that endpoint is reached via the CLI's own Fabric management-API OAuth broker session (api.fabric.microsoft.com), a different auth context than the app's own Entra SSO bearer token, and felt out of bounds for a client-side spike.
This looks like the same rollout pattern as #22 (functions): SDK/decorator layer shipped ahead of remote provisioning.
Questions
- Is remote storage-folder provisioning (i.e.
@blob() folders actually created/reachable on a deployed Fabric app) supported in the current preview, or is storage local-dev-only for now?
- Is
rayfin up storage apply / a --remote flag on dev storage apply planned, and is there a rough timeline?
- Is "Feature 178b" (per the CLI's own error string) the tracked internal item for this?
Happy to share the full spike script / logs if useful.
Summary
Uploading to a declared
@blob()storage folder against a real deployed Fabric app consistently 404s. Before assuming a bug, I want to confirm whether remote storage-folder provisioning is actually supported in the current preview yet, or whether storage is local-dev-only for now (similar question to #22 for functions).Environment
@microsoft/rayfin-cli/@microsoft/rayfin-core/@microsoft/rayfin-storage/@microsoft/rayfin-client/@microsoft/rayfin-lib— all1.34.0-beta.0What works
services.storage.enabled: trueinrayfin.ymlcorrectly toggles the service on (rayfin up status --json→"services":{"storage":true})@blob('test-collection')class inrayfin/storage/schema.tscompiles and typechecks finerayfin updeploys successfully otherwise (auth, data, static hosting all fine)ApiClientdirectly (@microsoft/rayfin-lib) with a real Entra/Fabric SSO access token, thencreateStorageClient(apiClient)from@microsoft/rayfin-storage, and called.upload()/.download()againstclient.storage['test-collection']What fails
Both upload and download return HTTP 404:
What I've ruled out / found by reading
@microsoft/rayfin-clidist sourcerayfin/storage/*.tsfor@blob()classes and generate astorage-config.json(utils/storage-config-generator.js→generateStorageConfig()), and a function to POST that config remotely (utils/apply-storage-config.js→applyStorageConfig({remote, ...}), targets${base}/__private/applystorageconfig).rayfin dev storage apply(hardcodedremote: false, local Azurite-backed dev server) andrayfin dev watch. There is norayfin up storage applyand no--remoteflag exposed anywhere in this build.rayfin devitself isn't even registered in this installed CLI's entrypoint (npx rayfin dev --help→error: unknown command 'dev'), even though the compiled command files exist undernode_modules/@microsoft/rayfin-cli/dist/commands/dev/.npx rayfin --helponly listsinit, up, env, login, logout, docs, help.storage-apply.js's own error string hints the webservice side may not support it yet:"Upgrade the Rayfin webservice to enable storage apply endpoint (Feature 178b)".__private/applystorageconfigdirectly — that endpoint is reached via the CLI's own Fabric management-API OAuth broker session (api.fabric.microsoft.com), a different auth context than the app's own Entra SSO bearer token, and felt out of bounds for a client-side spike.This looks like the same rollout pattern as #22 (functions): SDK/decorator layer shipped ahead of remote provisioning.
Questions
@blob()folders actually created/reachable on a deployed Fabric app) supported in the current preview, or is storage local-dev-only for now?rayfin up storage apply/ a--remoteflag ondev storage applyplanned, and is there a rough timeline?Happy to share the full spike script / logs if useful.