Generation Run Report — ContosoErp

PASSED   Generated 2026-06-29 20:41:23 UTC

6
Entities
14
Relationships
18
Components
16/17
Passes
101
Files
214.1 KB
Size
0
Errors
0
Warnings

Domain semantic layer

Deterministic rule-pack matching from your schema — not AI inference. Rel types, traversal intents, and ontology export reflect active packs.

Active packscore.v1, hr-payroll.v1
Semantic coverage9/9 FK edges typed (100%)
Golden schemacontoso-erp-hr — PASS
Traversal intentsincluded in Queries/
Ontology exportOntology/ folder included

Generation passes

Each pass is one step in the compile pipeline. Included means files were produced; Skipped or Not enabled explains what to expect on a later run.

1. Node models

Included · 6 file(s)

Turns each entity in your spreadsheet into a graph object your application can load, save, and display. This is the shared vocabulary every other part of the delivery builds on.

2. Relationship types

Included · 5 file(s)

Names how records connect — for example who reports to whom or which team someone belongs to. Everyone on the project uses the same relationship words in queries, APIs, and documentation.

3. Repositories

Included · 12 file(s)

Provides the data-access layer that reads and writes the graph without hand-writing database queries in every feature. Your developers inject these services and focus on business logic.

4. Web controllers (MVC + API)

Included · 12 file(s)

Delivers ready-made screens and REST endpoints so people and other systems can browse and update the graph on day one. Shortens the path from model to working product.

5. Context & dependency injection

Included · 2 file(s)

Wires the graph database and all generated services into your app with a single registration call. Reduces setup mistakes and keeps deployment repeatable across environments.

6. Schema (constraints & indexes)

Included · 2 file(s)

Defines the database rules that keep IDs unique and lookups fast. Applying this once gives you a trustworthy foundation before any data is loaded.

7. Schema evolution (diff & migration)

Skipped · First compile — no prior schema to compare. Regenerate after supplying PreviousSchemaStatements to receive schema-diff.md and schema-migration.cypher.

When your model changes, shows what is new, removed, or altered so you can upgrade production safely. Avoids silent drift between spreadsheets, code, and live databases.

8. TypeScript client

Included · 2 file(s)

Gives front-end teams typed models and a ready API client so web apps can call the graph without guesswork. Speeds UI delivery and reduces integration bugs.

9. Architecture diagrams

Included · 6 file(s)

Produces visual maps of entities and relationships for stakeholders, onboarding, and design reviews. Helps non-developers understand the system without reading code.

10. Relational → graph sync

Included · 6 file(s)

Keeps the graph aligned when your main SQL or ERP database changes — no manual double-entry. Critical for hybrid deployments where the graph is a live mirror, not a one-off export.

11. Seeders

Included · 3 file(s)

Bulk-loads initial data in the correct order so foreign keys and relationships resolve on first run. Gets you from empty database to demo-ready quickly.

12. Insight queries

Included · 1 file(s)

Pre-built analytics that are awkward in SQL — org hierarchies, impact analysis, shortest paths, orphan detection. Delivers immediate business value from the graph shape.

13. Swagger / OpenAPI

Included · 1 file(s)

Interactive API documentation your team can try in a browser. Speeds QA, partner integrations, and internal discovery of what the graph can do.

14. Postman collection

Included · 1 file(s)

Importable test suite covering every endpoint with sample payloads. Lets integrators validate the API before your UI is finished.

15. Traversal query library

Included · 2 file(s)

Copy-paste graph queries for dashboards, reports, and ad-hoc exploration — including named business questions when the semantic layer is on. Bridges the gap between IT and analysts who think in org charts, not Cypher.

16. Native Neo4j database bundle

Included · 37 file(s)

A standalone database package with import scripts and Docker setup — run Neo4j without deploying the full application. Useful for data teams, pilots, and offline analytics.

17. Domain ontology export

Included · 3 file(s)

Machine-readable map of your domain concepts, rule packs, and relationship meanings for governance and AI tooling. Turns the graph from a code artifact into an enterprise asset others can discover and trust.

Issues to double-check

None — the model passed validation cleanly.

Generated components

Node models — 6 file(s), 8.3 KB

Each spreadsheet entity becomes a concrete graph object your app can display and update. This is the foundation the rest of the delivery — APIs, sync, queries — all reference.

