# Data flow — microsoft/rushstack

> Canonical page: https://codevetter.com/unpack/rushstack/data-flow

# Data flow — microsoft/rushstack

Scanned commit 1e18b16f029299f53a966878aff2ce187dd65a51 (2026-10-01). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Configuration and filesystem inputs feed most tool flows, with CLI arguments determining selection and execution mode. API analysis transforms TypeScript declarations into structured models and generated files. Lockfile Explorer transfers a serialized dependency graph over HTTP into Redux, while bookmarks persist independently in browser storage. Daemon state combines workspace fingerprints with separately owned transport files and connection lifetimes.
- ExtractorConfig loads an extends chain, resolves relative or package-based references, normalizes file-relative paths before merging, applies defaults, and schema-validates the merged configuration. — [apps/api-extractor/src/api/ExtractorConfig.ts#L650-708](https://github.com/microsoft/rushstack/blob/1e18b16f029299f53a966878aff2ce187dd65a51/apps/api-extractor/src/api/ExtractorConfig.ts#L650-L708)
- Extractor.invoke obtains CompilerState, sends its TypeScript program into Collector, then runs Collector.analyze, DocCommentEnhancer, ValidationEnhancer, and ApiModelGenerator before writing enabled outputs. — [apps/api-extractor/src/api/Extractor.ts#L222-235](https://github.com/microsoft/rushstack/blob/1e18b16f029299f53a966878aff2ce187dd65a51/apps/api-extractor/src/api/Extractor.ts#L222-L235) [apps/api-extractor/src/api/Extractor.ts#L277-305](https://github.com/microsoft/rushstack/blob/1e18b16f029299f53a966878aff2ce187dd65a51/apps/api-extractor/src/api/Extractor.ts#L277-L305)
- API reports first persist to reportTempFolder, then compare against reportFolder; changed expected reports are rewritten during local builds, whereas production builds emit warnings instead. — [apps/api-extractor/src/api/Extractor.ts#L393-443](https://github.com/microsoft/rushstack/blob/1e18b16f029299f53a966878aff2ce187dd65a51/apps/api-extractor/src/api/Extractor.ts#L393-L443)
- Documenter’s BaseAction loads matching .api.json files into ApiModel and applies inheritDoc resolution; MarkdownDocumenter emits TSDoc-derived text, lets a plugin alter pageContent, and writes files with configured line endings. — [apps/api-documenter/src/cli/BaseAction.ts#L55-76](https://github.com/microsoft/rushstack/blob/1e18b16f029299f53a966878aff2ce187dd65a51/apps/api-documenter/src/cli/BaseAction.ts#L55-L76) [apps/api-documenter/src/cli/BaseAction.ts#L82-107](https://github.com/microsoft/rushstack/blob/1e18b16f029299f53a966878aff2ce187dd65a51/apps/api-documenter/src/cli/BaseAction.ts#L82-L107) [apps/api-documenter/src/documenters/MarkdownDocumenter.ts#L305-334](https://github.com/microsoft/rushstack/blob/1e18b16f029299f53a966878aff2ce187dd65a51/apps/api-documenter/src/documenters/MarkdownDocumenter.ts#L305-L334)
- GET /api/graph reads PNPM YAML, generates LfxGraph, and serializes JSON; readLockfileAsync fetches that endpoint, deserializes the graph, and returns entries for App’s loadEntries dispatch. — [apps/lockfile-explorer/src/cli/explorer/ExplorerCommandLineParser.ts#L165-172](https://github.com/microsoft/rushstack/blob/1e18b16f029299f53a966878aff2ce187dd65a51/apps/lockfile-explorer/src/cli/explorer/ExplorerCommandLineParser.ts#L165-L172) [apps/lockfile-explorer-web/src/parsing/readLockfile.ts#L11-20](https://github.com/microsoft/rushstack/blob/1e18b16f029299f53a966878aff2ce187dd65a51/apps/lockfile-explorer-web/src/parsing/readLockfile.ts#L11-L20) [apps/lockfile-explorer-web/src/App.tsx#L24-33](https://github.com/microsoft/rushstack/blob/1e18b16f029299f53a966878aff2ce187dd65a51/apps/lockfile-explorer-web/src/App.tsx#L24-L33)
- lfxGraphLoader normalizes version-dependent dependency IDs, distinguishes regular/dev/peer dependencies, records transitive peers, and omits Rush’s synthetic '.' importer from workspace project entries. — [apps/lockfile-explorer/src/graph/lfxGraphLoader.ts#L75-90](https://github.com/microsoft/rushstack/blob/1e18b16f029299f53a966878aff2ce187dd65a51/apps/lockfile-explorer/src/graph/lfxGraphLoader.ts#L75-L90) [apps/lockfile-explorer/src/graph/lfxGraphLoader.ts#L112-155](https://github.com/microsoft/rushstack/blob/1e18b16f029299f53a966878aff2ce187dd65a51/apps/lockfile-explorer/src/graph/lfxGraphLoader.ts#L112-L155) [apps/lockfile-explorer/src/graph/lfxGraphLoader.ts#L480-518](https://github.com/microsoft/rushstack/blob/1e18b16f029299f53a966878aff2ce187dd65a51/apps/lockfile-explorer/src/graph/lfxGraphLoader.ts#L480-L518)
- Redux owns entry filters and navigation stacks; bookmark mutations synchronously write rawEntryId keys under LOCKFILE_EXPLORER_BOOKMARKS, and loadEntries hydrates matching IDs from that storage. — [apps/lockfile-explorer-web/src/store/slices/entrySlice.ts#L43-69](https://github.com/microsoft/rushstack/blob/1e18b16f029299f53a966878aff2ce187dd65a51/apps/lockfile-explorer-web/src/store/slices/entrySlice.ts#L43-L69) [apps/lockfile-explorer-web/src/store/slices/entrySlice.ts#L101-111](https://github.com/microsoft/rushstack/blob/1e18b16f029299f53a966878aff2ce187dd65a51/apps/lockfile-explorer-web/src/store/slices/entrySlice.ts#L101-L111) [apps/lockfile-explorer-web/src/helpers/localStorage.ts#L6-28](https://github.com/microsoft/rushstack/blob/1e18b16f029299f53a966878aff2ce187dd65a51/apps/lockfile-explorer-web/src/helpers/localStorage.ts#L6-L28)
- WorkspaceRequestLifecycle captures startup environment and workspace/runtime fingerprints in memory; DaemonFrameListener separately binds a socket, records PID/protocol/start-time metadata, and pins file identities for its lifetime owner. — [libraries/rush-daemon/src/WorkspaceRequestLifecycle.ts#L312-333](https://github.com/microsoft/rushstack/blob/1e18b16f029299f53a966878aff2ce187dd65a51/libraries/rush-daemon/src/WorkspaceRequestLifecycle.ts#L312-L333) [libraries/rush-daemon-transport/src/DaemonListener.ts#L48-67](https://github.com/microsoft/rushstack/blob/1e18b16f029299f53a966878aff2ce187dd65a51/libraries/rush-daemon-transport/src/DaemonListener.ts#L48-L67) [libraries/rush-daemon-transport/src/DaemonListener.ts#L91-98](https://github.com/microsoft/rushstack/blob/1e18b16f029299f53a966878aff2ce187dd65a51/libraries/rush-daemon-transport/src/DaemonListener.ts#L91-L98)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
