Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 31 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ For the first stable release, see
[RELEASE_NOTE_v1.0.0.md](docs/RELEASE_NOTE_v1.0.0.md). For the v1.1.0 release, see
[RELEASE_NOTE_1.1.0.md](docs/RELEASE_NOTE_1.1.0.md). For the v1.2.0 release, see
[RELEASE_NOTE_1.2.0.md](docs/RELEASE_NOTE_1.2.0.md). For the v1.3.0 release, see
[RELEASE_NOTE_1.3.0.md](docs/RELEASE_NOTE_1.3.0.md).
[RELEASE_NOTE_1.3.0.md](docs/RELEASE_NOTE_1.3.0.md). For the v1.4.0 release, see
[RELEASE_NOTE_v1.4.0.md](docs/RELEASE_NOTE_v1.4.0.md).

## Start here

Expand All @@ -62,7 +63,7 @@ For the first stable release, see

## 60-second quick start

1. Download the `v1.3.0` archive from
1. Download the `v1.4.0` archive from
[GitHub Releases](https://github.com/ikelaiah/ProcFlow/releases) or clone
this repository.
2. Extract the complete archive. Keep `index.html`, `styles.css`, `dist/`, and
Expand Down Expand Up @@ -129,7 +130,7 @@ statements.
analysis to another engineer.

ProcFlow imports SQL text, not report-definition files. SSRS/RDL import is on
the roadmap; for v1.3.0, paste or export the dataset SQL itself.
the roadmap; for v1.4.0, paste or export the dataset SQL itself.

## What ProcFlow can show

Expand All @@ -150,8 +151,12 @@ the roadmap; for v1.3.0, paste or export the dataset SQL itself.

### Query structure

- common table expressions
- source tables and views
- common table expressions (including recursive CTEs, marked and annotated)
- source tables and views, including comma-separated `FROM` lists
- `CROSS`/`OUTER APPLY` and tabular functions (`UNNEST`, `XMLTABLE`,
`JSON_TABLE`, `GENERATE_SERIES`) as source references
- derived-table/subquery inner sources
- `MERGE … USING` and `DELETE … USING` read sources
- explicit joins
- unions
- subqueries
Expand Down Expand Up @@ -190,7 +195,7 @@ than silently disappearing from the diagram.

## Supported SQL

ProcFlow v1.3.0 recognises:
ProcFlow v1.4.0 recognises:

- Microsoft T-SQL
- IBM DB2 SQL PL
Expand All @@ -201,7 +206,7 @@ Supported inputs include procedures, functions, triggers, views, plain SQL
statements, report dataset queries, and multi-object scripts where those object
types apply to the selected dialect.

Dialect-specific v1.3.0 coverage includes:
Dialect-specific v1.4.0 coverage includes:

- **T-SQL:** mixed one-line and block `IF`/`WHILE` control flow (single
statement and `BEGIN`/`END` bodies in one AST), labelled `GOTO` and labels
Expand All @@ -220,6 +225,11 @@ Dialect-specific v1.3.0 coverage includes:
- **SQLite:** trigger `RAISE` actions, termination behavior, trigger `WHEN`,
conditional `WHERE`, and searched `CASE` paths.

Across dialects, Query structure view reports every read source: a
comma-separated `FROM` list, an `APPLY` or tabular function, a `MERGE…USING` /
`DELETE…USING` source, a recursive CTE, and a derived-table inner table all
appear as source nodes.

Detection is automatic and can be overridden from the **Dialect** selector.
When detection is uncertain and several dialects score equally, an explicit
`dialect_ambiguous` diagnostic is reported along with the usual
Expand Down Expand Up @@ -256,7 +266,7 @@ endorsed by draw.io.

### Quick answers

| Question | ProcFlow v1.3.0 behavior |
| Question | ProcFlow v1.4.0 behavior |
|---|---|
| Is SQL uploaded? | No. Analysis and rendering happen in the browser tab. |
| Does it connect to a database? | No. There is no driver, connection string, or query execution. |
Expand Down Expand Up @@ -290,7 +300,7 @@ network-submission code. The only bundled third-party runtime is the pinned
Mermaid 10.9.1 renderer. Its MIT licence is stored at
`vendor/mermaid/LICENSE`.

The SHA-256 of `vendor/mermaid/mermaid.min.js` in v1.3.0 is:
The SHA-256 of `vendor/mermaid/mermaid.min.js` in v1.4.0 is:

```text
61B335A46DF05A7CE1C98378F60E5F3E77A7FB608A1056997E8A649304A936D6
Expand All @@ -301,7 +311,7 @@ so the release checksum remains reproducible across operating systems.

### Guidance for security review

1. Review and pin the `v1.3.0` tag or its exact commit.
1. Review and pin the `v1.4.0` tag or its exact commit.
2. Verify the vendored Mermaid checksum.
3. Review the runtime files listed above.
4. Open the reviewed files locally or serve them from an approved internal
Expand Down Expand Up @@ -336,11 +346,10 @@ and contains no automatic data-submission path.
statement grammar. Exceptionally malformed batches can still produce imperfect
splits.
- Query lineage is object-level rather than column-level.
- Comma-separated sources and some vendor-specific table expressions might not
be detected.
- Some vendor-specific table expressions might not be detected.
- Temporary-table, synonym, linked-server, and cross-database resolution is
lightweight.
- SSRS/RDL files are not imported in v1.3.0.
- SSRS/RDL files are not imported in v1.4.0.
- Large draw.io exports can require manual rearrangement.

Always confirm critical dependencies, execution paths, transaction behavior,
Expand Down Expand Up @@ -406,9 +415,9 @@ Then open:
- `http://127.0.0.1:8000/tests/ui.html` — browser interaction and local-runtime
tests

The v1.3.0 baseline is:
The v1.4.0 baseline is:

- 181 golden and boundary assertions
- 188 golden and boundary assertions
- 400 deterministic mutation cases
- 13 browser interaction tests

Expand Down Expand Up @@ -437,13 +446,15 @@ docs/
├── PR_NOTE_1.1.0.md
├── PR_NOTE_1.2.0.md
├── PR_NOTE_1.3.0.md
├── PR_NOTE_1.4.0.md
├── RELEASE_NOTE_1.1.0.md
├── RELEASE_NOTE_1.2.0.md
├── RELEASE_NOTE_1.3.0.md
├── RELEASE_NOTE_v1.0.0.md
├── RELEASE_NOTE_v1.1.0.md
├── RELEASE_NOTE_v1.2.0.md
└── RELEASE_NOTE_v1.3.0.md
├── RELEASE_NOTE_v1.3.0.md
└── RELEASE_NOTE_v1.4.0.md
scripts/
└── file-smoke.mjs # dependency-free local-file release smoke test
src/
Expand Down Expand Up @@ -500,12 +511,12 @@ Then verify:
2. `git status --short` shows only the intended release changes.
3. Generated `dist/` files match their TypeScript sources.
4. The Mermaid SHA-256 matches the value in this README and the workflow.
5. `RELEASE_NOTE_1.3.0.md` matches the final tag contents.
5. `RELEASE_NOTE_v1.4.0.md` matches the final tag contents.
6. The complete archive opens locally with `index.html`.
7. The tag is named `v1.3.0`.
7. The tag is named `v1.4.0`.

The release can then be created manually from the `v1.3.0` tag using
[RELEASE_NOTE_1.3.0.md](docs/RELEASE_NOTE_1.3.0.md).
The release can then be created manually from the `v1.4.0` tag using
[RELEASE_NOTE_v1.4.0.md](docs/RELEASE_NOTE_v1.4.0.md).

## Roadmap after v1.0.0

Expand Down
4 changes: 2 additions & 2 deletions dist/src/app.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dist/src/app.js.map

Large diffs are not rendered by default.

29 changes: 29 additions & 0 deletions dist/src/ir.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dist/src/ir.js.map

Large diffs are not rendered by default.

Loading
Loading