POCO classes mapped to Neo4j node labels (one per entity), each with the SqlId sync key and FromINode / FromRecord factories.

How to use: Returned by the graph repositories; bind them to your DTOs or views.

  • GraphDB/Nodes/CompanyNode.cs (1.5 KB)
  • GraphDB/Nodes/DepartmentNode.cs (1.4 KB)
  • GraphDB/Nodes/DesignationNode.cs (1.2 KB)
  • GraphDB/Nodes/EmployeeNode.cs (1.8 KB)
  • GraphDB/Nodes/EmployeeTypeNode.cs (1.2 KB)
  • GraphDB/Nodes/TeamNode.cs (1.2 KB)
Relationship types — 5 file(s), 2.7 KB

Standardizes connection names so org charts, roll-ups, and traversals mean the same thing in every layer. Prevents teams from inventing conflicting labels as the project grows.

Constant string definitions per entity — domain semantic types (e.g. REPORTS_TO, HOLDS_ROLE) when the semantic layer is enabled, plus optional HAS_* structural aliases for migration.

How to use: Reference these constants instead of hard-coding Cypher relationship names.

  • GraphDB/Relationships/CompanyRelTypes.cs (179 B)
  • GraphDB/Relationships/DepartmentRelTypes.cs (417 B)
  • GraphDB/Relationships/DesignationRelTypes.cs (621 B)
  • GraphDB/Relationships/EmployeeRelTypes.cs (1.2 KB)
  • GraphDB/Relationships/TeamRelTypes.cs (390 B)
Repository interfaces — 6 file(s), 4.5 KB

Defines the contract for how features talk to the graph — stable, testable, and swappable. Product owners get predictable CRUD and navigation without caring about Cypher.

Async repository contracts per entity: CRUD plus CreateRelTo… (outgoing FKs) and Get…List (incoming traversals).

How to use: Inject I{Entity}GraphRepository; implementations are registered by AddNeo4jGraphDb().

  • GraphDB/Repositories/Interfaces/ICompanyGraphRepository.cs (654 B)
  • GraphDB/Repositories/Interfaces/IDepartmentGraphRepository.cs (822 B)
  • GraphDB/Repositories/Interfaces/IDesignationGraphRepository.cs (855 B)
  • GraphDB/Repositories/Interfaces/IEmployeeGraphRepository.cs (981 B)
  • GraphDB/Repositories/Interfaces/IEmployeeTypeGraphRepository.cs (594 B)
  • GraphDB/Repositories/Interfaces/ITeamGraphRepository.cs (710 B)
Repository implementations — 6 file(s), 27.2 KB

The working engine behind the interfaces — safe reads and writes your developers call from business code. Delivers data access ready for production, not prototype scripts.

Cypher-backed implementations of the repository interfaces (parameterised, async, session-scoped).

How to use: Resolved automatically through DI — no manual wiring.

  • GraphDB/Repositories/Implementations/CompanyGraphRepository.cs (3.9 KB)
  • GraphDB/Repositories/Implementations/DepartmentGraphRepository.cs (5 KB)
  • GraphDB/Repositories/Implementations/DesignationGraphRepository.cs (4.9 KB)
  • GraphDB/Repositories/Implementations/EmployeeGraphRepository.cs (6.1 KB)
  • GraphDB/Repositories/Implementations/EmployeeTypeGraphRepository.cs (3.1 KB)
  • GraphDB/Repositories/Implementations/TeamGraphRepository.cs (4.2 KB)
MVC controllers — 6 file(s), 21.7 KB

Optional browser UI scaffolding for internal tools and demos. Gives stakeholders something clickable while a custom front end is still in progress.

Server-rendered CRUD controllers per entity, plus link/traversal actions.

How to use: Add Razor views, or use them as a reference for your own UI.

  • GraphDB/Controllers/CompanyGraphController.cs (3.1 KB)
  • GraphDB/Controllers/DepartmentGraphController.cs (3.8 KB)
  • GraphDB/Controllers/DesignationGraphController.cs (3.9 KB)
  • GraphDB/Controllers/EmployeeGraphController.cs (4.6 KB)
  • GraphDB/Controllers/EmployeeTypeGraphController.cs (2.9 KB)
  • GraphDB/Controllers/TeamGraphController.cs (3.4 KB)
Swagger setup — 1 file(s), 1.6 KB

Self-service API discovery for QA, partners, and new developers. Reduces back-and-forth about which endpoints exist and what they accept.

