Skip to content

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

Description

@SpringSistemas6

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions