Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
7f60611
just add app.yaml stuff
jeffrade Jan 20, 2026
90939ff
WIP initial work by Gemini, then fixed by Codex
jeffrade Jan 20, 2026
4d004a7
Update SKILLS.md with FIXME comments
jeffrade Jan 20, 2026
533228f
Add dotnet https cert; Clean up db-start to avoid shellcheck warnings
jeffrade Jan 21, 2026
5bb1ce0
update LLM docs
jeffrade Jan 21, 2026
86195ed
self-signed cert for local dev
jeffrade Jan 21, 2026
d22ff0e
Read app.yaml instead
jeffrade Jan 21, 2026
7691ff2
Implement DDL to YAML parser pipeline
jeffrade Jan 21, 2026
df6ac96
Update docs to show usage
jeffrade Jan 21, 2026
281722a
Current needs and codex TODO.txt
jeffrade Jan 21, 2026
68da434
Clean up Makefile pipeline test
jeffrade Jan 21, 2026
5cdab1f
Add entity metadata service – describes the new metadata service/syst…
jeffrade Jan 21, 2026
6bbe89c
update todos and corresponding docs
jeffrade Jan 22, 2026
0e08572
initial seed data impl
jeffrade Jan 22, 2026
89f1d3c
some unit tests
jeffrade Jan 22, 2026
10fb3fe
docs updated
jeffrade Jan 22, 2026
b7fcce5
Fixes QUIRK in TODO.txt
jeffrade Jan 22, 2026
c742291
TODO #2
jeffrade Jan 22, 2026
4be321f
session update
jeffrade Jan 22, 2026
521c2d0
Fixes issue running make test; maybe from #2 in TODO
jeffrade Jan 22, 2026
7b7f1a3
#4 completed
jeffrade Jan 22, 2026
86dbf26
Fix catastrophic build performance caused by recursive directory expl…
jeffrade Jan 22, 2026
1752bb4
TODOs #5 and #6 (#4)
jeffrade Jan 23, 2026
69994cb
remove no longer needed docs
jeffrade Jan 23, 2026
44a6a7d
cleanup gitignore
jeffrade Jan 23, 2026
a6568a2
Completed remainder of TODO.txt 7,8,9
jeffrade Jan 23, 2026
d33a4ed
rename ddl pipeline accordingly
jeffrade Jan 23, 2026
706cd7c
Templify Migrations/ (#5)
jeffrade Jan 23, 2026
fb70c4f
Merge branch 'templify' of github.com:devixlabs/DotNetWebApp into tem…
jeffrade Jan 23, 2026
5e21c32
Fix tests since no longer tracking Generated models
jeffrade Jan 23, 2026
c549bdb
fixes InitialCreate ef db update
jeffrade Jan 23, 2026
21c5d46
Hint on test failure; Strip LLM docs
jeffrade Jan 25, 2026
0eaa3c2
Remove '[Ss]amaple' from naming since these files are THE app files i…
jeffrade Jan 25, 2026
8c047c4
Merge branch 'templify' of github.com:devixlabs/DotNetWebApp into tem…
jeffrade Jan 25, 2026
7b3c2a5
force commit Migrations/.gitignore
jeffrade Jan 25, 2026
ff4f605
Additional docs, todos, etc.
jeffrade Jan 25, 2026
f07ced5
Tailor EF-Dapper document
jeffrade Jan 25, 2026
2e4a0e5
Complete TODO #1 (CRUD ops); Add verification script
jeffrade Jan 25, 2026
be63ec7
Merge branch 'templify' of github.com:devixlabs/DotNetWebApp into tem…
jeffrade Jan 25, 2026
f1b481f
codex impl remainder of immediate TODO.txt
jeffrade Jan 26, 2026
552127d
file renames for Models refactor/extraction
jeffrade Jan 26, 2026
83bc7b4
Remove Item #9 (other DBs)
jeffrade Jan 26, 2026
601f84d
initial work completed for Models refactor/todos
jeffrade Jan 26, 2026
6cbee38
Add .gitignore for Generated model classes
jeffrade Jan 26, 2026
2a6e55c
Update docs
jeffrade Jan 26, 2026
416feef
Merge branch 'templify' of github.com:devixlabs/DotNetWebApp into tem…
jeffrade Jan 26, 2026
52269b4
Fix 404 url, add ssh urls; ignore cloned dirs
jeffrade Jan 26, 2026
b9696a4
Update REFACTOR.md and add Phase2 plan for Hybrid Architecture
jeffrade Jan 26, 2026
cab79f2
Add tests and TODOs for missing
jeffrade Jan 26, 2026
c5a8512
make commands to shutdown hanging/orphan dotnet processes
jeffrade Jan 26, 2026
6b72946
Update logo file name
jeffrade Jan 26, 2026
6a1b19c
Attempt ms-drop also in verify.sh
jeffrade Jan 26, 2026
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
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ bld/

# Visual Studio 2015/2017 cache/options directory
.vs/
.vscode/

# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/

Expand Down Expand Up @@ -488,4 +490,9 @@ $RECYCLE.BIN/

# Project and App Specific
.env.local

app.yaml
app-generated.yaml
app-test.yaml
research/
tmp/
research.sh
64 changes: 64 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Repository Guidelines

## Project Structure & Module Organization

- `Components/`, `Pages/`, `Shared/`: Blazor UI components and layouts.
- `Controllers/`: Web API endpoints (generic and entity controllers).
- `Services/`: Business logic and DI services.
- `Data/`: `AppDbContext`, tenancy helpers, and EF configuration.
- `DdlParser/`: SQL DDL → `app.yaml` converter used in the pipeline.
- `DotNetWebApp.Models/`: Separate models assembly containing all data models, configuration classes, and YAML model classes.
- `DotNetWebApp.Models/Generated/`: Auto-generated entity types from `ModelGenerator`.
- `DotNetWebApp.Models/AppDictionary/`: YAML model classes for app.yaml structure.
- `ModelGenerator/`: Reads `app.yaml` and produces generated models.
- `Migrations/`: Generated EF Core migration files (current baseline checked in; pipeline regenerates).
- `wwwroot/`: Static assets (CSS, images, JS).

## Build, Test, and Development Commands

- `make check`: Runs `shellcheck` on `setup.sh`, `dotnet-build.sh`, and `Makefile`, then restores and builds.
- `make restore`: Restores app, generator, parser, and test projects.
- `make build`: Builds `DotNetWebApp.Models`, `DotNetWebApp`, `ModelGenerator`, and `DdlParser` (default `BUILD_CONFIGURATION=Debug`).
- `make build-all`: Builds the full solution, including tests; automatically runs `cleanup-nested-dirs` to prevent inotify exhaustion.
- `make build-release`: Release builds for main projects only.
- `make run-ddl-pipeline`: DDL → YAML → models → migration pipeline, then build.
- `make migrate`: Applies the current EF Core migration (SQL Server must be running).
- `make dev`: Runs with hot reload (`dotnet watch`).
- `make run`: Runs once without hot reload.
- `make test`: Builds and runs `dotnet test` for `tests/DotNetWebApp.Tests` and `tests/ModelGenerator.Tests` (uses `BUILD_CONFIGURATION`); automatically runs `cleanup-nested-dirs`.
- `make seed`: Runs the app in seed mode to apply `seed.sql` via EF (`-- --seed`).
- `make cleanup-nested-dirs`: Removes nested project directories created by MSBuild to prevent inotify watch exhaustion on Linux.
- Docker DB helpers: `make db-start`, `make db-stop`, `make db-logs`, `make db-drop`.
- Local SQL Server helpers: `make ms-status`, `make ms-start`, `make ms-logs`, `make ms-drop`.

## Project Goal & Session Notes

- **Primary Goal:** Abstract the application's data model, configuration, and branding into a single `app.yaml` file for dynamic customization.
- **Current State:** DDL → YAML → models → migration pipeline drives generated models and schema; run `make run-ddl-pipeline` before `make migrate`/`make seed` when the DDL changes. Seed data lives in `seed.sql` and is applied via `make seed`.
- Review `SESSION_SUMMARY.md` before starting work and update it when you make meaningful progress or decisions.

## Coding Style & Naming Conventions

- C#: 4-space indentation, PascalCase for types/props, camelCase for locals/params, `Async` suffix for async methods.
- Razor components: PascalCase filenames (e.g., `GenericEntityPage.razor`).
- Generated files in `DotNetWebApp.Models/Generated/` should not be edited directly; update `ModelGenerator/EntityTemplate.scriban` and regenerate instead.
- Model classes in `DotNetWebApp.Models/` are shared across the application; ensure changes don't break existing consumers.
- Keep Radzen UI wiring intact in `Shared/` and `_Layout.cshtml`.

## Testing Guidelines

- Tests live in `tests/` using a `ProjectName.Tests` project and `*Tests` class naming.
- Run tests via `make test` and include failing/passing notes in PRs.

## Commit & Pull Request Guidelines

- Commit messages are short and imperative (e.g., “Add docker database commands”, “Fix nav bar button”); keep them concise.
- PRs should include: a brief summary, commands run (`make check`, `make build`, etc.), screenshots for UI changes, and DDL pipeline notes if schema changed.

## Configuration & Safety Notes

- Secrets belong in user secrets or environment variables; see `SECRETS.md`.
- `app.yaml` drives model generation; branding/navigation labels still come from `appsettings.json` via `AppCustomizationOptions`.
- `dotnet-build.sh` sets `DOTNET_ROOT` for global tools; do not modify or reinstall the system .NET runtime.
- Tenant schema switching uses the `X-Customer-Schema` header (defaults to `dbo`).
- Models are in separate `DotNetWebApp.Models` project; YamlDotNet dependency lives there.
Loading