The AddGraphApiSwagger() DI extension that registers OpenAPI docs for the graph API.

How to use: Call it in Program.cs and add app.UseSwagger()/UseSwaggerUI(); needs Swashbuckle.AspNetCore.

  • GraphDB/Api/SwaggerSetup.cs (1.6 KB)
Web API controllers — 6 file(s), 22.1 KB

The integration surface other systems and mobile apps connect to. Turns your graph into a product other teams can consume on day one.

REST controllers at api/graph/{entity} with CRUD, relationship-link, and traversal routes and [ProducesResponseType] metadata.

How to use: Call from any client; the Postman collection and TypeScript client below match these routes.

  • GraphDB/Api/CompanyGraphApiController.cs (3.2 KB)
  • GraphDB/Api/DepartmentGraphApiController.cs (3.9 KB)
  • GraphDB/Api/DesignationGraphApiController.cs (4 KB)
  • GraphDB/Api/EmployeeGraphApiController.cs (4.6 KB)
  • GraphDB/Api/EmployeeTypeGraphApiController.cs (2.9 KB)
  • GraphDB/Api/TeamGraphApiController.cs (3.4 KB)
Context & dependency injection — 2 file(s), 4.4 KB

One registration call wires the entire graph stack into your application. Makes deployment repeatable and lowers the bar for any developer to run the graph locally.

GraphDbContext (the Neo4j IDriver wrapper) and GraphServiceExtensions (the one-call AddNeo4jGraphDb registration of the driver, repositories, sync services, seeders, insights and schema).

How to use: builder.Services.AddNeo4jGraphDb(builder.Configuration); add a "Neo4j" section (Uri/Username/Password) to appsettings.json.

  • GraphDB/GraphDbContext.cs (1.2 KB)
  • GraphDB/GraphServiceExtensions.cs (3.2 KB)
Schema (constraints & indexes) — 2 file(s), 4 KB

Database guardrails that prevent duplicate records and speed up everyday lookups. Applying this once protects data quality before users or batch jobs load anything.

schema.cypher (uniqueness on SqlId + Code/Name indexes) and GraphSchemaInitializer for applying the same statements from code.

How to use: Run schema.cypher once per database, or call GraphSchemaInitializer.ApplyAsync() at startup (statements are idempotent).

  • GraphDB/Schema/GraphSchemaInitializer.cs (2.4 KB)
  • GraphDB/Schema/schema.cypher (1.6 KB)
Relational → graph sync services — 6 file(s), 17.9 KB

Keeps the graph current when your ERP or SQL database changes — no manual re-export. Essential when the graph is a live operational view, not a one-time migration.

Per-entity services that mirror relational writes into Neo4j (MERGE on SqlId) and refresh outgoing relationships.

How to use: Call I{Entity}GraphSyncService.SyncAsync(entity) after your ORM SaveChanges, and DeleteAsync(sqlId) after deletes.

  • GraphDB/Sync/CompanyGraphSyncService.cs (2.1 KB)
  • GraphDB/Sync/DepartmentGraphSyncService.cs (2.7 KB)
  • GraphDB/Sync/DesignationGraphSyncService.cs (3.3 KB)
  • GraphDB/Sync/EmployeeGraphSyncService.cs (5.1 KB)
  • GraphDB/Sync/EmployeeTypeGraphSyncService.cs (2.1 KB)
  • GraphDB/Sync/TeamGraphSyncService.cs (2.6 KB)
Seeders — 3 file(s), 5.2 KB

Ordered first-load path from existing relational data to a populated graph. Gets pilots and demos to a credible state without writing custom import scripts.

SeedOrder (FK-topologically sorted), GraphSeeder (relational → Neo4j bulk load via the sync services) and SqlSeeder (ordered key-data hook skeleton).

How to use: await graphSeeder.SeedAllAsync() for the first-time bulk load; subclass SqlSeeder for key data.

  • GraphDB/Seed/GraphSeeder.cs (3.3 KB)
  • GraphDB/Seed/SeedOrder.cs (507 B)
  • GraphDB/Seed/SqlSeeder.cs (1.4 KB)
Insight queries — 1 file(s), 6.4 KB

Ready-made answers to questions executives ask — who rolls up to whom, what breaks if X changes, what is orphaned. Delivers graph ROI without waiting for a data science team.

