Commit Graph

139 Commits

Author SHA1 Message Date
Daniel Harvey 4e781f7b56 fix(routing): move InteractiveAuto render mode from MainLayout to Routes in App.razor 2026-05-19 01:29:14 -04:00
Daniel Harvey 028fcec28a Merge branch 'authblocks-bump' into dev 2026-05-19 01:10:24 -04:00
Daniel Harvey f749ff79cf bump Cerebellum.AuthBlocks* references 10.3.31 -> 10.3.32 to pick up prerender-fix release 2026-05-19 01:07:38 -04:00
Daniel Harvey e164047584 chore: bump Cerebellum.AuthBlocks* to 10.3.31 2026-05-19 00:53:00 -04:00
Daniel Harvey 2ab9381759 Merge branch 'fix-layout-routing' into dev 2026-05-19 00:09:29 -04:00
Daniel Harvey 3dfa645101 style: replace fully-qualified AllowAnonymous with @using + short form in Home and TracksView 2026-05-19 00:07:22 -04:00
Daniel Harvey 4379883048 fix(routing): add [AllowAnonymous] to public pages so static-SSR AuthorizeRouteView doesn't block unauthenticated requests 2026-05-19 00:03:48 -04:00
Daniel Harvey 9689de462d Merge branch 'routes-static' — static Routes, correct render-mode island boundaries 2026-05-18 23:39:57 -04:00
Daniel Harvey 90e07ea9d7 fix(routing): static Routes, InteractiveAuto HeadOutlet, drop DefaultLayout
Routes needs no render mode — layouts declare the interactive mode.
MainLayout (WASM) and CmsLayout (Server) are top-level islands with no
conflicting parent render mode. DefaultLayout removed so AuthBlocks auth
pages render self-contained without being forced into the WASM layout.
2026-05-18 23:39:44 -04:00
Daniel Harvey c20c7d0dbd Merge branch 'layout-split' — proper render-mode split, CmsLayout, server-side Routes 2026-05-18 23:31:47 -04:00
Daniel Harvey d31a08bd15 fix(routing): InteractiveServer routing, WASM interactivity declared at layout level
Routes moves to InteractiveServer so the server router always sees all
assemblies (including AuthBlocksWeb). MainLayout declares
@rendermode InteractiveWebAssembly — the single source of WASM
interactivity for all public pages. CmsLayout in DeepDrftCms provides
a server-rendered admin shell without the audio dock. Assembly-level
_Imports.razor files set the default layout for each group; no per-page
rendermode declarations needed. Routes.razor moves to the server host
(its correct home) carrying the full AdditionalAssemblies list.
2026-05-18 23:31:10 -04:00
Daniel Harvey 8e7347f498 Merge branch 'auth-routing-fix' — WASM router falls back to server for /account/* routes 2026-05-18 23:14:24 -04:00
Daniel Harvey 7c9f3b1630 fix(client): force server reload for /account/* routes unknown to WASM router
AuthBlocksWeb pages live in a server-only assembly not bundled in the WASM
client. When InteractiveAuto switches routing to WASM, /account/login has
no matching component and shows NotFound. Routes.razor now intercepts
NotFound for /account/* paths and forces a full-page reload to the server
router, which knows the real login page via AddAdditionalAssemblies.
2026-05-18 23:14:15 -04:00
Daniel Harvey 1b5f193a78 Merge branch 'factory-fix' — DbContextFactory loads connections.json, no env var required 2026-05-18 22:39:32 -04:00
Daniel Harvey e34f76b3bb fix(data): load connection string from connections.json; correct HasIndex comment 2026-05-18 22:39:20 -04:00
Daniel Harvey fdd44b2bce Merge branch 'p9-w1-t1-arch-lift' — BlazorBlocks data lift, project renames, initial Postgres migration 2026-05-18 22:30:11 -04:00
Daniel Harvey 14a0bf8d97 Merge branch 'p9-w1-t2-stealth-routing' — CMS /cms/* stealth routing (404 on unauthorized) 2026-05-18 22:30:04 -04:00
Daniel Harvey 54126db882 docs(plan): mark CMS Wave 1 landed; move W1.0-W1.2 to COMPLETED.md 2026-05-18 22:24:46 -04:00
Daniel Harvey cd700dc758 feat(data): rename *.Services projects, lift TrackEntity onto BlazorBlocks data layer, regenerate initial Postgres migration
DeepDrftWeb.Services → DeepDrftData; DeepDrftContent.Services → DeepDrftContent.Data.
TrackEntity:BaseEntity, TrackRepository:Repository<>, TrackManager:Manager<>+ITrackService.
Drops DeepDrftModels PagingParameters/PagedResult in favour of Models.Common.* from BlazorBlocks.
InitialCreate migration captures full schema including is_deleted index.
2026-05-18 22:22:09 -04:00
Daniel Harvey f4388a5cc3 feat(web): stealth-route /cms/* — return 404 to unauthorized callers
Any /cms/* hit (including exact /cms) that fails authorization returns
404 instead of redirecting to /account/login. CMS-PLAN §3.4 constraint.
2026-05-18 21:23:15 -04:00
Daniel Harvey 130f1357ec docs(plan): promote ARCHITECTURE-PROPOSAL decisions; add CMS stealth-routing constraint 2026-05-18 20:49:33 -04:00
Daniel Harvey 65944ed9f5 docs: add ARCHITECTURE-PROPOSAL.md for layer/host restructure direction 2026-05-18 20:40:12 -04:00
Daniel Harvey 7903d722e3 Merge branch 'example-files' into dev 2026-05-18 19:05:30 -04:00
Daniel Harvey a5e37c9130 docs: add *.example.json onboarding files for all three hosts 2026-05-18 19:03:46 -04:00
Daniel Harvey 39138bef21 Merge branch 'secrets-migration' into dev 2026-05-18 17:52:04 -04:00
Daniel Harvey ad7741744d docs: update CLAUDE.md files to reflect CredentialTools secrets loading pattern 2026-05-18 17:39:42 -04:00
Daniel Harvey fc9bc3d607 chore(secrets): load API key, connection strings, and AuthBlocks via CredentialTools across all three hosts; strip secret placeholders from appsettings.json 2026-05-18 17:35:29 -04:00
Daniel Harvey 12c4046965 docs: move CMS Wave 1 W1.3-W1.6 and PLAN.md §2.4 to COMPLETED.md 2026-05-18 16:19:04 -04:00
Daniel Harvey 1b971e9a9d Merge cms-w3-t4-edit: PUT api/cms/track/{id} + /cms/tracks/{id} edit page 2026-05-18 16:15:35 -04:00
Daniel Harvey 45e16fece7 Merge cms-w3-t2-upload: WAV upload flow — POST api/track/upload, POST api/cms/track, /cms/tracks/new
# Conflicts:
#	DeepDrftContent/CLAUDE.md
2026-05-18 16:15:13 -04:00
Daniel Harvey da8ee84903 Merge cms-w3-t3-delete: DELETE endpoints, FileDatabase remove, DeleteTrackDialog 2026-05-18 15:48:02 -04:00
Daniel Harvey 9f31277e96 Merge cms-w3-t1-track-list: CMS track list page at /cms/tracks 2026-05-18 15:47:57 -04:00
Daniel Harvey 7b20694a31 Fix W3-T4 review: log+sanitize catch messages, add validation attrs to CmsTrackUpdateRequest, document T3 delete dependency 2026-05-18 15:43:00 -04:00
Daniel Harvey 1738d262de Fix W3-T3 review: attach JWT in DeleteTrackDialog, int→long TrackId, log RemoveResourceAsync failure, drop redundant {Reason} log param 2026-05-18 15:42:58 -04:00
Daniel Harvey 7fd8376f96 Fix review findings: scrub ex.Message from UI, gate 5xx body relay, harmonise ContentApi config key, add CancellationToken to UploadTrack 2026-05-18 15:38:56 -04:00
Daniel Harvey b6715e495a Fix 401 on track delete: attach JWT bearer token in TrackList.ConfirmAndDelete 2026-05-18 15:38:24 -04:00
Daniel Harvey 4a59df6baa Add CMS track delete: DeepDrftContent DELETE endpoint, DeepDrftWeb SQL-first orchestration, DeepDrftCms confirmation dialog (W3-T3) 2026-05-18 15:20:08 -04:00
Daniel Harvey 266086906e Wave 3 T2: WAV upload flow — POST api/track/upload, POST api/cms/track, /cms/tracks/new 2026-05-18 15:18:28 -04:00
Daniel Harvey 531115b655 W3 T4: PUT api/cms/track/{id} + /cms/tracks/{id} edit page (metadata-only, Admin-gated) 2026-05-18 15:13:48 -04:00
Daniel Harvey 88c94b24cf Fix W3-T1 review: forward CancellationToken in GetPaged, scrub ex.Message from snackbar, drop unused Navigation inject, annotate ITrackService wiring in CmsStartup 2026-05-18 14:58:36 -04:00
Daniel Harvey 77e6637a9e cms-w3-t1: add /cms/tracks admin track list with edit/delete affordances 2026-05-18 14:49:20 -04:00
Daniel Harvey f46c2557c8 Merge cms-w2-authblocks: AuthBlocks JWT auth, /cms gated behind Admin role 2026-05-18 09:39:24 -04:00
Daniel Harvey d1f3cbd89b Fix Wave 2 review: PG18 volume path, null guards, NotAuthorized redirect, drop docker-compose, port 5433 connection strings 2026-05-18 09:38:25 -04:00
Daniel Harvey ee7dc8409e Wire AuthBlocks 10.3.30 JWT auth; gate /cms (InteractiveAuto) behind Admin role; add CreatedByUserId migration 2026-05-18 08:37:18 -04:00
Daniel Harvey 41f14201f0 Merge cms-w1-t2-rcl: DeepDrftCms RCL skeleton mounted at /cms 2026-05-17 23:34:45 -04:00
Daniel Harvey 7f47da6c8e Merge cms-w1-t1-postgres: SQLite → PostgreSQL migration 2026-05-17 23:31:01 -04:00
Daniel Harvey 0d14f46909 Fix review findings: scrub committed password, restore migration namespace, document Npgsql version constraint 2026-05-17 23:30:05 -04:00
Daniel Harvey 92c744db42 Fix _Imports dead using, add Virtualization, declare server-only SupportedPlatform 2026-05-17 23:18:13 -04:00
Daniel Harvey a65339395b Migrate DeepDrftContext from SQLite to PostgreSQL; add docker-compose for local Postgres 17 2026-05-17 23:11:44 -04:00
Daniel Harvey a64e49326d Add DeepDrftCms RCL skeleton, mount at /cms, switch NetBlocks to NuGet 2026-05-17 23:04:54 -04:00