feat: ship working demo passthrough pipeline + prove harness teeth#8
Merged
Conversation
The template now ships a real working demo (passthrough pipeline +
matching route + fixture pair) instead of placeholders that fail
validation. This:
- Gives the test harness real content to exercise on the template
itself (lifts the is_template skip guard)
- Provides consumers a known-working starting point they can replace
- Lets us prove the harness has teeth: deliberate fixture breaks
surface as CI failures, restoration restores green
Files:
- default/pipelines/passthrough/conf.yml — Eval stamps sourcetype,
index, datatype on every event
- default/pipelines/route.yml — replaces REPLACE_* placeholders
with a real passthrough route (filter datatype=='cribl-demo')
- tests/fixtures/passthrough/sample.{json,expected.json} — input
+ expected output pair driving the auto-discovered Vitest case
- .github/workflows/test.yml — drops is_template==false guard so
CI runs end-to-end against the demo content
The Vitest harness installs the pack and then queries it by name; with
'REPLACE-WITH-PACK-NAME' it 404s. Switch to 'cc-edge-demo-io' which
satisfies the cc-{edge,stream}-<source>-io validator convention and
makes it obvious it's demo content for consumers to replace.
This commit will be reverted in the next push. Pushing it to confirm the Vitest assertion produces a useful diff and the test job exits non-zero in GitHub Actions — proving the harness has teeth instead of passing tautologically.
There was a problem hiding this comment.
Pull request overview
This PR updates the template pack to ship a working demo pipeline + fixtures and enables CI to actually execute the TypeScript/Vitest harness on the template repository itself.
Changes:
- Replaces the placeholder
route.ymlentry with a realpassthroughroute and adds a correspondingdefault/pipelines/passthrough/conf.yml. - Adds fixture input/expected-output JSON for the
passthroughpipeline to drive the auto-discovered Vitest tests. - Removes the template-only skip condition from the test workflow so CI runs on the template repo.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
tests/fixtures/passthrough/sample.json |
Adds a demo input event fixture for the passthrough pipeline. |
tests/fixtures/passthrough/sample.expected.json |
Adds expected (partial-match) output assertions for the demo pipeline. |
default/pipelines/route.yml |
Replaces placeholder route with a demo passthrough route that matches the fixture datatype. |
default/pipelines/passthrough/conf.yml |
Introduces a demo pipeline that stamps sourcetype, index, and datatype. |
.github/workflows/test.yml |
Enables CI execution on the template repo by removing the is_template guard. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…es drift" This reverts commit 60835a4.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The template's test workflow has been guarded by
if: github.event.repository.is_template == false, which means every CI run on template main has been a no-op skip — including the merges of PRs #4–#7 that introduced the TS harness. The harness has never actually executed on this repo.This PR fixes that by:
REPLACE_*placeholder route + (missing) pipeline conf with a real working demo (a passthrough that stampssourcetype/index/datatypeon every event).is_template == falseguard so CI runs end-to-end against the demo content on every template push/PR.What this proves
After this lands, the template ships a known-good baseline:
validatejob: structural checks against real (not placeholder) pack files.testjob: full Vitest run against a live Cribl container, with the demo fixture exercising bothpipelines.test.ts(partial-match assertion + required-fields check) androutes.test.ts(dynamic route flow against the synthetic event).I'll deliberately break the expected fixture in a follow-up push on this branch to confirm CI fails with a useful diff, then restore before merging — receipts that the harness has teeth, not just that it exits 0 against its own output.
Demo content can be replaced freely
When a consumer scaffolds from this template via
gh repo create --template, they inherit:default/pipelines/passthrough/— replace with their pipelinesdefault/pipelines/route.yml— replace with their routestests/fixtures/passthrough/— replace with their fixturesNames are intentionally generic so it's obvious they're demo content.