GraphInsightsRepository — the cross-entity queries SQL is bad at: hierarchy up/down, impact analysis, shortest path, orphan detection (identifier-whitelisted, injection-safe).

How to use: Inject IGraphInsightsRepository and call e.g. GetHierarchyUpAsync / GetShortestPathAsync.

  • GraphDB/Insights/GraphInsightsRepository.cs (6.4 KB)
Traversal query library — 2 file(s), 26.9 KB

Analyst-friendly query cookbook for dashboards and ad-hoc exploration. Bridges IT and business users who think in org charts and reporting lines, not database syntax.

sample-queries.cypher (ready-to-run Cypher organized by visualization, CRUD, traversals, hierarchy, impact, data quality) and GraphQueryRepository (typed async methods). Includes named traversal intents when the semantic layer is on.

How to use: Run sections in Neo4j Browser or call GraphQueryRepository from your app; Starter+ plans gate this folder in API downloads.

  • GraphDB/Queries/GraphQueryRepository.cs (16.6 KB)
  • GraphDB/Queries/sample-queries.cypher (10.4 KB)
Domain ontology — 3 file(s), 11.1 KB

A shareable map of what your domain means — concepts, packs, and relationship semantics. Supports governance, search, and AI tools that need to understand your business vocabulary.

ontology.json (concepts, active packs, traversal intents), semantic-coverage.json, and README — machine-readable taxonomy from the rule-engine overlay.

How to use: Feed ontology.json to governance catalogs, GraphRAG tooling, or alignment checks. Pro+ plans gate this folder in API downloads.

  • Ontology/README.md (515 B)
  • Ontology/ontology.json (3.4 KB)
  • Ontology/semantic-coverage.json (7.2 KB)
Postman collection — 1 file(s), 21.7 KB

Click-to-run API tests for integrators and QA before the UI exists. Shortens partner onboarding and regression cycles.

An importable collection with one folder per entity covering every endpoint, with typed sample bodies and a {{baseUrl}} variable.

How to use: Import into Postman and set the baseUrl variable.

  • GraphDB/Postman/ContosoErp_GraphAPI.postman_collection.json (21.7 KB)
TypeScript client — 2 file(s), 12 KB

Front-end ready types and HTTP client so web teams ship faster with fewer integration defects. Keeps UI and API in sync as the model evolves.

models.ts (node interfaces) and graphApiClient.ts (a framework-agnostic typed fetch client matching the API routes).

How to use: Drop into an Angular/React/Node project: new GraphApi(baseUrl).

  • GraphDB/TypeScript/graphApiClient.ts (10.3 KB)
  • GraphDB/TypeScript/models.ts (1.7 KB)
Architecture diagrams — 6 file(s), 4.2 KB

Visual documentation generator output for stakeholders who will never open the ZIP. Supports onboarding, architecture reviews, and alignment workshops.

Mermaid ER diagram, a grouped graph model, one per-feature view each, and a GraphViz DOT.

How to use: Render the .mmd files on GitHub / mermaid.live; render the .dot with graphviz (dot -Tsvg).

  • GraphDB/Docs/entity-graph.dot (1.1 KB)
  • GraphDB/Docs/er-diagram.mmd (1.2 KB)
  • GraphDB/Docs/feature-Administration.mmd (219 B)
  • GraphDB/Docs/feature-HR.mmd (608 B)
  • GraphDB/Docs/feature-Organization.mmd (324 B)
  • GraphDB/Docs/graph-model.mmd (839 B)
Native Neo4j database bundle — 37 file(s), 12.2 KB

A self-contained database you can stand up without the full application — ideal for data teams, pilots, and offline analytics. Proves the graph works end-to-end even when app deployment is later.

A neo4j-admin import blueprint: header CSVs + data templates, import scripts (ps1/sh), docker-compose, and post-import.cypher.

