@burdenoff/microfe-workflows
Shared Layer 2 workflow UI for Fluidgrids and product shells. This package hosts
@burdenoff/fluidgrids-fe-sdk; product MFEs must not initialize a parallel SDK.
Host integration
Mount inside the shell's gateway providers, router and permission context. The shell supplies both workspace and global gateway clients. Wait until workspace selection has issued a workspace JWT before mounting:
import { WorkflowsRoot } from '@burdenoff/microfe-workflows';
return workspaceId && workspaceToken ? (
<WorkflowsRoot
basePath="/myproduct/workflows"
navigate={navigate}
currentUser={user}
productId="myproduct"
productName="My Product"
workspaceId={workspaceId}
workspaceToken={workspaceToken}
tenantId={tenantId}
apiGatewayUrl={workspaceGatewayUrl}
authToken={authToken}
/>
) : <div role="status">Loading your workspace…</div>;
workspaceToken is required. Upgrading hosts must pass it explicitly and gate
mounting until it is available; authToken alone cannot authorize workspace
operations. The shell client sends both Authorization and
X-Workspace-Authorization. Product selection narrows access; the gateway
still enforces authentication, product access and RBAC.
Pin the same SDK version in the shell as this package's peer dependency. Include this package's published files in Tailwind's source scan. Do not use local source aliases to validate a production package build.
The provider initializes configuration before the node palette. Gateway, tenant, workspace, product or user changes end the execution session and clear old selections and local run state. Token and callback refreshes preserve the current view. Mount one workflow host at a time.
Routes
Routes are relative to basePath:
list: workflow definitionsnew: new workflow builderworkflow/:id/:version: existing workflow builderrunsandruns/:runId: current user's product-scoped runsinsights,templates,nodes,settings: shared SDK pages- any unknown path redirects to
list
Product-specific bot or application bindings use the workspace gateway and navigate to these routes; they do not own SDK configuration.
Development
Run bun install and bun run sanity to validate lint, formatting, types, unit
tests and the published library build. GraphQL operations are owned by the SDK;
this wrapper has no separate generated operation layer, so it carries no schema
snapshot.
bun run test runs the bun unit suite under src/ (happy-dom, see
src/test-support/): the route table and its permission gates, nav and footer
registration, the provider session boundary, the translation hook, and a check
that every tr(key, fallback) call has its key in src/translations/en.ts. The
same suite gates the PR check and the publish workflow.
React Doctor runs on every pull request (.github/workflows/react-doctor.yml,
config in doctor.config.json, reviewed findings in
.react-doctor/false-positives.md). Locally: npx -y react-doctor@latest . --verbose.
The complete reusable guide is in the dev repository:
platform/context/automation/fluidgrids/HOW_TO_INTEGRATE_FLUIDGRIDS.md.