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
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz Source: /opt/alga-psa on psa.joliet.tech
45 lines
2.2 KiB
Markdown
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`
|