How to use: docker compose up, run neo4j-import, then apply post-import.cypher — see the bundle's README.md.

  • GraphDB/Neo4jNative/README.md (2.8 KB)
  • GraphDB/Neo4jNative/docker-compose.yml (760 B)
  • GraphDB/Neo4jNative/import/nodes/Company.csv (0 B)
  • GraphDB/Neo4jNative/import/nodes/Company.header.csv (79 B)
  • GraphDB/Neo4jNative/import/nodes/Department.csv (0 B)
  • GraphDB/Neo4jNative/import/nodes/Department.header.csv (60 B)
  • GraphDB/Neo4jNative/import/nodes/Designation.csv (0 B)
  • GraphDB/Neo4jNative/import/nodes/Designation.header.csv (47 B)
  • GraphDB/Neo4jNative/import/nodes/Employee.csv (0 B)
  • GraphDB/Neo4jNative/import/nodes/Employee.header.csv (92 B)
  • GraphDB/Neo4jNative/import/nodes/EmployeeType.csv (0 B)
  • GraphDB/Neo4jNative/import/nodes/EmployeeType.header.csv (48 B)
  • GraphDB/Neo4jNative/import/nodes/Team.csv (0 B)
  • GraphDB/Neo4jNative/import/nodes/Team.header.csv (40 B)
  • GraphDB/Neo4jNative/import/rels/Department_BELONGS_TO_ENTITY_Company.csv (0 B)
  • GraphDB/Neo4jNative/import/rels/Department_BELONGS_TO_ENTITY_Company.header.csv (40 B)
  • GraphDB/Neo4jNative/import/rels/Designation_ALIGNED_TO_Department.csv (0 B)
  • GraphDB/Neo4jNative/import/rels/Designation_ALIGNED_TO_Department.header.csv (44 B)
  • GraphDB/Neo4jNative/import/rels/Designation_REPORTS_TO_Designation.csv (0 B)
  • GraphDB/Neo4jNative/import/rels/Designation_REPORTS_TO_Designation.header.csv (45 B)
  • GraphDB/Neo4jNative/import/rels/Employee_BELONGS_TO_Department.csv (0 B)
  • GraphDB/Neo4jNative/import/rels/Employee_BELONGS_TO_Department.header.csv (41 B)
  • GraphDB/Neo4jNative/import/rels/Employee_BELONGS_TO_Team.csv (0 B)
  • GraphDB/Neo4jNative/import/rels/Employee_BELONGS_TO_Team.header.csv (35 B)
  • GraphDB/Neo4jNative/import/rels/Employee_CLASSIFIED_AS_EmployeeType.csv (0 B)
  • GraphDB/Neo4jNative/import/rels/Employee_CLASSIFIED_AS_EmployeeType.header.csv (43 B)
  • GraphDB/Neo4jNative/import/rels/Employee_HOLDS_ROLE_Designation.csv (0 B)
  • GraphDB/Neo4jNative/import/rels/Employee_HOLDS_ROLE_Designation.header.csv (42 B)
  • GraphDB/Neo4jNative/import/rels/Employee_REPORTS_TO_Employee.csv (0 B)
  • GraphDB/Neo4jNative/import/rels/Employee_REPORTS_TO_Employee.header.csv (39 B)
  • GraphDB/Neo4jNative/import/rels/Team_BELONGS_TO_Department.csv (0 B)
  • GraphDB/Neo4jNative/import/rels/Team_BELONGS_TO_Department.header.csv (37 B)
  • GraphDB/Neo4jNative/neo4j-backup.ps1 (860 B)
  • GraphDB/Neo4jNative/neo4j-backup.sh (766 B)
  • GraphDB/Neo4jNative/neo4j-import.ps1 (2.3 KB)
  • GraphDB/Neo4jNative/neo4j-import.sh (2.3 KB)
  • GraphDB/Neo4jNative/post-import.cypher (1.7 KB)

Entities

EntityFeatureScalarsOutgoingIncoming
CompanyAdministration401
DepartmentOrganization312
DesignationHR221
EmployeeHR550
EmployeeTypeAdministration200
TeamOrganization211

Next steps

  1. Add the Neo4j.Driver NuGet package to the target project.
  2. Register the layer: builder.Services.AddNeo4jGraphDb(builder.Configuration); add a "Neo4j" section to appsettings.json.
  3. Apply the schema: run GraphDB/Schema/schema.cypher, or call GraphSchemaInitializer.ApplyAsync() at startup.
  4. Create the native database from GraphDB/Neo4jNative/ (docker compose up → neo4j-import → post-import.cypher).
  5. For Swagger, add Swashbuckle.AspNetCore and call AddGraphApiSwagger().
  6. Review Ontology/ontology.json and semantic-coverage.json for domain rel types and active rule packs.
  7. Try named traversal intents in GraphDB/Queries/sample-queries.cypher (pack-specific sections when present).
  8. Explore GraphDB/Queries/ — FK-derived traversals plus optional semantic intent queries.