Adam Moussa
e1e547f7d0
fix(terraform): preserve live state during dev import ( #98 )
2026-08-31 15:05:46 -03:00
Arthur Bassi
9665be0ae5
Merge pull request #97 from Sea-Haven-Industries/fix/sh-131-clear-appt-time
...
fix(work-orders): persist empty apptTime as null scheduled instants
2026-08-31 14:24:50 -03:00
Arthur Bassi
ddd47f6d37
Merge branch 'dev' into fix/sh-131-clear-appt-time
2026-08-31 13:15:44 -03:00
Arthur Bassi
58dd5ec6ae
Merge pull request #96 from Sea-Haven-Industries/fix/user-list-full-display-name
...
fix(users): compose full Name on user list
2026-08-31 13:13:48 -03:00
Arthur Bassi
0822b50a82
Merge branch 'dev' into fix/user-list-full-display-name
2026-08-31 13:10:08 -03:00
Arthur Bassi
aca284ee46
Merge branch 'dev' into fix/sh-131-clear-appt-time
2026-08-31 13:02:11 -03:00
Arthur Bassi
a6b3d5d073
test(work-orders): cover date-only dispatch apptTime mapping
2026-08-31 13:01:02 -03:00
Adam Moussa
24f08d3cb1
feat(terraform): adopt live deployment roles safely ( #94 )
...
* feat(terraform): add safe backend environment adoption
Introduce import-guarded environment roots and retire temporary bootstrap and POC provisioning after ownership transfer.
* ci(deploy): pause dev and staging deployments
Prevent application releases from racing Terraform adoption while retaining production deployment and validation.
* ci(deploy): require manual environment dispatch
* fix: update `required_version` from `>=1.7.0` to `>=1.9.0`
The deploy-boundary check interpolates `var.aws_account_id` and `var.environment`. Terraform only allows other variables inside `validation` from 1.9.0+.
CI already runs against `1.9.8` so `versions.tf` setting version as `>=1.7.0` is a breaking finding
* chore(deps): add `terraform` to renovate dependency coverage
* ci(deploy): drop unprovisioned prod dispatch path
2026-08-31 11:51:18 -04:00
Arthur Bassi
e45e71d5ac
test(work-orders): expect null end for start-only apptTime tokens
...
EOF
2026-08-31 11:13:40 -03:00
Arthur Bassi
dcb757b404
fix(work-orders): persist empty apptTime as null scheduled instants
...
EOF
2026-08-31 10:49:54 -03:00
Arthur Bassi
e3a2507908
fix(users): compose full Name on user list
2026-08-31 10:22:27 -03:00
Alexandre Brandizzi
b605d5be02
fix: return vendor duplicate name conflict ( #92 )
Validate and deploy dev / Validate deployable source bundle (push) Has been cancelled
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Has been cancelled
2026-08-27 14:55:09 -03:00
Adam Moussa
e90e51d271
chore(renovate): add frontend overlay with three-day release age ( #90 )
...
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
* chore(renovate): add Renovate frontend overlay config
* chore: remove dependabot.yml config
* fix: add `github-actions` to `enabledManagers`
With the removal of this repositories `dependabot.yml`, a lack of `github-actions` within the config would leave a coverage gap on `actions/checkout`, `actions/setup-dotnet`, `actions/setup-node`, etc.
* fix(renovate): annotate pinned actions
---------
Co-authored-by: Alexandre Brandizzi <alex_brandizzi@hotmail.com>
2026-08-26 18:58:31 -03:00
Alexandre Brandizzi
31a4af7da3
fix: omit unmapped sites from work order options ( #89 )
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
2026-08-26 16:39:25 -04:00
Arthur Bassi
6c826b4cc6
Merge pull request #88 from Sea-Haven-Industries/feat/sh-221-persist-location-accountid
...
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
feat(locations): persist accountId on create and update
2026-08-26 15:00:46 -03:00
Arthur Bassi
0f2e0dacc7
fix(locations): authorize location owner on every board update
...
Reject account-scoped updates of foreign or orphan locations even when accountId is omitted, matching fail-closed tenant scope.
2026-08-26 14:38:34 -03:00
Arthur Bassi
4e4bb0ca90
fix(locations): reject unparseable accountId and forward cancellation
...
Blank accountId stays optional; nonblank parse failures return 400. Account lookup uses ExistsActiveAsync with the request token.
2026-08-26 14:18:38 -03:00
Arthur Bassi
2718fdd294
fix(locations): gate account assignment by scope and active accounts
...
Reject soft-deleted accounts and stop account-scoped callers from assigning or stealing locations across tenants.
2026-08-26 14:16:59 -03:00
Arthur Bassi
2be36d4eac
feat(locations): persist accountId on create and update
...
Allow location CRUD to stamp Locations.AccountId after account existence checks so board create can resolve tenant scope.
2026-08-26 14:03:12 -03:00
Arthur Bassi
5a70d5004e
Merge pull request #87 from Sea-Haven-Industries/feat/sh-221-location-owned-account
...
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
feat(work-orders): stamp board create account from location
2026-08-26 10:34:14 -03:00
Arthur Bassi
244a489fb2
fix(tests): create ephemeral LocalDB database before migration apply
2026-08-26 10:20:14 -03:00
Arthur Bassi
2e56ec7678
fix(work-orders): keep location account server-owned and forward create cancellation
...
Stop client writes from changing Locations.AccountId, make the SH-221 migration discoverable, and thread the board-create CancellationToken through lookup and persistence.
2026-08-26 10:00:02 -03:00
Arthur Bassi
61923b2a7d
feat(work-orders): stamp board create account from location
...
Org-wide create no longer depends on customer name. POST /workorders/board requires locationId and stamps WorkOrder.AccountId from Location.AccountId.
2026-08-26 09:12:48 -03:00
Alexandre Brandizzi
5857f8483a
fix(vendors): complete directory contact fallbacks ( #86 )
...
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
* fix(vendors): complete directory contact fallbacks
* fix(vendors): normalize location labels
* fix(vendors): keep company location authoritative
2026-08-25 19:33:47 -04:00
Arthur Bassi
df01ded3ce
Merge pull request #80 from Sea-Haven-Industries/feat/sh-117-aveta-required
...
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
feat(work-orders): persist avetaRequired on board create, patch, and search
2026-08-25 18:13:26 -03:00
Arthur Bassi
14b85c64a8
Merge branch 'dev' into feat/sh-117-aveta-required
2026-08-25 17:19:30 -03:00
Arthur Bassi
238f8c8e60
Merge pull request #81 from Sea-Haven-Industries/feat/board-week-only-pagination
...
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
fix(work-orders): keep GET /board to scheduled-in-week rows only
2026-08-25 17:11:05 -03:00
Arthur Bassi
7c7c6bc525
feat(work-orders): persist Aveta Extra Docs media category
...
Round-trip category 5 on media POST/PATCH/GET and project hasAvetaDocument so pending vs attached survives reopen.
2026-08-25 15:10:45 -03:00
Arthur Bassi
7245897d56
Merge branch 'dev' into feat/sh-117-aveta-required
2026-08-25 12:12:07 -03:00
Arthur Bassi
3a7a1b1f09
docs(work-orders): drop ticket key from AvetaRequired xml comment
2026-08-25 12:03:19 -03:00
Arthur Bassi
12dc3d51d9
Merge branch 'dev' into feat/board-week-only-pagination
2026-08-25 12:01:19 -03:00
Alexandre Brandizzi
8e749047a3
Merge pull request #78 from Sea-Haven-Industries/fix/ab/sh-261-vendor-list-contact
...
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
[SH-261] Show vendor list location and email
2026-08-25 11:58:22 -03:00
Arthur Bassi
437a8dae5b
Merge branch 'dev' into feat/board-week-only-pagination
2026-08-25 11:54:57 -03:00
Alexandre Brandizzi
5343931a62
Merge branch 'dev' into fix/ab/sh-261-vendor-list-contact
2026-08-25 11:52:46 -03:00
Alexandre Brandizzi
abff9eeae8
Merge pull request #84 from Sea-Haven-Industries/chore/albrand/cdk-dependency-upgrades-20260825
...
chore(deps): upgrade AWS CDK library and CLI
2026-08-25 11:44:53 -03:00
Arthur Bassi
f17f8562e8
test(work-orders): cover unassigned inline board and global search
2026-08-25 11:15:35 -03:00
Alexandre Brandizzi
98eb546738
chore(deps): upgrade AWS CDK library and CLI
2026-08-25 05:38:14 -03:00
Arthur Bassi
04958e6121
fix(work-orders): keep GET /board to scheduled-in-week rows only (SH-165)
2026-08-24 18:29:18 -03:00
Arthur Bassi
15315edf08
feat(work-orders): persist avetaRequired on board create, patch, and search
...
Expose avetaRequired and originalDate on list rows so the frontend can round-trip the Aveta checkbox and Reschedule hover.
2026-08-24 15:14:31 -03:00
Arthur Bassi
424d0b88bc
Merge pull request #79 from Sea-Haven-Industries/feat/sh-115-completed-selective-lock
...
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
feat(work-orders): allow selective mutations on completed work orders
2026-08-24 10:23:33 -03:00
Arthur Bassi
4b8a08fb10
fix(work-orders): block comment creation on canceled work orders
2026-08-24 09:59:13 -03:00
Arthur Bassi
f47264ec4d
feat(work-orders): allow selective mutations on completed work orders
...
Permit flagColor, comments, and Extra media after completion while keeping Canceled fully locked.
2026-08-24 09:31:30 -03:00
Alexandre Brandizzi
9c3da9b5e3
fix(vendors): keep location fallback atomic
2026-08-21 09:40:51 -03:00
Alexandre Brandizzi
d0a90483b3
fix(vendors): show canonical list contact data
2026-08-21 09:32:58 -03:00
Alexandre Brandizzi
7a33928779
Merge pull request #77 from Sea-Haven-Industries/fix/ab/sh-257-vendor-notes-limit
...
Validate and deploy dev / Validate deployable source bundle (push) Has been cancelled
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Has been cancelled
fix(vendors): enforce 500-character notes limit (SH-257)
2026-08-20 20:06:11 -03:00
Alexandre Brandizzi
518d856334
fix(vendors): enforce notes length limit
2026-08-20 18:17:48 -03:00
Arthur Bassi
7350da3e2f
Merge pull request #76 from Sea-Haven-Industries/fix/sh-183-vendor-patch-new-dispatch
...
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
fix(work-orders): create new dispatch when assigning vendor after cancel or refuse
2026-08-20 15:34:08 -03:00
Arthur Bassi
c9c4d74194
Merge branch 'dev' into fix/sh-183-vendor-patch-new-dispatch
2026-08-20 15:28:16 -03:00
Arthur Bassi
14443aff18
fix(work-orders): audit and lock vendor when replacing an inactive primary
...
Creating a Pending dispatch now stages VendorId FieldChanged from the previous
assignment so field lock and concurrency checks run like a live vendor PATCH.
2026-08-20 15:09:34 -03:00
Alexandre Brandizzi
b69c2fe64e
Merge pull request #75 from Sea-Haven-Industries/fix/sh-252-provisional-wo-number
...
Validate and deploy dev / Validate deployable source bundle (push) Waiting to run
Validate and deploy dev / Deploy shoc-backend to Elastic Beanstalk dev (push) Blocked by required conditions
fix(work-orders): enforce provisional WO numbers (SH-252)
2026-08-20 14:48:23 -03:00