Skip to content

Remote storage apply (@blob() folders) returns 404 — is remote storage provisioning supported in the current preview? #55

Description

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.jsgenerateStorageConfig()), and a function to POST that config remotely (utils/apply-storage-config.jsapplyStorageConfig({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 --helperror: 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

  1. 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?
  2. Is rayfin up storage apply / a --remote flag on dev storage apply planned, and is there a rough timeline?
  3. 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.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions