Commit Graph
208 Commits
Author SHA1 Message Date
Karl Ludwig WeiseandGitHub fe5309bfa0 Merge pull request #120 from open-reception/feat/custom-domains
Support Custom Domains
2026-01-28 21:38:06 +01:00
16eed3d03e Added missing files and notes to docker container. (#185)
* Added missing files and notes to docker container.

Dev compose adjusted accordingly (but untested, since it isn't used yet).

Checked release action

* Removed e2e tests from release (not used yet)

* Added missing env vars for unit test

* Missing env

* Display version number

---------

Co-authored-by: Karl Ludwig Weise <ludwig@ludwigweise.de>
2026-01-28 16:48:12 +01:00
Karl Ludwig Weise 3f550af281 Added custom domains for tenants 2026-01-23 21:38:06 +01:00
75cdccf5d0 149 allow creation of appointments through staff members (#174)
* Simplified locals.user
Checked routes for accessibilty

* Fixed tests

* Fixed import errors

* Fixed invite test

* PIN API implementation

* Tests for pin reset

* HOusekeeping

* Update src/routes/api/tenants/[id]/clients/pin-reset/request/+server.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fixes for id and housekeeping

* End routes for staff appointment bookings and check whether client exists.

* Merged main, fixed tests

* Linting errors

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-22 11:48:11 +01:00
a64afbd297 160 book appointment confirm appointment requests (#179)
* Extension of tenant schema

* Notification service

* Notification endpoints

* Format errors

* Update src/lib/server/db/tenant-schema.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/lib/server/services/notification-service.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Explicit where clause in delete notification

* Update tenant-migrations/0008_neat_swarm.sql

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Sort notifivcations by creation date. Do not explicitly check for existance in mark as read.

* Fixed tests

* Mail templates appointment cancellation

* Appointment cancellation notification texts

* Delete appointment by staff

* Deletion endpoint for staff

* My Appointments endpoint for clients

* Delete appointment by client

* Copilot review fixes

* Fixes after notification changes and updates.

* Fixed limiting errors

* Rejection email template

* Send out request, confirmed notifications, send out confirmed, denied emails.

* Fix test

* MIgration files

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-22 11:39:12 +01:00
e9bd83bcd2 148 provide apis for cancelling appointments staff and client wise (#164)
* Extension of tenant schema

* Notification service

* Notification endpoints

* Format errors

* Update src/lib/server/db/tenant-schema.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/lib/server/services/notification-service.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Explicit where clause in delete notification

* Update tenant-migrations/0008_neat_swarm.sql

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Sort notifivcations by creation date. Do not explicitly check for existance in mark as read.

* Fixed tests

* Mail templates appointment cancellation

* Appointment cancellation notification texts

* Delete appointment by staff

* Deletion endpoint for staff

* My Appointments endpoint for clients

* Delete appointment by client

* Copilot review fixes

* Fixes after notification changes and updates.

* Fixed limiting errors

* Fix

* Refix fix

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-22 11:28:35 +01:00
25f10462da Added salutation field (#183)
* Added salutation field

* Handle honeypot in backend

---------

Co-authored-by: Karl Ludwig Weise <ludwig@ludwigweise.de>
Co-authored-by: Hendrik Belitz <hendrik@innovation-through-understanding.de>
2026-01-22 11:28:17 +01:00
Karl Ludwig Weise e23817fa31 Fix tests 2026-01-21 22:17:47 +01:00
Karl Ludwig Weise 85a0fed42b Fix check 2026-01-21 22:04:17 +01:00
Karl Ludwig Weise 214e201f21 Fix lint 2026-01-21 21:53:53 +01:00
Karl Ludwig Weise 9c86b28182 Undo svelte warnings 2026-01-21 21:22:07 +01:00
Karl Ludwig Weise 5500ea75c0 Fix lint 2026-01-21 19:58:41 +01:00
Karl Ludwig Weise 7504dd2ac1 Fix types 2026-01-21 19:50:15 +01:00
Hendrik Belitz 7435f8b6fb Allow client email to be optional 2026-01-21 17:30:13 +01:00
Hendrik Belitz 224d4a9539 Fixed test 2026-01-21 17:30:00 +01:00
Hendrik Belitz 652380c08c Fixed formatting 2026-01-21 17:29:53 +01:00
Hendrik Belitz df50955d8c Merge branch 'main' of github.com:open-reception/appointment-booking-software into 153-book-appointment-allow-clients-to-select-if-they-want-email-notifications 2026-01-21 17:16:10 +01:00
Karl Ludwig Weise 9d34332921 Improved Login default state 2026-01-19 21:04:14 +01:00
Karl Ludwig Weise e570ecef51 Add confirm to prime user for PRF output retrieval 2026-01-19 20:51:18 +01:00
Karl Ludwig Weise 9e4094702d Only try to initStaffCrypto when user is regular staff member 2026-01-19 20:07:28 +01:00
Karl Ludwig Weise c2904659e4 Remove global admin from staff ui 2026-01-19 20:02:40 +01:00
Karl Ludwig Weise 1df02cb9f5 Minimize cases where the access_token is still set, but invalid 2026-01-19 16:40:20 +01:00
Karl Ludwig Weise 3bdf663f71 Improved hover state of channels and agents during booking 2026-01-16 16:58:51 +01:00
Karl Ludwig Weise 32fe5c7e42 Fix reloads during onboarding 2026-01-16 16:56:18 +01:00
Karl Ludwig Weise 76838eba29 Fix: Legal links in settings are optional 2026-01-16 16:45:25 +01:00
Karl Ludwig Weise eb47814395 Redact user and password from databaseUrl logs 2026-01-16 16:03:23 +01:00
Karl Ludwig Weise 95d0180c0b Added link to home from login 2026-01-16 15:47:49 +01:00
Karl Ludwig Weise ded98597fc Disable book appointment button, when in progress 2026-01-16 15:47:40 +01:00
Karl Ludwig Weise 1d83f8678b Set english as default language 2026-01-16 15:36:12 +01:00
Karl Ludwig Weise 0c0ef46989 Improve decrypting error message 2026-01-16 15:35:56 +01:00
Karl Ludwig Weise 439d1d198f Show proper label on settings form 2026-01-16 15:35:29 +01:00
Karl Ludwig Weise 65a9807ad8 Fix: Show language switch again on dashboard 2026-01-16 15:34:45 +01:00
Karl Ludwig Weise 86a3f27bf6 Fix pin throttle check 2026-01-16 13:39:42 +01:00
Karl Ludwig Weise 082435c1fb Added Popover to explain why checkbox is there 2026-01-16 12:59:59 +01:00
Karl Ludwig Weise f663f305c5 Change opt separator back to dot 2026-01-14 17:23:02 +01:00
Karl Ludwig Weise 9c2254215e Added front-end flow to make email sending optional 2026-01-14 17:19:54 +01:00
fb3b880204 142 provide logic and apis to use more than one passkey with a staff member (#163)
* Basic implementation

* Syntax fixes

* Implemented PRF for passkey administration. Updated docs, renamed confusing endpoints.

* Update src/routes/api/auth/passkeys/[passkeyId]/crypto/+server.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Removed unused param

* Merge fixes, formatting fixes, database migrations

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-13 18:35:42 +01:00
c552945643 141 provide apis for pin reset (#162)
* Simplified locals.user
Checked routes for accessibilty

* Fixed tests

* Fixed import errors

* Fixed invite test

* PIN API implementation

* Tests for pin reset

* HOusekeeping

* Update src/routes/api/tenants/[id]/clients/pin-reset/request/+server.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fixes for id and housekeeping

* DB migrations

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-13 18:17:42 +01:00
a6707ef081 151 bare minimum notification system (#161)
* Extension of tenant schema

* Notification service

* Notification endpoints

* Format errors

* Update src/lib/server/db/tenant-schema.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/lib/server/services/notification-service.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Explicit where clause in delete notification

* Update tenant-migrations/0008_neat_swarm.sql

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Sort notifivcations by creation date. Do not explicitly check for existance in mark as read.

* Fixed tests

* No longer store texts in notifications

* Single source of truth for notification types

* Formatting

* Fixed linting errors

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-13 18:05:32 +01:00
8c0343b1ec Feat/email renderer (#172)
* Added poc of new email renderer

* Completed email renderer poc for appointment confirmation

* Changed phone description in add-personal-data-form

* Added used email types to new email system

* Switched email templates to the new template engine.

---------

Co-authored-by: Karl Ludwig Weise <ludwig@ludwigweise.de>
Co-authored-by: Hendrik Belitz <hendrik@innovation-through-understanding.de>
2026-01-12 10:03:22 +01:00
HendrikGitHubhbelcopilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>Copilot
b81706a8d9 Security hotfix prf (#146)
* Use PRF extension for deterministic Zero Knowledge Shards

* Webauthn validation lib

* Use attestation and validate passkeys

* Use attestation objects and cose-format keys in frontend. Added additional checks so that we don't create orphaned users when validation fails.

* Fixed type check error

* Fix PRF salt documentation to match implementation (#147)

* Initial plan

* Fix PRF salt documentation to match implementation

Co-authored-by: hbel <7416029+hbel@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: hbel <7416029+hbel@users.noreply.github.com>

* Use dev instead of node env

* Migration fixes

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: hbel <7416029+hbel@users.noreply.github.com>
2026-01-02 15:08:23 +01:00
CopilotGitHubhbelcopilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>Hendrik Belitz
337fc2e70b Add throttling to challenge APIs for brute force protection (#145)
* Initial plan

* Add throttling implementation for challenge APIs

Co-authored-by: hbel <7416029+hbel@users.noreply.github.com>

* Add tests for throttling and fix linting issues

Co-authored-by: hbel <7416029+hbel@users.noreply.github.com>

* Address code review feedback - improve error handling and documentation

Co-authored-by: hbel <7416029+hbel@users.noreply.github.com>

* Consolidate throttle storage to central DB per review feedback

Co-authored-by: hbel <7416029+hbel@users.noreply.github.com>

* Fixed errors in challenge-throlle.

* Add throttling to frontend.

* incorporated Reviewer comments

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: hbel <7416029+hbel@users.noreply.github.com>
Co-authored-by: Hendrik Belitz <hendrik@innovation-through-understanding.de>
2026-01-02 13:14:40 +01:00
HendrikandGitHub 1959115d70 127 add checkpermission everywhere where needed (#140)
* Simplified locals.user
Checked routes for accessibilty

* Fixed tests

* Fixed import errors

* Fixed invite test
2025-12-16 11:25:19 +01:00
Karl Ludwig WeiseandGitHub 56b7d4a9b2 Feat/calendar (#129) 2025-11-19 14:42:45 +01:00
HendrikandGitHub 6a610b96b1 When client selects an appointment that does not need to be confirmed… (#133)
* When client selects an appointment that does not need to be confirmed, send out an email. Also prepared the appointment confirmation call to send out an email.

* Removed old client table. Fixed tests.

* MIgration for removed table
2025-11-17 17:04:57 +01:00
316d7ef25b Feat/book appointment (#121)
* Adding book appointment workflow -wip

* Load channels

* Added channel and agent selection

* Provide optional filter criteria for agents and channels in schedule endpoint.

Return agent info for free schedule slots.

* Select slot

* Added personal data form

* Added login and register step

* Empty PIN input when crypto fails

* Added summary and complete steps

* Format errors in otp component

* Format error in otp component

* Store staff keypairs for appointment encryption

* storeStaffKeyPair during passkey setup

* Fix lint

* Allow access to tenants for tenant admins

* Removed centralised route-based authorization.

* Use setupState from back-end

* First tenant admin is ACCESS_GRANTED.

* load local argon2 directly in central html file

* Make sure cookie is deleted on logout

* Allow WASM execution

* Staff key is base64 encoded, not hex encoded

* Fix proceeding to summary

* Fix TunnelId. Fix Appointment Date. Fix missing AgentId for Tunnel Creation call.

* Fix book appoint flow for new users

* Fix design issues

* Show only slots that have not passed

* Reimplemented ShamirsSecretSharing with Laplacian Interpolation

* Check for existing users before creating new client tunnels. Corrected base64 decoding of challenge.

* Properly deal with existing client errors (422)

* Use new shamir implementation for shard construction and key reconstruction.

* Fix lint and check

* Fix csp header test

* Fixed tests

---------

Co-authored-by: Karl Ludwig Weise <ludwig@ludwigweise.de>
Co-authored-by: Hendrik Belitz <hendrik@innovation-through-understanding.de>
2025-11-13 14:55:11 +01:00
8f927ba5d7 Pages for managing my account set up (#131)
Co-authored-by: Karl Ludwig Weise <ludwig@ludwigweise.de>
2025-11-12 14:30:07 +01:00
85e642fa89 Added onboarding dashboard (#128)
* Added onboarding dashboard

* Improve onboarding expericene

---------

Co-authored-by: Karl Ludwig Weise <ludwig@ludwigweise.de>
2025-11-12 14:28:35 +01:00
HendrikandGitHub 983f6c3857 Use the normal invitation flow when inviting an initial tenant admin. (#122) 2025-10-29 16:26:49 +01:00
CopilotGitHubhbelcopilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
1e311bed32 Migrate to Zod 4 (#125)
* Initial plan

* Migrate to Zod 4.1.12 and update all imports

Co-authored-by: hbel <7416029+hbel@users.noreply.github.com>

* Fix test UUIDs to be RFC 4122 compliant for Zod 4

Co-authored-by: hbel <7416029+hbel@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: hbel <7416029+hbel@users.noreply.github.com>
2025-10-27 15:58:24 +01:00