Hermes 284313f908
Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Initial import of AlgaPSA codebase from PSA server
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz

Source: /opt/alga-psa on psa.joliet.tech
2026-06-22 16:12:17 -05:00

45 lines
2.2 KiB
Markdown

# Current workflow UI entrypoint resolution (post-migration)
This documents the **current** wiring (after the folder-structure migration described in `PRD.md`).
## Current wiring
### Runtime import surface
- The UI loader dynamically imports the stable specifier:
- `packages/workflows/src/components/WorkflowComponentLoader.ts` imports `@alga-psa/workflows/entry` and uses `mod.DnDFlow`.
### Next.js build-time aliasing
`server/next.config.mjs` defines both:
- **Turbopack** alias (`experimental.turbo.resolveAlias`):
- `@alga-psa/workflows/entry` -> `../ee/server/src/workflows/entry` when `isEE`
- `@alga-psa/workflows/entry` -> `./src/empty/workflows/entry` when not EE
- **Webpack** alias (`webpack.resolve.alias`):
- `@alga-psa/workflows/entry` -> `../ee/server/src/workflows/entry.tsx` when `isEE`
- `@alga-psa/workflows/entry` -> `server/src/empty/workflows/entry.tsx` when not EE
### TypeScript path mapping (non-authoritative, but affects Next resolution)
`server/tsconfig.json` and `ee/server/tsconfig.json` do **not** map `@alga-psa/workflows/entry`. TypeScript is satisfied via `server/src/types/external-modules.d.ts`.
### Note: duplicate EE UI code exists but is not currently authoritative
There is EE workflow UI code under `ee/server/src/components/workflow-designer/**`, and it is now the canonical runtime implementation through `ee/server/src/workflows/entry.tsx`.
## Failure mode: “hybrid” EE build
Historically, Next.js injects a **JsConfigPathsPlugin** based on `tsconfig.json` `paths`, which could win before webpack aliasing and cause EE builds to bundle CE stubs (a “hybrid build”).
Known OSS stub string (used by guard tests later):
- `Workflow designer requires Enterprise Edition. Please upgrade to access this feature.` (currently in `server/src/empty/workflows/entry.tsx`)
## Existing mitigation (in code today)
In addition to deterministic aliasing and removing TS path mappings for `@alga-psa/workflows/entry`, CI guard scripts validate:
- EE build output does **not** contain the stub string: `scripts/guard-ee-workflows-next-build.mjs`
- CE build output **does** contain the stub string: `scripts/guard-ce-workflows-next-build.mjs`