Demo Scenarios

The repo ships 21 integration scenarios with a local mock REST/GraphQL/SOAP server and demo-only SQLite seeds (@vaagatech/snapline-demo-shared). Use them as runnable reference implementations.

Run commands

npm install
npm run demo                    # build + run all 21
npm run demo:list               # list ids and infra needs
npm run demo:run -- api-vs-file-graphql
npm run demo:run -- --build snapline-transformations

Infra is auto-wired by demo/scripts/run-scenario.mjs:

All 21 scenarios

#IDModeHighlights
1snapline-ignore-fieldsAPI ↔ fileNested ignoreFields
2snapline-transformationsFixture casesOffline pass + expected transformation failures
3snapline-data-mapping-lookupFixture casesLookup-table dataMapping
4db-vs-db-sqliteDB ↔ DBMulti-table JOIN, linkKeys
5db-vs-db-cross-dialectDB ↔ DBPostgres vs MySQL via demo seedDb
6nosql-vs-nosqlNoSQLDocument stores + linkKeys
7snapline-data-mapping-functionFixture + DBFunction mapper cases + live DB
8db-comparison-transformationsDB ↔ DBDate normalization on audit tables
9snapline-combined-optionsAPI ↔ DBAll snapline options combined
10api-vs-file-restAPI ↔ fileOAuth2 REST single fixture
11api-vs-file-rest-casesFixture casesOAuth2 REST multi-case
12api-vs-file-graphqlFixture cases7 GraphQL cases incl. auth failure
13api-vs-file-soapAPI ↔ fileSOAP vs JSON
14api-vs-db-restAPI ↔ DBREST profile vs demo SQLite JOIN
15api-vs-db-graphqlAPI ↔ DBOAuth2 GraphQL vs demo SQLite
16api-vs-db-soapAPI ↔ DBSOAP vs demo SQLite JOIN
17db-vs-api-restDB ↔ APIinputFromDb REST
18db-vs-api-graphqlDB ↔ APIOAuth2 GraphQL from DB row
19db-vs-api-soapDB ↔ APISOAP from DB row
20project-graphqlFixture casesSample GraphQL app (Auth0/Okta swap docs)
21project-dbWarehouseChunked SQL→NoSQL via runWarehouseComparison

Scenario folder structure

Each scenario is a standalone package you can copy into your project:

demo/scenarios/api-vs-file-graphql/
├── fixtures/cases/...
├── src/
│   ├── run.ts        # entry point
│   ├── env.ts        # env vars + report finalization
│   ├── auth.ts       # OAuth from env
│   ├── demo-data.ts  # transforms / mappings
│   └── db.ts         # demo DB from @vaagatech/snapline-demo-shared (when needed)
└── package.json      # @vaagatech/snapline-core (+ demo-shared for DB scenarios)

Published @vaagatech/snapline-core has zero external runtime dependencies and does not ship SQL drivers. Demos use @vaagatech/snapline-demo-shared for SQLite and in-memory stubs only.

Run against your own API

cp demo/scenarios/api-vs-file-graphql/.env.example demo/scenarios/api-vs-file-graphql/.env
# edit API_BASE_URL, CLIENT_ID, CLIENT_SECRET
npm run start --workspace=@vaagatech/snapline-demo-scenario-api-vs-file-graphql

HTML reports from demo

REPORT_FORMAT=html REPORT_OUTPUT=./reports/demo.html npm run demo
npm run start:report:html --workspace=@vaagatech/snapline-demo-run-all