This website requires JavaScript.
d9cc539481
Merge pull request 'Voeg leesbare slug toe aan Offering naast het GUID-ID' (#10 ) from feature/offering-slug into master
master
Sluijsens
2026-08-04 16:38:52 +02:00
927957f04f
Herstel potlood-icoon voor de aanpassen-knop bij slug
Sluijsens and Claude Sonnet 5
2026-08-04 15:58:55 +02:00
d09b3196d8
Toon live slug-preview inline naast titel in plaats van los blok
Sluijsens and Claude Sonnet 5
2026-08-04 15:55:32 +02:00
1b974696bf
Maak slug in CMS zichtbaar en inline aanpasbaar
Sluijsens and Claude Sonnet 5
2026-08-04 15:31:10 +02:00
cc09b46cfb
Voeg leesbare slug toe aan Offering naast het GUID-ID
Sluijsens and Claude Sonnet 5
2026-08-04 11:31:16 +02:00
1ba945fa45
Merge pull request 'Adds SlpModularCms.Api.SlpSoftware and extracts shared CmsHost composition' (#9 ) from feature/slpsoftware-api into master
Sluijsens
2026-08-02 23:46:00 +02:00
c43528b7b2
Cancels superseded PR CI runs on a new push, never during a live deploy
Sluijsens and Claude Sonnet 5
2026-08-02 16:37:58 +02:00
81af6cd151
Completes Operations phase: Monitoring Setup and Production Readiness Validation
Sluijsens and Claude Sonnet 5
2026-08-02 16:35:00 +02:00
cfb06b28b6
Adds the Offerings module and retargets the CI/CD pipeline to Api.SlpSoftware
Sluijsens and Claude Sonnet 5
2026-08-02 16:23:09 +02:00
b6e9c07c06
Replaces the backend-test MariaDB service with an explicit docker run
Sluijsens and Claude Sonnet 5
2026-08-02 11:24:41 +02:00
0feedf9c01
Adds a MariaDB service to backend-test for SlpModularCms.Api.Tests
Sluijsens and Claude Sonnet 5
2026-08-02 10:46:25 +02:00
fa389e42ee
Adds SlpModularCms.Api.SlpSoftware and extracts shared CmsHost composition
Sluijsens and Claude Sonnet 5
2026-08-02 01:28:39 +02:00
dcc82cdf62
Merge pull request 'Restructure frontend' (#8 ) from feature/frontend-feature-based-structure into master
Sluijsens
2026-07-31 23:51:53 +02:00
11ec08aac3
Restructures frontend to a feature-based folder layout
Sluijsens and Claude Sonnet 5
2026-07-31 22:30:37 +02:00
650cf09cfa
Merge pull request 'Replaces unsupported failure()/cancelled() with explicit needs.<job>.result checks in publish gates' (#7 ) from feature/gitea-workflow-optimizations into master
Sluijsens
2026-07-31 21:20:00 +02:00
de06578444
Logs workflow_dispatch input values and skips publish-test on a manual run without deploy_test checked
Sluijsens and Claude Sonnet 5
2026-07-31 20:17:55 +02:00
12b1df6ede
Replaces unsupported failure()/cancelled() with explicit needs.<job>.result checks in publish gates
Sluijsens and Claude Sonnet 5
2026-07-31 16:53:46 +02:00
5a44d76ccc
Merge pull request 'Shortens deploy label, adds manual test-deploy toggle, skips unaffected backend/frontend gates' (#4 ) from feature/gitea-workflow-optimizations into master
Sluijsens
2026-07-31 16:00:53 +02:00
dfc27fd5a2
Shortens deploy_production label, adds a deploy_test toggle for manual runs, and skips backend/frontend gates when that side of the repo has no changes
Sluijsens and Claude Sonnet 5
2026-07-31 15:25:28 +02:00
66c0d768cf
Merge pull request 'Fixes mobile sidebar collapsing to content height instead of filling the overlay' (#3 ) from fix/mobile-sidebar-height into master
Sluijsens
2026-07-31 00:47:17 +02:00
bc4de27b97
Fixes mobile sidebar collapsing to content height instead of filling the overlay
Sluijsens
2026-07-31 00:40:25 +02:00
5dfe92b61c
Merge pull request 'Adds Monitoring Setup docs and deploy-scp troubleshooting/debug fixes' (#2 ) from feature/gitea-deployment-workflow into master
Sluijsens
2026-07-30 23:57:51 +02:00
084b941204
Pins actions/setup-node to v3, skips DB backup when no database exists yet
Sluijsens
2026-07-30 18:54:09 +02:00
f10d7b983e
Reverts deploy-test to push/workflow_dispatch only, drops the pull_request trigger
Sluijsens
2026-07-30 13:38:31 +02:00
22bc5c5cde
Doubles frontend test findBy* timeouts to reduce CI flakiness
Sluijsens
2026-07-30 12:32:58 +02:00
7c1d2aa520
Fixes /admin 404 by building the admin SPA before dotnet publish, not via an MSBuild target
Sluijsens
2026-07-30 11:10:17 +02:00
9b44a5e85e
Adds a shared/modules symlink mechanism for optional plugin modules
Sluijsens
2026-07-30 10:09:53 +02:00
d51285d9dd
Removes the secret-diagnosis debug step, fixes wwwroot symlink parent dir
Sluijsens and Claude Sonnet 5
2026-07-30 00:28:29 +02:00
51488d6d94
Routes PI_MAIN_* secrets through env vars instead of inline interpolation
Sluijsens and Claude Sonnet 5
2026-07-29 20:42:57 +02:00
3776c0f27b
Adds a trimmed-length check to the PI_MAIN_PASSWORD debug step
Sluijsens and Claude Sonnet 5
2026-07-29 20:39:36 +02:00
c3070b4bfb
Merge branch 'master' into feature/gitea-deployment-workflow
Sluijsens
2026-07-29 19:43:45 +02:00
92547efd47
Allows deploy-test to run on pull_request events too
Sluijsens and Claude Sonnet 5
2026-07-29 19:41:17 +02:00
56f4f6fe0f
Adds Monitoring Setup docs and deploy-scp troubleshooting/debug fixes
Sluijsens and Claude Sonnet 5
2026-07-29 19:39:44 +02:00
2d0372ad78
Merge pull request 'Feature/gitea deployment workflow' (#1 ) from feature/gitea-deployment-workflow into master
Sluijsens
2026-07-29 16:50:42 +02:00
d81168b7a9
Aligns mock API_BASE with the real ApiClient's origin fallback
Sluijsens
2026-07-29 15:33:07 +02:00
ff0fc66b10
Adds the missing packages field to pnpm-workspace.yaml
Sluijsens
2026-07-29 14:36:10 +02:00
2cd8c4aa88
Renames the backup script to match the instance, not the software
Sluijsens
2026-07-29 14:17:41 +02:00
459c347c12
Labels every command with who runs it and where
Sluijsens
2026-07-29 14:14:58 +02:00
c438ec8b1d
Warns against copying the reference project's nginx Sentry tunnel
Sluijsens
2026-07-29 13:43:33 +02:00
50c1a5106d
Fixes deployment docs to reverse-proxy on a separate Pi, not pi-main
Sluijsens
2026-07-29 13:29:12 +02:00
d1b0d06568
Splits nginx routing into a from-scratch procedure plus the example
Sluijsens
2026-07-29 13:19:59 +02:00
743c173257
Names su - specifically as a confirmed cause, not just sudo -u
Sluijsens
2026-07-29 13:15:11 +02:00
6882eda03f
Adds systemd --user bus-connection troubleshooting
Sluijsens
2026-07-29 12:56:01 +02:00
33d18ebbf8
Switches the database from SQL Server to MariaDB
Sluijsens
2026-07-29 11:59:09 +02:00
579e0ceaac
Fixes a wrong placeholder and explains the optional env fields
Sluijsens
2026-07-28 23:17:52 +02:00
97f18d00e5
Names the deployed instance slpsoftware, not the software itself
Sluijsens
2026-07-28 22:16:04 +02:00
843253888e
Nests environments under one slpmodularcms folder instead of siblings
Sluijsens
2026-07-28 21:43:37 +02:00
25a3de0f1f
Stops mixing gitea-workflow with the generic deploy-user placeholder
Sluijsens
2026-07-28 20:08:44 +02:00
366e912e73
Renames the example deploy account to gitea-workflow
Sluijsens
2026-07-28 19:51:10 +02:00
960760c24e
Makes the deploy account generic instead of per-project
Sluijsens
2026-07-28 19:46:58 +02:00
2f243f23c3
Fixes the account model deploy setup got wrong
Sluijsens
2026-07-28 19:41:34 +02:00
cf80f827ae
Deployment setup - the parts the workflow deliberately left out
Sluijsens
2026-07-28 19:07:26 +02:00
9ab30fe2a6
Closes construction - build and test across all seven units
Sluijsens
2026-07-28 16:47:45 +02:00
73126f5a9c
Closes round 4 - all seven units generated
Sluijsens
2026-07-28 16:30:58 +02:00
88770c5bd0
U7 — tells a website builder what they need to know
Sluijsens
2026-07-28 16:30:19 +02:00
9f4ae475e7
U5 — the gate everything else has to pass
Sluijsens
2026-07-28 16:07:03 +02:00
bd2a963498
U6 — the deploy workflow itself
Sluijsens
2026-07-28 15:33:03 +02:00
9a77eec0f1
Designs where the deploy workflow puts things on the Pi
Sluijsens
2026-07-28 15:32:51 +02:00
247d8be241
Closes round 2 of the deployment feature
Sluijsens and Claude Opus 5
2026-07-28 12:35:44 +02:00
6957ec7c60
Tells apart a slave that is down from one that does not know us
Sluijsens and Claude Opus 5
2026-07-28 12:31:00 +02:00
980dc80701
Records that the key-ring move leaves older ciphertext unreadable
Sluijsens and Claude Opus 5
2026-07-28 11:58:19 +02:00
8e79a72340
Makes the application say what it is doing and when it fails
Sluijsens and Claude Opus 5
2026-07-28 11:25:54 +02:00
a122548454
Sends the security headers from the application instead of the proxy
Sluijsens and Claude Opus 5
2026-07-28 10:58:45 +02:00
5102f8668b
Settles how the headers and observability units get built
Sluijsens and Claude Opus 5
2026-07-28 10:25:11 +02:00
589146a167
Removes the sample database password from the README
Sluijsens and Claude Opus 5
2026-07-28 00:01:11 +02:00
357d395629
Designs the security headers and observability units
Sluijsens and Claude Opus 5
2026-07-28 00:01:04 +02:00
5f3eda2680
Makes a redeploy safe for the key ring and the schema
Sluijsens and Claude Opus 5
2026-07-28 00:00:45 +02:00
29a93ef873
Separates website and admin roots, adds /health, hardens the availability gate
Sluijsens and Claude Opus 5
2026-07-28 00:00:13 +02:00
8568ca43c6
Plans the Gitea deployment feature and refreshes the codebase analysis
Sluijsens and Claude Opus 5
2026-07-27 23:59:17 +02:00
38857038a0
Serves public website, admin SPA, and API from a single host
Sluijsens and Claude Sonnet 5
2026-07-26 21:01:28 +02:00
a4458f383e
Documents solution folder structure for AI agents
Sluijsens and Claude Sonnet 5
2026-07-26 20:08:58 +02:00
754bd97a42
Organizes backend solution
Sluijsens
2026-07-05 00:29:42 +02:00
0050deb4e7
Records feature closure for local-dev-master-slave-setup
Sluijsens and Claude Sonnet 5
2026-07-04 21:58:29 +02:00
0447993181
Completes local-dev-master-slave-setup: dual-instance frontend tooling, module-capability gating, and master/slave protocol self-healing fixes
Sluijsens and Claude Sonnet 5
2026-07-04 19:53:52 +02:00
274946dbff
Adds SlpModularCms.Api.Slave for local master/slave dev testing (Unit 1)
Sluijsens and Claude Sonnet 5
2026-07-04 02:07:35 +02:00
8072025e0b
Completes master-cms-module: Build & Test, docs, and appsettings
Sluijsens
2026-07-01 23:09:15 +02:00
488ab821a7
Adds frontend for cms page
Sluijsens
2026-06-30 23:23:50 +02:00
c156107cb1
Adds 2 units and docs for unit 3. nfr-requirements plan
Sluijsens
2026-06-29 22:18:37 +02:00
0e01ca1e1c
adds unit tests to cover 80%
Sluijsens
2026-06-26 00:27:27 +02:00
b84e2f8e3e
Changes back-end unavailable to redirect to login instead of setup page
Sluijsens
2026-06-23 22:13:01 +02:00
2544e20b3c
Adds profile and settings pages
Sluijsens
2026-06-22 23:59:04 +02:00
6976eb4337
Adds user management
Sluijsens
2026-06-22 21:14:22 +02:00
5331be4279
fix(auth): configurable SameSite cookie for cross-origin dev setup
Sluijsens and Claude Haiku 4.5
2026-06-22 15:42:56 +02:00
546b773781
fix(auth): add Vite dev proxy to fix SameSite=Strict cookie on page reload
Sluijsens and Claude Haiku 4.5
2026-06-22 15:23:19 +02:00
d8b0484803
fix(availability): translate status messages, return stored admin reason from API
Sluijsens and Claude Haiku 4.5
2026-06-22 14:53:11 +02:00
d69512a449
fix(i18n): eager-load nl bundle, fix language selector, remove hardcoded backend messages
Sluijsens and Claude Haiku 4.5
2026-06-22 14:16:27 +02:00
3c6a06028e
feat(unit-4): Dashboard — availability widget with TanStack Query
Sluijsens and Claude Haiku 4.5
2026-06-22 13:39:29 +02:00
f476e06691
fix(unit-3): Add settings/profile routes, move profile to UserMenu
Sluijsens and Claude Haiku 4.5
2026-06-22 12:56:16 +02:00
76b7bfc09b
feat(unit-3): Layout & Navigation — sidebar, mobile overlay, theme toggle
Sluijsens and Claude Haiku 4.5
2026-06-22 12:03:10 +02:00
7ed388ed5b
docs(unit-3): Add code generation plan with open questions
Sluijsens and Claude Haiku 4.5
2026-06-22 11:54:11 +02:00
6760257e49
docs(unit-3): Complete functional design based on user answers
Sluijsens and Claude Haiku 4.5
2026-06-22 11:51:24 +02:00
037332e52f
docs(unit-3): Revert to open questions in functional design plan
Sluijsens and Claude Haiku 4.5
2026-06-22 11:47:33 +02:00
31cc45d79b
docs(unit-3): Functional design for Layout & Navigation
Sluijsens and Claude Haiku 4.5
2026-06-22 11:44:24 +02:00
bbb8d5f423
fix(auth): Remove hardcoded api/v1 prefix from AuthController route
Sluijsens and Claude Haiku 4.5
2026-06-22 11:35:24 +02:00
7237669b14
fix(setup): Apply language choice and fix post-setup redirect
Sluijsens and Claude Haiku 4.5
2026-06-22 11:25:40 +02:00
27490356cb
fix(ui): Add type=button to FormErrorBanner dismiss to prevent form resubmit
Sluijsens and Claude Haiku 4.5
2026-06-22 11:20:48 +02:00
2f381d8407
fix(frontend): Strip confirmPassword before API calls; add pointer cursor
Sluijsens and Claude Haiku 4.5
2026-06-22 11:17:20 +02:00
f221d7cee5
fix(unit-2-auth): Redirect to /setup on API failure; store owner display name
Sluijsens and Claude Haiku 4.5
2026-06-22 11:06:34 +02:00
8d95754ece
fix(unit-2-auth): Fix API endpoint paths and JSON casing for real backend
Sluijsens and Claude Haiku 4.5
2026-06-22 10:55:34 +02:00
c9cd0ff457
fix(unit-2-auth): Fix all 4 failing unit tests to 29/29 passing
Sluijsens and Claude Haiku 4.5
2026-06-22 10:20:00 +02:00