People Equipment Access Keys Space
Click a sortable column heading, or tab to it and press Enter or Space, to cycle through ascending, descending and unsorted order. Hold Shift to sort by multiple columns. Keyboard focus is visible, and each sorted column exposes its direction to screen readers.
Run the app and real SQL Server migrations with fictional data and local login. Docker Desktop must be running.
export SANDBOX_PROJECT=peaks-my-feature
export SANDBOX_PORT=5285
export SANDBOX_SQL_PORT=14339
docker compose -f .devcontainer/docker-compose.sandbox.yml up --build -d --waitOpen http://localhost:5285/login and enter sandbox-admin. Use a unique project name and ports for each worktree. See sandbox setup, reset and tests, and EF migration workflow.
Install the .NET SDK selected by global.json. Use Node.js 22.18 or newer on Node 22 to match the CI pipeline, with npm 10 or newer as required by the frontend package.
With NVM for Windows:
nvm install 22
nvm use 22Before running with SQL Server, review the startup migration prerequisites.
Get the application settings from Box and configure the website's user secrets.
From the repository root, install the frontend dependencies and start the website:
cd Keas.Mvc/ClientApp
npm ci
cd ..
dotnet restore
npm startnpm start runs dotnet watch run from Keas.Mvc. The development launch profile starts Vite automatically and waits for its readiness. MVC serves the website at https://localhost:44332; Vite serves assets at http://localhost:5179.
See frontend development for test commands, asset publishing, configuration and verification.
With Visual Studio, open Keas.sln and run Keas.Mvc after completing the dependency and secrets setup.
To bypass CAS locally, enable the login screen with a personal user secret:
dotnet user-secrets set "LocalLogin:Enabled" "true" --project Keas.MvcRun the app in Development and open /login. Enter the Kerberos ID or email
of an existing user in your configured database, or choose Sign in with CAS.
Local login uses that user's current database permissions and does not create
accounts or grant roles. Peaks has no account-level active flag. Unknown or
ambiguous identities are rejected. Local sessions log out back to /login,
where you can choose another user; cached permissions are cleared on sign-in
and logout. CAS sessions keep their normal CAS logout behavior.
The feature is disabled by default and unavailable outside Development, even
if the setting is enabled. Keep development instances bound to localhost because
anyone who can reach an enabled instance can sign in as an existing user. No
tracked launch settings need to change. To disable the feature:
dotnet user-secrets remove "LocalLogin:Enabled" --project Keas.Mvc