Разметка и EJS-выражения не менялись: row.id, row.value, row.created_at,
row.created_by, editRow.* — те же; поменялись только отступы, переносы
(<th>, <td>, кнопки, поля формы) и добавлены пустые строки между блоками.
Проверено: git diff -w различает только переносы/пустые строки, логика та же;
node --check для server.js не требуется — правка только в шаблоне.
- CREATE TABLE IF NOT EXISTS дополнена колонками:
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
created_by TEXT NOT NULL DEFAULT ''
- ALTER TABLE ... ADD COLUMN IF NOT EXISTS досыпает колонки в уже существующую
таблицу — данные при этом не теряются;
- INSERT пишет created_by из env SERVICE_NAME (задаётся в json_env манифеста),
created_at ставит сама СУБД;
- список записей и UI показывают обе колонки.
Зачем: три приложения (flask / lucee / nodejs) пишут в ОДНУ таблицу — теперь
сразу видно, какое из них и когда добавило строку.