Commit Graph

6940 Commits

Author SHA1 Message Date
229fe208a7 Release 8.3.0 cases: Sockeye case 4681 takes F40 and the Sockeye half of F39
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 10:17:04 -07:00
67205ccf41 Release 8.3.0 case list, and security findings mapped to cases
John's "next release" cases (exported 2026-10-24) listed in NET10-PORT.md;
SECURITY-REVIEW.md maps each finding to its case. F28 has no case yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 10:09:59 -07:00
ba60825167 Security review: finding IDs are permanent
Cases will refer to finding numbers, so they are never renumbered or reused.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 06:00:25 -07:00
8a54c020c5 Security review: John's decisions on F41, F42 and F32
2FA turned off on the affected accounts until the F5/F41 fix; F42 key not
rotated now, moving it out of source is a later case; FastMail password
rotation after the old Sockeye server is retired.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 21:15:16 -07:00
d6a7e024f0 Security review pass 11: Sockeye public routes; all passes done
From code: the 2FA flaw (F5) is also in Sockeye and the business server (F41,
critical; mitigation: turn 2FA off until fixed); the licence-signing private
keys are hardcoded in Sockeye's source (F42); one-shot licence fetch by DB ID
(F39); trial request routes without rate limits (F40). Review only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 20:51:03 -07:00
234d96aaa6 Security review: John's answers on F36, F37 and F9
Hosted droplets have a restrictive cloud firewall (F36 re-rated low); standalone
PostgreSQL trust accepted (F37); default SuperUser password is deliberate for
trials, but the licensed-mode change is enforced by the client only (F9 note).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 20:48:44 -07:00
40eb36080b Security review pass 10: deployment
From code: AyaNova listens on all interfaces on plain HTTP 7575 in every
template, hosted droplets included, with no firewall from the setup script (F36);
standalone PostgreSQL trusts local connections (F37); Linux hardening (F38).
F2 confirmed and extended; F9 extended (hosted droplets start with the default
SuperUser password). Review only, no code changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 20:40:46 -07:00
fc3342df48 Security review: F34 client library upgrades approved for 8.3.0
John's decision: DOMPurify to 2.5.x and Vuetify to the latest 2.x (2.6.16 as the
fallback if 2.7 does not build on Node 12.22.9), as an exception to the
front-end dependency rule, each proven by a full client build and Cypress.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 20:38:59 -07:00
52763366c2 Security review pass 9: client, headers, CORS, Swagger
From code: some record text is rendered as HTML without escaping (F33); shipped
DOMPurify and Vuetify are behind on security fixes (F34, needs a decision on
front-end packages); headers, CORS, Swagger and keys in URLs (F35). npm audit
run read-only and triaged. Review only, no code or dependency changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 20:33:26 -07:00
f1f01b47f1 Security review pass 8: email and notifications
From code: F3 and F4 confirmed; F17 confirmed and re-rated medium (names and
links reach any address, no reports). New: SMTP certificate never checked (F30),
SMTP password returned to read-only roles (F31), SMTP credentials in the DEBUG
defaults of raven and sockeye source (F32; password to be rotated). Review only,
nothing sent.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 20:28:02 -07:00
f90dfe98c7 Security review pass 7: staff roles
F27 (high, confirmed on the local server): restricted roles get whole work-order
items through report data, rendering and export. From code: users with change
rights on Customer can give contact logins any role (F28); server-info gives
the DB ID and licence to every login (F29). Remaining routes without a role
check found OK. Review only, no code changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 20:23:42 -07:00
8642d6e627 Security review pass 6: raw SQL
From code: KPI interval criterion placed in SQL unchecked, reachable by staff
down to TechRestricted (F26, critical). F18 (pick-list search text) completed
by code. Data-list filters, sort, ClientCriteria, saved filters, search, other
KPI criteria and remaining raw queries traced and found safe. Review only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 20:17:02 -07:00
52c85f3aaa Security review pass 5: file handling
From code: logo upload accepts any content type and is served inline from the
app's origin (F23); translation import has no role check (F24); attachment and
export gaps (F25). F21 extended to the log and backup download routes; backup
delete found safe. Review only, no code changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 20:11:05 -07:00
21c55e8d01 Security review pass 4: report rendering
F19 (critical, confirmed on the local server): report template import has no
role check, so any login, customer contacts included, can add a template whose
JavaScript runs in the server's browser. From code: F20 (templates get the
renderer's token, SuperUser for customer notification reports, and unrestricted
network access), F21 (download file names from the URL not checked; Windows),
F22 (minor job and template gaps). Review only, no code changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 20:04:23 -07:00
07c10f6542 Security review: draft customer contact route allowlist for the F13 to F17 fix
Routes the client calls for customer contacts, read from raven-client, with the
ownership check each id route needs, and the proposed shape of the fix
(allowlist in the token middleware plus per-route ownership checks).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 20:00:31 -07:00
2fca018add Security review: F5, F1 and F18 also fixed in 8.3.0; findings gate the release
John's decision: 8.3.0 is not released until every finding is fixed or
explicitly accepted. The review therefore runs before the release, not after.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 19:58:31 -07:00
ee6def1932 Security review: F13 to F17 (customer contact isolation) fixed in 8.3.0
John's decision: urgent, "next release" cases before 8.3.0; hosted and
self-hosted installations equally. Recorded in SECURITY-REVIEW.md and in the
NET10-PORT.md list of cases for this release.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 19:55:50 -07:00
2004bf197a Security review pass 3: what customer contact users can reach
Confirmed on the local server as the seeded contact: any customer's work order
by id (F13), other customers' service requests (F14), the full customer list
with phones and emails through pick lists (F15), the whole service schedule
(F16). Candidates from code: notification subscriptions for another user (F17),
pick-list search text placed in SQL unescaped (F18). Review only, no code changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 19:50:21 -07:00
26173b3926 Security review pass 2: login, tokens, password reset, 2FA, anonymous routes
F5 (critical, confirmed on the local server): the 2FA step accepts an empty or
missing temp token, so users with 2FA on can be logged into without a password.
F1 confirmed: with the placeholder secret a user's current token can be rebuilt.
F8 confirmed. New findings F6, F7, F9 to F12. Review only, no code changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 19:24:45 -07:00
2a9664dbe0 Security review pass 1: scope, threat model, attack-surface map, first candidate findings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 18:00:18 -07:00
67cc5eafad case 4690 - CLAUDE.md and NET10-PORT: port merged into main; release work continues on main
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 17:24:43 -07:00
3663301101 Merge net10-port: .NET 10 port (case 4690) 2026-10-23 17:23:51 -07:00
4351ee9706 case 4690 - NET10-PORT: tick or reword older open items with current evidence
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 17:07:53 -07:00
181b1e446e case 4690 - NET10-PORT: Windows LAN installer tested; all five packages installed and started
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 17:02:50 -07:00
daf093d51c case 4690 - Windows network install: official PostgreSQL download link (installer and manual); examples for PostgreSQL 18
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 16:06:27 -07:00
4ae9d53e72 case 4690 - .NET SDK 10.0.402 on the workstation: standalone and launcher bundle runtime 10.0.13; update-before-release note in BUILD.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 15:43:55 -07:00
7eb672bee5 case 4690 - manual: the one-installation-per-computer note applies to AyaNova 8 only (AyaNova 7 can stay)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 15:41:52 -07:00
67e2a37149 case 4690 - manual: only one type of Windows installation per computer (installers share one AppId by design)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 14:54:53 -07:00
92b4428146 case 4690 - NET10-PORT: John's decisions on the standalone findings; installer AppId notes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 14:52:38 -07:00
9fcc70cf1c case 4690 - NET10-PORT: fix a row reference in the log
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 14:45:04 -07:00
5e64ac3250 case 4690 - NET10-PORT: Windows standalone installer test results; VC++ runtime, launcher shutdown impact and bundled runtime version recorded
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 14:44:50 -07:00
63b2a34cc8 case 4690 - standalone installer: create the empty PostgreSQL folders Git does not keep (fresh installs failed to start the database)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 14:44:19 -07:00
d81a88b607 case 4690 - NET10-PORT: Linux packages from the release build tested on Ubuntu 24.04; desktop data-path finding deferred
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 12:20:45 -07:00
a223a2bc65 case 4690 - build-release.bat: copy all output to build-output.txt; UTF-8 for MkDocs when piped
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 11:37:29 -07:00
cc2ccec9b1 case 4690 - build docs: pin MkDocs below 2 (Material is incompatible with 2.0); Zensical move on the roadmap
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 11:31:49 -07:00
4a011f65bd case 4690 - manual: fix six broken links (wrong anchors, missing .md) reported by MkDocs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 11:31:37 -07:00
b74a97016e case 4690 - NET10-PORT: customer manual item done
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 11:17:44 -07:00
ae25111175 case 4690 - BUILD.md: name the backup batch file and rclone remote in the laptop checklist
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 11:16:20 -07:00
523bb8f10b case 4690 - BUILD.md: backup laptop catch-up checklist (.NET 10 SDK and tooling changes made on the workstation)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 11:14:33 -07:00
fba399670d case 4690 - dev docs: build VM deprecated, releases built on the workstation (backup laptop as fallback)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 10:52:17 -07:00
2dbac07bf4 case 4690 - build docs: .NET 10 SDK for the server, launcher and build VM
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 10:48:06 -07:00
b4cfc54aa2 case 4690 - Windows installers: stop creating unused Chrome folders in the program folder; uninstall removes them
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 10:47:22 -07:00
afb0791ea8 case 4690 - LAN installer: Hosting Bundle prompt and link to .NET 10
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 10:44:34 -07:00
85530d36f6 case 4690 - NET10-PORT: release timing; SuperUser delete fixed before 8.3.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 10:43:27 -07:00
111d7922a9 case 4690 - manual: .NET 10 runtime install/upgrade steps, Ubuntu 24.04/26.04, backup password note; changelog 8.3.0 draft
Also removes the server-only /var/ayanova chown/chmod lines from the Linux desktop upgrade page.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 10:43:27 -07:00
ce8c4d18a1 case 4690 - NET10-PORT: section 4 results on Ubuntu 26.04
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 09:43:22 -07:00
4d8754f037 case 4690 - NET10-PORT: Ubuntu 26.04 fresh install with the updated setup script
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 09:32:00 -07:00
b0399d93cc case 4690 - NET10-PORT: setup script plan for 26.04; Sockeye automated provisioning noted as a future case
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 09:10:39 -07:00
d3df5a8606 case 4690 - NET10-PORT: Linux report date format confirmed unchanged from 8.2.4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 08:13:33 -07:00
bf0555fb31 case 4690 - report browser: launch chrome-headless-shell; writable config/cache folders for the browser; Ubuntu 24.04 droplet results
Full Chrome 155 would not start under a Linux service user with no writable
home (chrome_crashpad_handler: --database is required). chrome-headless-shell
starts, and measured on a 1 GB droplet is 3-4x faster and smaller per render.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 08:12:21 -07:00