Skip to content

[ZEPPELIN-6666] Add notebook transport fixtures - #5458

Open
voidmatcha wants to merge 1 commit into
apache:masterfrom
voidmatcha:ZEPPELIN-6666-transport-fixtures
Open

[ZEPPELIN-6666] Add notebook transport fixtures#5458
voidmatcha wants to merge 1 commit into
apache:masterfrom
voidmatcha:ZEPPELIN-6666-transport-fixtures

Conversation

@voidmatcha

@voidmatcha voidmatcha commented Sep 5, 2026

Copy link
Copy Markdown
Member

What is this PR for?

Adds the versioned Notebook REST/WebSocket fixture format, isolated capture helper, and strict replay runner for ZEPPELIN-6666.

The recorder captures notebook REST traffic and /ws frames, normalizes volatile identifiers while preserving correlation, and redacts sensitive values. Replay rejects unexpected, reordered, or unconsumed traffic and requires REST deliveries to settle successfully. Requests outside the notebook boundary fall through to other route handlers.

The capture helper isolates configuration, notebooks, logs, search indexes, PID and recovery state. It verifies listener and process ownership, serializes start/stop operations, and stops only its owned process group. Unsupported whitespace paths are rejected before side effects.

Fixture-only browser tests use a dedicated configuration without backend cleanup or authentication state. Live capture is opt-in through @live, requires an explicit server URL, and supports isolated anonymous or authenticated setup. Ordinary E2E runs exclude live capture.

This PR also fixes E2E setup exposed by the full verification: Monaco select-all follows the browser keymap, cursor movement checks the exact buffer, inline completion checks actual ghost-text dismissal and focus, and cancellation uses exact seeded Python code before asserting RUNNING and ABORT.

This establishes the fixture foundation only. Execution/streaming, paragraph/revision/collaboration/reconnect, and permission/session fixtures remain in ZEPPELIN-6671, ZEPPELIN-6672, and ZEPPELIN-6673. Version 1 limitations are documented in e2e/core-contract/README.md.

What type of PR is it?

Improvement

What is the Jira issue?

ZEPPELIN-6666

How should this be tested?

Local verification of the pushed source tree:

  • ./mvnw -B -ntp verify -pl zeppelin-web-angular -Pweb-e2e — BUILD SUCCESS.
  • Full Angular/React lint and formatting checks passed.
  • Shell unit tests: 49 passed.
  • Fixture checks: 93 passed, 1 skipped.
  • Capture-server checks: 23 passed.
  • Playwright: 711 passed, 76 skipped; no failures or flaky tests reported.

The full run used an isolated anonymous server, JDK 11, Node 22, Python dependencies, and built Python/Markdown interpreters. Existing authentication/capability skips remain. This is local validation, not a claim about the new remote CI run. Live authenticated capture is separate and was not rerun in this final verification.

Focused fixture and opt-in live commands are documented in e2e/core-contract/README.md.

Screenshots (if appropriate)

N/A

Questions:

  • Does the license files need to update? No
  • Is there breaking changes for older versions? No
  • Does this needs documentation? Yes, e2e/core-contract/README.md

@voidmatcha
voidmatcha force-pushed the ZEPPELIN-6666-transport-fixtures branch from 29ffea3 to 313a64f Compare September 8, 2026 14:54
@voidmatcha
voidmatcha marked this pull request as draft September 8, 2026 15:14
@voidmatcha
voidmatcha force-pushed the ZEPPELIN-6666-transport-fixtures branch from 313a64f to 352eb25 Compare September 8, 2026 16:27
@voidmatcha
voidmatcha marked this pull request as ready for review September 9, 2026 00:30
@voidmatcha
voidmatcha force-pushed the ZEPPELIN-6666-transport-fixtures branch from 352eb25 to 3e9307f Compare September 9, 2026 00:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant