Commit graph

  • 808c2b6ba2
    Merge d489cfee13 into 5a5472ed43 renovate[bot] 2026-09-29 22:03:37 +00:00
  • 5a5472ed43
    Merge pull request #199 from Sea-Haven-Industries/fix/ab/sh411-technician-assignment-backend-thr_9fpik7tdmw main Alexandre Brandizzi 2026-09-29 21:58:16 +00:00
  • 2de65539a1 test(workorders): cover technician-name search for cleared assignment Alexandre Brandizzi 2026-09-29 18:40:57 -03:00
  • 35adef5808 fix(workorders): persist explicit technician assignment Alexandre Brandizzi 2026-09-29 17:58:52 -03:00
  • c68417b9fa
    Merge 496b43b6bc into d3b6ba01c7 renovate[bot] 2026-09-28 19:28:50 +00:00
  • 496b43b6bc
    chore(deps): update nuget minor and patch renovate/nuget-minor-and-patch renovate[bot] 2026-09-28 19:28:42 +00:00
  • d489cfee13
    chore(deps): update github actions renovate/github-actions renovate[bot] 2026-09-28 19:28:25 +00:00
  • 4ce68ed651
    Merge 2f4b783615 into d3b6ba01c7 Arthur Bassi 2026-09-28 19:26:40 +00:00
  • 2f4b783615 fix(uplifts): open evidence by work-order access and keep every file feat/SH-388-uplift-evidence Arthur Bassi 2026-09-28 16:24:26 -03:00
  • 31dd2d5dcd merge(main): keep uplift evidence on the current work-order routes Arthur Bassi 2026-09-28 15:56:45 -03:00
  • d3b6ba01c7
    Merge pull request #193 from Sea-Haven-Industries/fix/ab/sh-403-reset-hardening-2 Alexandre Brandizzi 2026-09-25 23:11:26 +00:00
  • 74d5aa17eb fix(auth): trace a reset email the provider rejects as an error Alexandre Brandizzi 2026-09-25 20:01:58 -03:00
  • 1077d489a8
    Merge pull request #197 from Sea-Haven-Industries/fix/ab/sh-407-cancel-wo-cancels-uplift Alexandre Brandizzi 2026-09-25 23:01:24 +00:00
  • e941e055b7 Merge remote-tracking branch 'origin/main' into fix/ab/sh-407-cancel-wo-cancels-uplift Alexandre Brandizzi 2026-09-25 19:49:50 -03:00
  • c985e9423d Merge remote-tracking branch 'origin/main' into fix/ab/sh-403-reset-hardening-2 Alexandre Brandizzi 2026-09-25 19:49:24 -03:00
  • de0e767930 fix(auth): refuse a reset email when the queue is full instead of dropping it Alexandre Brandizzi 2026-09-25 19:38:53 -03:00
  • 63465cc083
    Merge pull request #198 from Sea-Haven-Industries/fix/ab/sh-409-invalidate-sessions-on-reset Alexandre Brandizzi 2026-09-25 22:38:44 +00:00
  • a32471d4c0 Serialize sync cancels and vendor uplift requests on the work order lock Alexandre Brandizzi 2026-09-25 19:37:08 -03:00
  • 0298fc75bd Merge remote-tracking branch 'origin/main' into fix/ab/sh-403-reset-hardening-2 Alexandre Brandizzi 2026-09-25 19:27:01 -03:00
  • 498f49a2d8 fix(auth): end earlier sessions when a user's role or account changes Alexandre Brandizzi 2026-09-25 19:26:25 -03:00
  • 987ec455f2 Merge remote-tracking branch 'origin/main' into fix/ab/sh-409-invalidate-sessions-on-reset Alexandre Brandizzi 2026-09-25 19:22:33 -03:00
  • de8e283ee5
    Merge pull request #192 from Sea-Haven-Industries/fix/ab/sh-403-reset-code-hardening Alexandre Brandizzi 2026-09-25 22:16:01 +00:00
  • 410bf1b4ca
    Merge pull request #195 from Sea-Haven-Industries/fix/ab/sh-408-has-uplift-live-status Alexandre Brandizzi 2026-09-25 22:15:57 +00:00
  • c8e4b8f3d5
    Merge pull request #196 from Sea-Haven-Industries/fix/ab/sh-406-no-revoke-auto-approved Alexandre Brandizzi 2026-09-25 22:15:54 +00:00
  • 77dc3d85c3 Serialize a CRM cancel with uplift creation on the work order lock Alexandre Brandizzi 2026-09-25 19:15:38 -03:00
  • cc46950254 test(auth): format the password change request Alexandre Brandizzi 2026-09-25 19:10:46 -03:00
  • b7be07411e fix(auth): end earlier sessions when a password or account status changes Alexandre Brandizzi 2026-09-25 19:08:33 -03:00
  • 306ab159cc Cancel pending uplifts when the legacy ingest cancels a work order Alexandre Brandizzi 2026-09-25 19:01:37 -03:00
  • e993e1b5fc refactor(auth): compose bearer authentication through one registration Alexandre Brandizzi 2026-09-25 18:54:10 -03:00
  • 99499c3281 Cancel pending uplifts when the CRM cancels a work order Alexandre Brandizzi 2026-09-25 18:48:44 -03:00
  • 9bad363930 fix(work-orders): cancelling from the board cancels the pending uplift Alexandre Brandizzi 2026-09-25 18:37:56 -03:00
  • ca9322fa60 fix(auth): queue the reset email only after its code is stored Alexandre Brandizzi 2026-09-25 18:29:33 -03:00
  • 2f23f6fadc test(team-members): register reset email delivery in the invite test host Alexandre Brandizzi 2026-09-25 18:10:10 -03:00
  • 185c84dd8c fix(uplifts): refuse admin revoke of an auto-approved uplift Alexandre Brandizzi 2026-09-25 18:07:33 -03:00
  • 35e79a276d Merge branch 'fix/ab/sh-403-reset-code-hardening' into fix/ab/sh-403-reset-hardening-2 Alexandre Brandizzi 2026-09-25 17:54:13 -03:00
  • c860936d07 test(auth): give the reset test host's helpers names of their own Alexandre Brandizzi 2026-09-25 17:52:14 -03:00
  • 9198c5cd5d Merge remote-tracking branch 'origin/main' into fix/ab/sh-403-reset-code-hardening Alexandre Brandizzi 2026-09-25 17:52:04 -03:00
  • 92cd44c481 fix(work-orders): count only live uplifts for Has uplift and the Uplift column Alexandre Brandizzi 2026-09-25 17:51:47 -03:00
  • 5eb1323419 test(auth): give the reset test host's helpers names of their own Alexandre Brandizzi 2026-09-25 17:51:26 -03:00
  • f0dcba63fd fix(auth): give back reset check and request slots when a data call fails or is cancelled Alexandre Brandizzi 2026-09-25 17:38:51 -03:00
  • 5e5bb88857
    Merge 24bbaddc3c into cf32dd2698 renovate[bot] 2026-09-25 16:57:08 -03:00
  • cf32dd2698
    Merge pull request #184 from Sea-Haven-Industries/feat/ab/sh-322-overdue-type Alexandre Brandizzi 2026-09-25 19:52:19 +00:00
  • c6dcad8395
    Merge pull request #189 from Sea-Haven-Industries/feat/ab/sh-385-invite-registration Alexandre Brandizzi 2026-09-25 19:52:15 +00:00
  • 1277642ede Merge branch 'fix/ab/sh-403-reset-code-hardening' into fix/ab/sh-403-reset-hardening-2 Alexandre Brandizzi 2026-09-25 16:48:57 -03:00
  • 900e141bda fix(auth): delete only the checked code and older ones, so a code issued concurrently survives Alexandre Brandizzi 2026-09-25 16:42:03 -03:00
  • 9084b7f642 fix(team-members): answer invalid_invite when send-code finds the invite closed Alexandre Brandizzi 2026-09-25 16:40:54 -03:00
  • fc3a29f399 Merge remote-tracking branch 'origin/main' into HEAD Alexandre Brandizzi 2026-09-25 16:40:36 -03:00
  • fe5f27c8e1 test(auth): build the password-policy service with the reset queue, throttle and keyed hash Alexandre Brandizzi 2026-09-25 14:08:30 -03:00
  • 613bfa48d8 Merge branch 'fix/ab/sh-403-reset-code-hardening' into fix/ab/sh-403-reset-hardening-2 Alexandre Brandizzi 2026-09-25 14:04:17 -03:00
  • ea1370847f test(auth): move the password-policy reset case onto hashed, attempt-counted codes Alexandre Brandizzi 2026-09-25 13:46:37 -03:00
  • 9bd22e9a74 Merge remote-tracking branch 'origin/main' into fix/ab/sh-403-reset-code-hardening Alexandre Brandizzi 2026-09-25 13:44:34 -03:00
  • 47060f6a73 fix(work-orders): never return a severity on an Overdue board row Alexandre Brandizzi 2026-09-25 13:41:19 -03:00
  • bb41bfd8ed Merge remote-tracking branch 'origin/main' into HEAD Alexandre Brandizzi 2026-09-25 13:40:06 -03:00
  • 57af8a1206 fix(auth): store an unmatchable code when the reset email cannot be queued, keeping data calls identical Alexandre Brandizzi 2026-09-25 13:38:11 -03:00
  • 77e54e64e3
    Merge pull request #194 from Sea-Haven-Industries/feat/ab/sh-389-rejected-uplift-queue Alexandre Brandizzi 2026-09-25 16:29:12 +00:00
  • a8d05776a8
    Merge pull request #186 from Sea-Haven-Industries/feat/ab/sh-386-password-policy Alexandre Brandizzi 2026-09-25 16:27:36 +00:00
  • 5353899418 feat(uplifts): order the rejected queue by decision time and include legacy denied rows Alexandre Brandizzi 2026-09-25 13:18:06 -03:00
  • cc328ce22a fix(team-members): do not report an invite email for a deactivated member Alexandre Brandizzi 2026-09-25 13:13:50 -03:00
  • a6dd40b972 fix(auth): only count real guesses, drop codes that cannot be emailed, trace reset email sends Alexandre Brandizzi 2026-09-25 13:12:49 -03:00
  • afc2330184 fix(team-members): report only password-rule failures at finish as a rejected password Alexandre Brandizzi 2026-09-25 13:05:35 -03:00
  • e53415de39 Merge remote-tracking branch 'origin/feat/ab/sh-386-password-policy' into feat/ab/sh-385-invite-registration Alexandre Brandizzi 2026-09-25 13:04:18 -03:00
  • 9091335ff2 fix(auth): reject an unconfirmed new password and report only policy failures as weak Alexandre Brandizzi 2026-09-25 13:02:58 -03:00
  • 77a10e38ca fix(auth): cap reset abuse per account, key code hashes, send reset email off the request path Alexandre Brandizzi 2026-09-25 13:00:03 -03:00
  • b50cd5f5df feat(team-members): report whether the re-invite after an email change was emailed Alexandre Brandizzi 2026-09-25 12:54:27 -03:00
  • f491d4c721 fix(team-members): delete invites with their member, re-invite on email change, trust only 2xx SendGrid responses Alexandre Brandizzi 2026-09-25 12:45:04 -03:00
  • e09ef061d1 Merge remote-tracking branch 'origin/main' into feat/ab/sh-385-invite-registration Alexandre Brandizzi 2026-09-25 12:45:03 -03:00
  • 561873a797 chore(migrations): regenerate the reset-code migration on the current main model Alexandre Brandizzi 2026-09-25 12:39:36 -03:00
  • e9a1d8f53f
    Merge pull request #190 from Sea-Haven-Industries/fix/ab/wo-created-utc Alexandre Brandizzi 2026-09-25 15:39:33 +00:00
  • 3249ea4b6f Merge remote-tracking branch 'origin/main' into fix/ab/sh-403-reset-code-hardening Alexandre Brandizzi 2026-09-25 12:38:22 -03:00
  • 0088cffd47 Merge remote-tracking branch 'origin/main' into HEAD Alexandre Brandizzi 2026-09-25 12:33:37 -03:00
  • bcc9b6d7a2 fix(auth): invalidate every pending reset code for an email together Alexandre Brandizzi 2026-09-25 12:31:17 -03:00
  • 236199ab7a
    Merge pull request #187 from Sea-Haven-Industries/feat/ab/sh-331-sites-api Alexandre Brandizzi 2026-09-25 15:26:09 +00:00
  • 85b7d1e1c7
    Merge pull request #191 from Sea-Haven-Industries/fix/ab/sh-402-effective-permissions Alexandre Brandizzi 2026-09-25 15:23:25 +00:00
  • c841e130be fix(auth): harden password reset codes against guessing and email enumeration Alexandre Brandizzi 2026-09-25 12:21:29 -03:00
  • 1c8da7f344 docs(readme): record that stored audit times are UTC and need no backfill Alexandre Brandizzi 2026-09-25 12:20:45 -03:00
  • 385229c64d fix(team-members): keep omitted phone, report invite email failures, never echo invite errors Alexandre Brandizzi 2026-09-25 12:11:52 -03:00
  • 227691269d style(data): trim trailing whitespace in touched data services Alexandre Brandizzi 2026-09-25 12:07:46 -03:00
  • 27c21ec32e fix(services): stamp user, contact, calendar and location audit times in UTC Alexandre Brandizzi 2026-09-25 12:06:36 -03:00
  • 6bfb56f349 fix(data): stamp audit times in UTC and keep a caller-set work order creation time Alexandre Brandizzi 2026-09-25 12:04:40 -03:00
  • 13fec977fa feat(team-members): expose the caller's effective permissions Alexandre Brandizzi 2026-09-25 12:03:35 -03:00
  • c8073123e3
    Merge pull request #183 from Sea-Haven-Industries/feat/ab/wo-ids-filter Alexandre Brandizzi 2026-09-25 14:55:26 +00:00
  • 92dabbfbe3 Hide deleted sites from every location read; require the Add Site fields on create Alexandre Brandizzi 2026-09-25 11:53:29 -03:00
  • f9cdbaa06b
    Merge pull request #185 from Sea-Haven-Industries/feat/ab/sh-313-completion-templates-api Alexandre Brandizzi 2026-09-25 14:49:35 +00:00
  • c0ae8479ce feat(team-members): invite registration with emailed code confirmation (SH-385) Alexandre Brandizzi 2026-09-25 11:49:10 -03:00
  • c1910e5310 test(work-orders): pin severity-then-type correction from Overdue Alexandre Brandizzi 2026-09-25 11:41:33 -03:00
  • a224f883bc fix(completion-templates): let PUT clear workOrderType with an explicit null Alexandre Brandizzi 2026-09-25 11:40:49 -03:00
  • ed5c75223e
    Merge pull request #188 from Sea-Haven-Industries/feat/ab/sh-295-sla-alerts Alexandre Brandizzi 2026-09-25 14:31:53 +00:00
  • d82fb18a3d fix(work-orders): map Overdue to PM catalog in service and template lists Alexandre Brandizzi 2026-09-25 11:30:34 -03:00
  • 60b1afd8e0 Align the second test project with the site data-service contract Alexandre Brandizzi 2026-09-25 11:25:13 -03:00
  • cd23ad5b68 fix(completion-templates): read legacy status when counting open linked work orders Alexandre Brandizzi 2026-09-25 11:19:59 -03:00
  • c3865e56ac Sites API: site code uniqueness, soft delete with role check, open work orders, site notes Alexandre Brandizzi 2026-09-25 11:19:29 -03:00
  • 14c8e46dd0 feat(notifications): SEV response-window alerts and breach acknowledgement Alexandre Brandizzi 2026-09-25 11:16:21 -03:00
  • 66a49ab957 feat(auth): enforce one password policy on every password-setting path (SH-386) Alexandre Brandizzi 2026-09-25 11:04:33 -03:00
  • 7c097c2750 feat(completion-templates): author templates with safety note and ordered procedures Alexandre Brandizzi 2026-09-25 11:00:22 -03:00
  • b545d4a4fe feat(work-orders): add Overdue work order type Alexandre Brandizzi 2026-09-25 10:57:34 -03:00
  • 3019e71093 feat(workorders): filter board search to an exact work-order id set Alexandre Brandizzi 2026-09-25 10:56:47 -03:00
  • 06eae2fb02
    Merge pull request #175 from Sea-Haven-Industries/feat/ab/sh-392-dashboard-unassigned Alexandre Brandizzi 2026-09-25 06:46:01 +00:00
  • 702069f09c test(dashboard): pin drill-down rows for legacy open work orders Alexandre Brandizzi 2026-09-25 03:38:31 -03:00
  • d6c5357fab fix(dashboard): count unassigned legacy rows with no lifecycle status (SH-392) Alexandre Brandizzi 2026-09-25 03:34:24 -03:00
  • c49a98db18
    Merge branch 'main' into feat/ab/sh-392-dashboard-unassigned Alexandre Brandizzi 2026-09-25 03:27:33 -03:00